比较运算符
x==y
x<y #> < >= <= !=
x is y # is not
x in y # x not in y
== 与 is的 区别
== 是判断两个东西是否相等
is 是判断两个东西是否是同一个
在比较运算符中,还有字符串和序列的比较
如:'alpha' >'beta' 按照字母的顺序比较
[1,2,3] > [3,4,5] 每个元素进行比较
## 多个条件的判断用 and or not
其中 and or是有短路逻辑的
'''
'''
##语句断言 assert
assert 与 if 很相似
那为什么需要assert呢?
因为与其让程序在晚些时候崩溃,不如在错误条件出现时直接让它崩溃。
一般来说,可以要求某些条件必须为True
如:在检查函数参数的属性时,或者作为初期测试和调试过程中的辅助条件
如果assert为False ,则会抛出异常:AssertionError 并且会终止程序运行,
'''
age =10
assert 0<age <100
age = -1
#assert 0<age <100
#assert 0<age <100 ,'年龄必须大于0小于100' #AssertionError: 年龄必须大于0小于100
'''
-------------------
循环:while for
break:跳出整个循环
continue:跳过当前循环,进入下一次循环
for else的用法:
for x in range(10):
if(x==11):
pass
else:
print('没有11的数')
'''
name=''
while not name or name.isspace():
name = input("Please enter your name:") #raw_input 是2.0的,在3.0用input
print('Hello,%s' % name)
'''
---------------------
迭代工具
1、并行迭代
同时迭代两个序列
zip函数:可以作用于任意多的序列,xrange1= zip(range(5),range(10000))
zip对象内部是一个元组,可以转换为元组或者列表
2、按索引迭代
enumerate函数:可以提供索引的地方迭代索引-值对
for index ,string in enumerate(string):
if 'xxx' in string:
string[index] = '[censored]'
3、翻转和排序迭代
reversed:翻转
sorted:排序
sorted([2,3,41,5,643,3])
sorted('Hello,world')
list(reversed('Hello,world'))
''.join(reversed('Hello,world!'))
'''
#迭代工具
names =['anna','beth','george','damon']
ages =[12,23,4,22]
for i in range(len(names)):
print('%s is %d years old' % (names[i] ,ages[i]))
#与上面的结果是一样的 ,这里使用zip函数
for name,age in zip(names,ages):
print('%s is %d years old' % (names[i] ,ages[i]))
'''
-----------------
列表推导式: 轻量级循环
list comprehension 是利用其他列表创建新列表
'''
#初级
[x*x for x in range(10)]
#中级
[x*x for x in range(10) if x%3 ==0]
#高级
[(x,y) for x in range(3) for y in range(3)]
#超级高级
girls = ['alice','bernice','clarice']
boys = ['chris','arnold','bob']
[b+'+'+g for b in boys for g in girls if b[0]==g[0]]
#pass语句,----什么都没发生
#del :删除哪些不再使用的对象
#exec和eval执行和求值字符串:这是近似于黑暗魔法,在使用前一定要慎之又慎
评论