简介:Python入门、变量和数据类型、List、Tuple、set、if、while、for、Dict
Java
int a = 10;
String b = 'abc';
int c = a + b;//此时报错,因为类型不同,强转
Python:
a = 10;
b = "abc";
c = a + b;//输出:10abc,并不会报错
# -- coding: utf-8 -- 这样一句注释即可,注意当我们加上这句话后我们就不需要在文本内容的前面加 r 或者 u 来进行编码识别了。2.5+10/2的结果是多少的时候,运行结果是4二不是5,因为我们10/2只能取到整数位,为了取到值是2.5,修改为2.5+10.0/2即可。1.List 集合 [ value1, value2, value3,......]
List 集合是一种有序的集合,可以随时对里面的元素进行增加和删除。
List 集合的模型是:L = ['i','am','list'],使用中括号表示。
可以通过下标访问 List 集合中的元素,例如 L[0],list 集合的下标时从0开始的,当我们想要从最后一个访问的话直接输入 L[-1]即代表该集合的最后一个元素,依次倒序的下标时-2、-3、-4等。
增加 list 中的元素有两种方法:
1.append()新增元素到集合的末尾:
L.append('python')
2.insert(index, value)方法中有两个参数,第一个参数表示想要新增数据在 list 中的位置,第二个参数表示新增的元素的数据内容,例如:
L.insert(1,'me')即表示在下标为1的位置新增一个内容为'me'的元素
删除 list 集合中的元素使用 pop()方法,例如:L.pop(2) 表示删除下标为2的元素
替换元素直接把对应下标位置的元素内容赋值为新内容即可,例如:L[2] = 'new'
2.Tuple 元组 ( value1, value2, value3,......)
Tuple 是一种有序的列表,和 List 类似,中文翻译为”元组“,但是相比较 List 集合,Tuple 元组一旦赋值完毕就不再能修改里面的任何元素了。但是我们有其他方法可以修改元祖的内容,下面会讲到。
tuple 使用小括号进行创建,例如:T = ('1','2'),需要注意的是,当我们的 tuple 列表中只有一个元素的时候系统并不会识别为元组类型,因此当我们的元组内只有一个数据的时候我们需要在后面加上一个逗号,例如:t = (1,)即可
如何改变一个元祖中的数据呢,如果按照标准结构写的 tuple 列表是不能该表的,但是 list 集合是可以改变的,所以我们可以把 tuple 元组中的数据变成 list 类型的即可,写如:lt = (['me','am'],['jj',1])这样我们就可以赋值的方式取出需要修改的数据的对应集合然后再进行下一步操作。例如我们想要修改 'jj' 这个数据为 'mm' 可以进行如下操作:
l = lt[1]
l.insert(0,'mm')
这样就可以实现修改元组中的数据了

3.Set ( [list] )
>>> s = set(['A', 'B', 'C'])
可以查看 set 的内容:
>>> print s
set(['A', 'C', 'B'])
请注意,上述打印的形式类似 list, 但它不是 list,仔细看还可以发现,打印的顺序和原始 list 的顺序有可能是不同的,因为set内部存储的元素是无序的。
因为set不能包含重复的元素,所以,当我们传入包含重复元素的 list 会怎么样呢?
<code>\>>> s = set(['A', 'B', 'C', 'C'])<br>
\>>> print s<br>
set(['A', 'C', 'B'])<br>
\>>> len(s)<br>
3</code>
结果显示,set会自动去掉重复的元素,原来的list有4个元素,但set只有3个元素。
例如,存储了班里同学名字的set:
>>> s = set(['Adam', 'Lisa', 'Bart', 'Paul'])
我们可以用 in 操作符判断:Bart是该班的同学吗?
>>> 'Bart' in s
True
Bill是该班的同学吗?
>>> 'Bill' in s
False
bart是该班的同学吗?
>>> 'bart' in s
False
看来大小写很重要,'Bart' 和 'bart'被认为是两个不同的元素。
星期一到星期日可以用字符串'MON', 'TUE', ... 'SUN'表示。假设我们让用户输入星期一至星期日的某天,如何判断用户的输入是否是一个有效的星期呢?可以用 if 语句判断,但这样做非常繁琐:
x = '???' # 用户输入的字符串<br>
if x!= 'MON' and x!= 'TUE' and x!= 'WED' ... and x!= 'SUN':<br>
print 'input error'<br>
else:<br>
print 'input ok'</code><br>注意:if语句中的...表示没有列出的其它星期名称,测试时,请输入完整。<br>
如果事先创建好一个set,包含'MON' ~ 'SUN':
weekdays = set(['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'])
再判断输入是否有效,只需要判断该字符串是否在set中:
x = '???' # 用户输入的字符串
if x in weekdays:
print 'input ok'
else:
print 'input error'
这样一来,代码就简单多了。
直接使用 for 循环可以遍历 set 的元素:
>>> s = set(['Adam', 'Lisa', 'Bart'])
>>> for name in s:
... print name
...
Lisa
Adam
Bart
注意: 观察 for 循环在遍历set时,元素的顺序和list的顺序很可能是不同的,而且不同的机器上运行的结果也可能不同。
添加元素时,用set的add()方法:
>>> s = set([1, 2, 3])
>>> s.add(4)
>>> print s
set([1, 2, 3, 4])
如果添加的元素已经存在于set中,add()不会报错,但是不会加进去了:
>>> s = set([1, 2, 3])
>>> s.add(3)
>>> print s
set([1, 2, 3])
删除set中的元素时,用set的remove()方法:
>>> s = set([1, 2, 3, 4])
>>> s.remove(4)
>>> print s
set([1, 2, 3])
如果删除的元素不存在set中,remove()会报错:
>>> s = set([1, 2, 3])
>>> s.remove(4)
Traceback (most recent call last):
File "
KeyError: 4
所以用add()可以直接添加,而remove()前需要判断。
4.Dict { key1 : value1, key2 : value2,.....}
d = { key : value}。形成了一对键值对,一个 dict 里面可以同时存在多个键值对,同大括号来表示 dict 类型。1.查找速度很快,无论是10条数据还是10万条数据都是一样的速度;
2.dict 中存储的键值对 key-value 是没有顺序的;
3.dict 中作为 key的元素必须不可变,Python的基本类型如字符串、整数、浮点数都是不可变的,都可以作为 key。但是list是可变的,就不能作为 key。
d[key]来获取返回值d = {'Adam': 95,'Lisa': 85,'Bart': 59} d['Adam'],这个和 list 获取对象值很类似但是需要注意的是 list 必须使用索引返回对应的元素,而 dict 使用 key。if key in d表示判断 key 时候存在于 dict 类型的 d 中。dict:d = {'Adam': 95,'Lisa': 85,'Bart': 59},要把新同学'Paul'的成绩72加进去,用赋值语句:>>> d['Paul'] = 72
再看看dict的内容:
>>> print d
{'Lisa': 85, 'Paul': 72, 'Adam': 95, 'Bart': 59}
如果 key 已经存在,则赋值会用新的 value 替换掉原来的 value:
>>> d['Bart'] = 60
>>> print d{'Lisa': 85, 'Paul': 72, 'Adam': 95, 'Bart': 60}
>>> d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
>>> for key in d:
>>> print key
Lisa
Adam
Bart
由于通过 key 可以获取对应的value,因此,在循环体内,可以获取到value的值。
1.if
if a in bif a is b
if a == b
两者的区别在于第一个是判断值相等,第二个判断所有信息是否相等。
1.if 条件语句
2.if 条件1 else
3.if 条件1 elif 条件2 elif 条件3 else 这里的 elif 就等于 else if
2.while
while 条件例如:
sum = 0
x = 1
while x=100:
if x%2!=0
sum = sum+x
print sum
3.for
L = ['Adam', 'Lisa', 'Bart']
for name in L:
print name
注意: name 这个变量是在for循环中定义的,意思是,依次取出list中的每一个元素,并把元素赋值给name,然后执行for循环体(就是缩进的代码块)。这样一来,遍历一个list或tuple就非常容易了。