python基础知识
1、python注释写法
行注释:以#号开头
#print一个数字 print(666)
块注释:三个单引号开始三个单引号结尾
''' 三对单引号多行注释 三对单引号多行注释 三对单引号多行注释 ''' """ 三对双引号多行注释 三对双引号多行注释 三对双引号多行注释 """
2、变量命名规则
①变量名可以包含数字,大小英文字母,下划线
②数字不能开头
③python中下划线开头一般有特殊含义,一般不建议使用
④大小写敏感
推荐使用固定含义的英文或缩写,比如srv=server,
驼峰命名法:大驼峰 MyFristLove(一般python类的命名)
小驼峰 myFristLove (普通变量或者函数命名)
posix写法 my_first_love(普通变量基本用这个)
⑤不能是保留字和关键字
class def break for等。可以通过如下代码查看关键字有哪些:
import keyword print(keyword.kwlist)
3、变量声明
三种声明方式:
#直接声明 var1 = 1 #多个变量声明为同一个值 var1 = var2 = var3 = 1 #多个变量声明为不同的值 var1, var2, var3 = 1, 2, 3
4、变量类型
① 严格意义上讲,python就一个类型object
②标准数据分六种:
数字类型Number
字符类型str
列表 list
元组 tuple
字典 dictionary
集合 set
5、Number数字类型
①数字类型没有大小限制
②整数
没有小数部分
整数的分进制
二进制 表示是以0b开头 0,1代码
八进制 0o开头 0-7
十六进制 0x开头 0-F
③ 浮点数
小数(python表示小数方式 3.14,3.,0.5,.5)
科学计数法(176.23 == 1.7623e2,0.456 = 4.56e-1)
复数complex(实数和虚数表示 python中用j/J表示 5+3j,3j, (3j))
④ 布尔值
两个值True、False
也可以用0/1操作
6、字符串
①用单引号或双引号引用,也可以交替使用、三引号(三个单引号或者三个双引号)作用于多行代码
②转义字符:借助反斜杆字符,一旦字符前加了反斜杠,这个字符就不是表示它原来的意思了,例如:\',\\,\r\n分别代表',\,回车换行
不同系统对换行符不同:window:\n,liunx:\r\n
③字符串的格式化
两种方法:
1、利用百分号
%d:此处应该放入整数
%s:表示此处应该放入一个字符串
print('i am %s' %"xiao ming") print('i am %s,i am %d years old' %('xiao ming',18))
2、利用format函数(推荐使用)
在使用上使用{}和:代替%号,后面用format带参数完成
print('i am {} '.format('xiao ming')) print('i am {1} i am {0} i am {1}'.format('xxx','yyy')) 结果: i am xiao ming i am yyy i am xxx i am yyy
7、None类型
表示什么都没有,如果函数没有返回值,可以返回None,
作用:用来占位,用来接触变量绑定
8、表达式
通常会返回一个结果
9、运算符 (python没有自增和自减)
分类:
①算术运算符:+-*/ %(取余),//(表示地板除),**(表示幂运算)(除数在python2和3中不一样,2中会取整)
② 比较或者关系运算符:==等于号,结果为True/False
!=不等于
>、<、>=、<=
③ 赋值运算符:= 等于号
+=是缩写 a+=7就是a=a+7
-=,*=,/=,//=,%=,**=
④ 逻辑运算符:and逻辑与 or 逻辑或 not 逻辑非 python中没有异或运算
运算规则:and看乘 or看加 True看1 False看0
逻辑运算短路问题:一旦能确定整个式子的未来的值,就不在运算,直接返回
⑤成员运算符号:用来检测某个变量是否是另一个变量的成员
in/not in
a = [1, 2, 3, 4] b = 1 print(b in a) print(b not in a) 结果 True False
⑥身份运算符:检测两个变量是不是同一个变量
语法:is/is not
a = "i am xiao ming" b = "i am xiao ming" print(b is a) print(b is not a) c = 1 d = 1 print(c is d) 结果 True False True
10、分支
基本语法:if 条件表达式:
语句1
语句2
......
elif 条件表达式:
语句3
语句4
......
else:
语句5
语句6
......
条件表达式就是计算结果必须为布尔值
表达式后面的冒号不能少
后面执行语句块需要缩进一个tab
11、循环
①for循环
基本语法:for 变量 in 序列:
语句1
语句2
......
else:
语句3
语句4
......
range介绍 range(1,4)==[1,2,3]
for i in range(1,11):
print(i)
循环中的break,continue,pass语句
break:无条件结束整个循环
continue:无条件结束本次循环,从新进入下一轮循环
pass:表示略过
②while循环
基本语法: while 条件表达式:
语句块
else:
语句块
12、函数
基本语法:def 函数名():
语句块
函数名需遵循命名规则,大驼峰给类的最好小驼峰
函数名后面括号和冒号不能省,括号中可以添加参数
函数参数和返回值
参数:形参和实参
返回值:return默认是返回None
默认参数:若没有相对应的参数,则使用默认参数
语法 def func(p1=v1, p2=v2):
...
关键字参数:语法:def func(p1=v1, p2=v2):
...
调用 func(p1=value1, p2=value2)
此时调用的时候参数的位置就没有那么重要了,可以调换参数顺序
收集参数:语法: def func(*args):
...
调用:func(p1, p2, p3, p4, ......)
args可以看成一个列表,调用时可以传n个参数,n也可以为0。参数类型时tuple, 利用for循环访问
收集参数之关键字参数收集:语法:def func(**kwargs):
for k,v in kwargs.items():
......
调用:func(p1=v1, p2=v2, p3=v3......)
kwargs是一个字典类型,调用时可以传n个关键字参数,也可以不传
收集参数混合调用的顺序问题:收集参数、关键字参数、普通参数的混合调用
使用规则是,普通参数和关键字参数优先
定义混合参数顺序:普通参数、收集参数tuple、关键字参数、收集关键字参数dict
例如:def stu(name, age, *args, hobby="ss", **kwargs):
.....
收集参数解包问题:想把参数包装成list或者字典传入收集参数中
语法:l = [1,2,3,4]
func(*l)
列表和字典都是在前面加个*即可
函数自带文档:文档语法:def func():
'''这是文档'''
语句
查看函数文档:help(func)或者func.__doc__(这两种有区别,后者不会换行只是打印了\n)
提升函数内的局部变量为全局变量:
语法:def func():
global b1
调用:先执行函数,然后在其他函数外部就可以使用这个b1了
evel()函数:把一段字符串当成一个表达式执行,返回表达式执行后的结果
例如 x = 100
y = 200
z = eval("x+y")
exec()函数:类似evel()只不过它不返回结果,只是执行了字符串里的内容!
递归函数:python对递归有深度限制,超过限制报错 最多1965次