同时打印多个表达式用逗号分隔python
若是想在结果中添加逗号数组
自定义分隔符app
同时给多个变量赋值函数
交换多个变量的值工具
序列解包this
方法popitem,谁边获取一个键-值对并以元组的方式返回spa
要解包的序列包含的元素个数必须与你在等号左边列出的目标个数相同,不然报错3d
可以使用星号运算符(*)来收集多余的值,这样无需确保值和变量的个数相同code
还可将带星号的变量放在其余位置对象
还可用于其余数据类型
方法name.endswith将返回True,不然执行else
name = input('what is your name?') if name.endswith('xiaoming'): print ('hello,Mr .xiaoming') else: print ('he he he')
num = int(input('Enter a number: ')) if num > 0: print('The number is positive') elif num < 0: print('The number is negative') else: print('The number is zero')
代码块嵌套
1 name = input('what is your name? ') 2 if name.endswith('xiaoming'): 3 if name.startswith('Mr.'): 4 print('hello,Mr. xiaoming') 5 elif name.startswith('Mrs.'): 6 print('hello,Mrs. xiaoming') 7 else: 8 print('hello, xiaoming') 9 else: 10 print('hello, stranger')
比较运算符
表达式 描述
x == y x等于y
x < y x小于y
x > y x大于y
x >= y x大于等于y
x <= y x小于等于y
x != y x不等于y
x is y x和y是同一个对象
x is not y x和y是不一样的对象
x in y x是容器(如序列)y的成员
x not in y x不是容器(如序列)y的成员
== 用来检查两个对象是否相等,而is用来检查两个对象是否相同(是同一个对象)
1 name = input('what is your name?') 2 if 's' in name: 3 print('Your name contains the letter "s".') 4 else: 5 print('Your name does not contail the letter "s".')
布尔运算符
1 number = int(input('Enter a number between 1 and 10: ')) 2 if number <=10 and number >= 1: 3 print('Great!') 4 else: 5 print('wrong!')
断言
1 x = 1 2 while x <=100: 3 print(x) 4 x += 1
1 words = ['this','is','an','ex','parrot'] 2 for word in words: 3 print(word)
range不包含结束位置
利用range打印1--100
1 for number in range(1, 101): 2 print(number)
1 d = {'x': 1, 'y': 2, 'z': 3}
2 for key in d: 3 print(key, 'corresponds to', d[key])
以元组的方式返回键-值对
1 d = {'x': 1, 'y': 2, 'z': 3}
2 for key, value in d.items(): 3 print(key, 'corresponds to', value)
并行迭代
1 names = ['tom','bob','jak','jary'] 2 ages = [10,11,12,13] 3 for i in range(len(names)): 4 print(names[i],'is', ages[i], 'years old'
一个颇有用的并行迭代工具是内置函数zip,它将两个序列“缝合”起来,并返回一个有元组组成的序列。
1 names = ['tom','bob','jak','jary'] 2 ages = [10,11,12,13] 3 list(zip(names,ages)) 4 for name , age in zip(names,ages): 5 print(name, 'is' ,age, 'years old')
反向迭代和排序后在迭代
1. break (找出小于100的最大平方值)
1 from math import sqrt 2 for n in range(99, 0, -1): 3 root = sqrt(n) 4 if root == int(root): 5 print(n) 6 break
2.continue
1 for n in range(0, 10): 2 if n == 5: 3 continue 4 print(n)
执行结果
3.while True/break 成例
1 while True: 2 word = input('Please enter a word: ') 3 if word == '123': 4 print('The word was ', word) 5 break
执行结果
1 from math import sqrt 2 for n in range(99, 81, -1): 3 root = sqrt(n) 4 if root == int(root): 5 print(n) 6 break 7 else: 8 print("Did't find it!")
1 result = [] 2 for x in range(3): 3 for y in range(3): 4 result.append((x,y)) 5 print(result)
执行结果
1 name = input('please input your name: ') 2 if name == 'xiaoming': 3 print('welcome') 4 elif name == 'Enid': 5 # ...... (这些代码不能运行,由于python中代码块不能为空。加一个pass便可) 6 elif name == 'haha': 7 print('123 123')
1 name = input('please input your name: ') 2 if name == 'xiaoming': 3 print('welcome') 4 elif name == 'Enid': 5 # ...... 6 pass 7 elif name == 'haha': 8 print('123 123')
1.exec
函数exec将字符串做为代码执行
可能带来的破坏代码并不是覆盖函数sqrt.函数sqrt该怎样还怎样,而经过exec执行赋值语句建立的变量位于scope中。
2.eval
与exec同样,也可向eval提供一个命名空间,虽然表达式一般不会像语句那样给变量从新赋值。
浅谈做用域
向exec或eval提供命名空间时,可在使用这个命名空间钱在其中添加一些值
一样,同一个命名空间可用于屡次调用exec或eval
函数 描述
chr(n) 返回一个字符串,其中只包含一个字符,这个字符对应于传入的顺序值n(0≤n<256)
eval(source[,globals[,locals]]) 计算并返回字符串表示的表达式的结果
enumerate(seq) 将字符串做为语句执行
ord(c) 接受一个只包含一个字符的字符串,并返回这个字符的顺序值(一个整数)
range([start,] stop[, step]) 建立一个由整数组成的列表
reversed(seq) 按相反的顺序返回seq中的值,以便用于迭代
sorted(seq[,cmp][,key][,reverse]) 返回一个列表,其中包含seq中的全部值且这些值是通过排序的
xrange([start,] stop[, step]) 建立一个用于迭代的xrange对象
zip(seq1, seq2,...) 建立一个适合用于并行迭代的新序列