001 两数交换
# 两数交换
a = 2
b = 3
a,b = b,a
print ("a=%d b=%d"%(a,b)) # a=3 b=2
002 eval函数
# eval函数
exp = '2**2+5'
eval(exp) # 9
运算符 | 描述 |
| 对象相加 |
| 对象相减 或 得到负数 |
| 两数相乘 或 返回重复若干次的字符串 |
| 除法 |
| 取余 |
| 返回x的y次幂( |
| 取整除法(向下取接近除数的整数) 例如: |
- 数值的除法包含两个运算符:
/
返回一个浮点数,//
返回一个整数。 - 在混合计算时,Python会把整型转换成为浮点数。
003 yeild的使用
目标:输出0~10的斐波那契数列
一、这是普通做法,先生成斐波那契数列的列表,后遍历输出
def fibonacci(n):
a = 0
b = 1
nums = []
for _ in range(n):
nums.append(a)
a,b = b,a
return nums
for i in fibonacci(10):
print(i)
二、使用 yeild
进行输出
-
yeild
是做好一个输出一个 - 其输出完毕会继续执行函数
- 对一些非常耗时的操作:如下载文档并输出内容,可以边下载边输出,而不是下载完后再输出
def fibonacci(n):
a=0
b=1
for _ in range(n):
yield a
a,b = b,a+b
for i in fibonacci(10):
print(i)
004 列表解析式
# 使用列表解析式获取(做出更改的)新的列表
fruit = ['apple','banana','orange','pear']
# 把这些名字都改成大写
# 1.普通方法
for i in range(len(fruit)):
fruit[i]=fruit[i].upper()
# 2.list表达式
fruit = [x.upper() for x in fruit]
# 这个写法其实是构造了一个新的List,并将其赋值给了fruit变量
# 使用列表解析式筛选想要的元素
fruit = ['apple','banana','orange','pear']
# 筛选出以'a'开头的单词
# 1.普通写法
fruit_a1 = []
for i in fruit:
if i.startswith('a'):
fruit.append(a)
# 2.list表达式
fruit_a2 = [x for x in fruit if x.startswith('a')]
# 可以分解成这样理解
# x(新的列表由x构成)
# x in fruit(x来自fruit列表)
# if x.startswith('a')(x需要满足if语句中的条件)
005 enumerate函数
- 用于遍历
- 每一次循环都会提供两个参数:一个元素内容、一个元素的索引值
fruit = ['apple','banana','orange','pear']
# 输出元素的内容 和 索引值
for i,x in enumerate(fruit):
print(i,x)
# 反向遍历
fruit = ['apple','banana','orange','pear']
for i,x in enumerate(reversed(fruit)):
print(i,x)
# 按字典序排序
fruit = ['apple','pear','orange','banana']
for i,x in enumerate(sorted(fruit)):
print(i,x)
006 解包运算符
目的:合并两个字典
一、先展示一波普通的写法,依次遍历两个字典,将其值赋予一个新的字典
a = {"root":"123","ming":"3w.com"}
b = {"lilei":"1111","zhangsan":"123456"}
# 1.普通写法
c = {}
for i in a:
c[i]=a[i]
for i in b:
c[i]=b[i]
for k ,v in c.items():
print(k,v)
二、使用解包符号,将字典拆包,然后使用数据构建一个新的字典
a = {"root":"123","ming":"3w.com"}
b = {"lilei":"1111","zhangsan":"123456"}
# 2.使用解包符号
c ={**a,**b}
# 相当于是将a和b中的内容直接填写到这里
for k,v in c.items():
print(k,v)
007 Python中的三元运算符
目的:输入一个成绩(整数),判断其是否及格
一、使用if-else
结构
score = input("input score:")
if score > 60:
s = "pass"
else:
s = "fail"
二、使用Python中的”三元运算符“
score = input("input score:")
# 可以直接简化为三元运算符
s = "pass" if score > 60 else "fail"
# if为真就使用前面的,为假就使用后面的
008 序列解包
list、tuple、range等数据序列,可以直接使用序列解包的方式,获取其数据值
# list序列解包标签:常用,技巧,Python,解包,运算符,fruit,print,score,字典 From: https://blog.51cto.com/u_15910817/6044742
a = [1, 2, 3]
b, c, d = a
print(b,c,d) # 1 2 3
# 除了list之外,tuple、range等都可以序列解包
x, y, z = range(3)
print(x,y,z) # 0 1 2
s = {'a':1, 'b':2, 'c':3}
# 对字典使用时,默认是对字典“键”进行操作
# k1,k2,k3 = s.keys()
k1,k2,k3 = s
print(k1,k2,k3) # a b c
# 如果需要对“键:值”对进行操作,需要使用字典的items()方法说明
i1,i2,i3 = s.items()
print(i1,i2,i3) # ('a', 1) ('b', 2) ('c', 3)
# 如果需要对字典“值”进行操作,则需要使用字典的values()方法明确指定
v1,v2,v3 = s.values()
print(v1,v2,v3) # 1 2 3