变量
-
类型
类型 描述 说明 数字(Number) - 整数(int)
- 浮点数(float)
- 复数(complex)
- 布尔(bool)10、-10
13.14、-13.14
4+3j
True、False字符串(String) 列表(List) 有序可变序列 元组(Tuple) 有序不可变序列 集合(Set) 无序不重复序列 字典(Dictionary) 无序Key-Value集合 -
作用域
-
global
a = 10 # 全局的变量 def test(): a1 = 5 # 局部的变量 print(a1) global a # 如果先声明了此a为全局的那个,那么函数内后续使用的都是全局的那个;否则下面的声明就是重新创建局部的变量a a = 6 print(f"func a:{ a}, { id{ a}}") # 此时a是局部的还是全局的,要看是否有global a那一句, 如果函数内没有创建同名的对象,那么按照由内到外的搜索范围,最终print会调用全局的那个a print(name2) # 错误,看不到局部变量 print(f"global a:{ a}, { id{ a}}")
-
nonlocal
用来声明外层的局部变量,只能用在函数嵌套中,不能用作全局变量a = 10 def outer(): a= 5 def inner(): nonlocal a # 意味着此时的a就是外层outer的那个a a=20 print(f"inner a:{ a}") inner() print(f"outer a:{ a}") outer()
-
注释
- 注释
# 单行 """ 多行 """ ''' 多行 '''
数据类型
-
type() # 查看数据类型
-
关键字
import keyword print(keyword.kwlist)
-
类型转换
操作 说明 int(x) 将x转换为整数 float(x) 将x转换为浮点数 str(x) 将x转换为字符串 eval(str) 将字符串解释成python语言并执行 tuple(x) 将x转换为元组 list(x) 将x转换为列表 chr(i) 将整数转换为字符
运算符
- 赋值运算符 =
- 算术运算符 +(加) -(减) *(乘) /(除) %(取模) **(幂) //(整除)
- 比较运算符 ==(等于) !=(不等于) >(大于) >=(大于等于) <(小于) <=(小于等于)
- 逻辑运算符 and(与) or(或) not(非)
- 三目运算符 真结果 if 条件 else 假结果
- 字符串运算符 +(拼接) *(重复) [:]切片 in(是成员) not in(不是成员) r/R(原始字符)
字符串
-
单引号或双引号 ’ "
-
长字符串 str = “”" xxxxxx “”" 或 str = ‘’’ xxxxxx ‘’’ (有赋值为长字符串,没赋值则为注释)
-
字符串拼接 “aa” + ‘bb’
-
Python不允许数字数值和字符串,必须先把数值转换成字符串,可以使用str()或repr()函数。 print(“name=” + name + “, age=” + str(age))
-
获取用户输入 val = input("please input value: ")
-
字符串格式化% print(“my name is %s, age is %d” % (name, age))
转换符 说明 d,i 带符号的十进制整数 o 带符号的八进制整数 x 带符号的小写十六进制整数 X 带符号的大写十六进制整数 e 科学计数法的浮点数(e小写) E 科学计数法的浮点数(E大写) f,F 十进制的浮点数 g 智能选择使用f或e格式 G 智能选择使用F或E格式 C 转换为单字符(只接受整数或单字符字符串) r 使用repr()将变量或表达式转换为字符串 s 使用str()将变量或表达式转换为字符串 -
辅助符号"m,n"来控制数据的宽度和精度 %m.nf,例如: “money is: %.2f” “money is: %05.2”
- m: 控制宽度(包括小数点),如果设置的宽度小于数字本身则不生效(前面补空格)
- n: 控制小数点精度,如果设置的宽度大于小数位数则四舍五入
-
快速格式化 print(f"my name is {name}, age is {age}") ;缺点是无法控制精度,也不关心类型,只能原值输出
流程控制
-
if, if else, if elif else
if a==b: exec first condition ... elif a>b: exec second condition ... else: exec other ...
-
while
while a==b: exec loop ...
-
for
for i in range(3, 10, 2): print(i, end=' ')
-
循环控制 continue & break
- continue 中断本次循环,直接进入下一次循环
- break 直接结束循环
函数
-
位置参数
# defined def add(a, b): return a + b # call c = add(1, 2)
-
关键字(keyword)参数
# defined def add(a, b): return a + b # call c = add(b=3, a=8)
-
参数默认值
# defined def add(a, b=5): return a + b # call c = add(4)
-
函数特殊返回值 None
# 当函数没有return时,默认返回的是None,可调用时用于判断 def login(username, password): if username=='aa' and password=='1234': return 'success' # call result = login('ab', '234') if not result: print('login failed')
-
函数的说明文档
# 用 """ """ 备注说明 def login(username, password): """ :param uasername: user :param password: pwd :return: login status """ if username=='aa' and password=='1234': return 'success' # call result = login('ab', '234') if not result: print('login failed')
-
函数的不定长参数
-
不定长参数(位置传递)
# 通过元组Tuple的*args来实现 def test(*args): print(args, type(args)) test(1, "2", True, 3.14) test()
-
不定长参数(关键字传递)
# 通过字典Dict的**kwargs来实现 def test(**kwargs): print(kwargs, type(kwargs)) test("name"="momo", "age"=1) test()
-
-
函数变量
def add(a, b): return a + b result = add(1, 2)
-
函数多返回值
def arithmetic(a, b): return a + b, a - b, a * b # 返回元组Tuple类型 result = arithmetic(1, 2) v1, v2 , v3