1. 内置函数
1> len:统计元素长度
str1 = 'wonderful' print(len(str1)) result: 9 li = [1,2,3] print(len(li)) result: 3 info = {'name':'zxj','age':23} print(len(info)) result: 2
2> in:判断某元素是否在某种类型内,与之相反为 not in。均返回布尔值。
a='westlife' print('e' in a) result: True a='westlife' print('d' in a) result: False a='westlife' print('d' not in a) result: True a='westlife' print('e' in a) result: False
2. 基本运算符
运算符 |
描述 |
实例 |
+ |
两个对象相加,对象可以是数字、列表、字符串等 |
a=20,b=10,a+b输出结果为30 |
- |
一个数减去另外一个数 |
a-b输出结果为10 |
* |
乘,数与数、字符串与数可以相乘 |
a*b输出结果为200 |
/ |
除 |
a/b输出结果为2 |
% |
取余(模) |
a%b输出结果为0 |
** |
高阶幂 |
2**3输出结果为8 |
// |
取整除,取商的整数 |
9//2输出结果为4 |
+支持数字、字符串、列表等对象相加:
l1 = [1,2,3] l2 = [1,2,4] print(l1+l2) result: [1,2.3,1,2,4]
不同类型之间的转换,如将列表转换为集合、元组:
l1 = [1,2,3] l2 = set(l1) l3 = tuple(l1) print(type(l1)) print(type(l2)) print(type(l3)) result: <class 'list'> <class 'set'> <class 'tuple'>
3. 比较运算符
运算符 |
描述 |
实例 |
= = |
等于,比较对象是否相等 |
a==b返回False |
!= |
不等于,比较两个对象是否不相等 |
a!=b返回True |
< > |
不等于,比较两个对象是否不相等 |
类似!= |
> |
大于 |
a>b返回True |
< |
小于 |
a<b返回False |
>= |
大于等于 |
a>=b返回True |
<= |
小于等于 |
a<=b返回False |
4. 赋值运算符
运算符 |
描述 |
实例 |
= |
赋值运算符 |
c=a+b,将a+b的结果赋值给c |
+= |
加法赋值运算符 |
c+=a等效于c=c+a |
-= |
减法赋值运算符 |
c-=a等效于c=c-a |
*= |
乘法赋值运算符 |
c*=a等效于c=c*a |
/= |
除法赋值运算符 |
c/=a等效于c=c/a |
%= |
取余赋值运算符 |
c%=a等效于c=c%a |
**= |
幂赋值运算符 |
c**=a等效于c=c**a |
//= |
取整除赋值运算符 |
c//=a等效于c=c//a |
5. 身份运算符
is:is与比较运算符==不同的是,is比较的是id是否相等,即比较内存地址是否一致,= =仅比较两个值是否相等。
a=10 b=10.0 print(a==b) print(a is b) result: True False
一个内存地址可以对应多个变量,一个变量只能对应一个内存。
6. 逻辑运算符
运算符 |
描述 |
实例 |
and |
布尔“与”,前后为真才为真 |
a为真,b为真,a and b 为真; a为真,b为假,a and b为假。 |
or |
布尔“或”,前后为假才为假 |
a为假,b为假, a or b为假; a为真,b为假,a or b 为真。 |
not |
布尔“非”,非真为假,非假为真 |
a为真,not a为假; b为假,not b 为真。 |
7. 流程控制
Python语法以缩进来分层,缩进4个空格(Tab)表示内一层。
7.1 if语句
格式:
if 条件语句:
执行的代码1
elif 执行的代码2:
else:
执行的代码块3
None、0、空(‘’),则条件为假,其余条件为真。if后条件为真则执行代码1,条件为假则执行else后的代码3。注意:空格不为空。
if 2 : print('真') else : print('假') result: 真
if条件支持or、and、not等逻辑书写。
7.2 while循环
格式:
while 条件:
循环体
条件为真则循环体执行,执行完后重新判断条件。
条件为假则循环体不执行。
break:跳出循环;
continue:跳出本次循环后继续执行循环;
pass:占位。占据当前位置,当不确定循环体如何设计时可以先用pass占位,保证语法格式。
#打印10以内的偶数 #方法一: i = 0 while i< 11: print(i) i +=2 #方法二: i = 0 while i < 11 : if i % 2 == 0: print(i) i +=1
result: 0 2 4 6 8 10 count = 0 while count <=5: count +=1 if count ==3 : continue print("loop" , count) result: loop 1 loop 2 loop 4 loop 5 loop 6 count = 0 while count <=5: count +=1 if count ==3 : break print("loop" , count) result: loop 1 loop 2 count = 0 while count <=5: count +=1 if count ==3 : pass print("loop" , count) result: loop 1 loop 2 loop 3 loop 4 loop 5 loop 6
while……..else……..:循环体执行完成后执行else后面的语句。
练习:写一个猜拳小游戏
import random #调用random模块,生成随机数 win = 0 lose = 0 ping = 0 while True: print('=====欢迎来猜拳=====') print('胜:{} 败:{} 平:{}'.format(win, lose, ping)) print('1.石头 2.剪刀 3.布 4.退出') computer = random.choice(['石头','剪刀','布']) hum = input('==>:')
#赢 if (hum == '1' and computer == '剪刀') or (hum == '2' and computer =='布') or (hum == '3' and computer == '石头'): print('挺牛逼!') win += 1 #输 elif hum == '3' and computer == '剪刀' or hum == '1' and computer =='布' or hum == '2' and computer == '石头': print('菜鸡!') lose += 1 #平 elif hum == '2' and computer == '剪刀' or hum == '3' and computer =='布' or hum == '1' and computer == '石头': print('不要走,决战到天亮') ping += 1 elif hum == '4': break else: print('别瞎输入!!') print() #打印空行
result: =====欢迎来猜拳===== 胜:0 败:0 平:0 1.石头 2.剪刀 3.布 4.退出 ==>:1 菜鸡! =====欢迎来猜拳===== 胜:0 败:1 平:0 1.石头 2.剪刀 3.布 4.退出 ==>:2 不要走,决战到天亮 =====欢迎来猜拳===== 胜:0 败:1 平:1 1.石头 2.剪刀 3.布 4.退出 ==>:2 不要走,决战到天亮 =====欢迎来猜拳===== 胜:0 败:1 平:2 1.石头 2.剪刀 3.布 4.退出 ==>:3 菜鸡! =====欢迎来猜拳===== 胜:0 败:2 平:2 1.石头 2.剪刀 3.布 4.退出 ==>:4
Python可以通过命令pyinstaller将语句导出为.exe程序,pyinstaller可以在pycharm的终端通过pip安装。
在终端使用pyinstaller -F 导出为exe程序。导出文件必须在虚拟环境下。
(yunwei) E:\Learning\python>pyinstaller -F game.py 171 INFO: PyInstaller: 3.4 172 INFO: Python: 3.6.8 ……. 29666 INFO: Appending archive to EXE E:\Learning\python\dist\game.exe 29680 INFO: Building EXE from EXE-00.toc completed successfully.
找到该文件,双击运行
7.3 for循环
格式:
for 变量 in range(start,end,step):
循环体
range(start,end,step)顾头不顾尾,即范围能取到start,取不到end,只能取到end的前一位。数字范围默认start为0,可以省略;step为步长,在start~end的范围间隔step取值。
for循环将可迭代对象变成了迭代器类型,因此可以遍历字符串、列表、元组、字典等。
#打印1到5 or i in range(6): print(i) result: 0 1 2 3 4 5 #打印10以内的偶数 for i in range(0,11,2): print(i) result: 1 2 4 6 8 10 #遍历列表 l1 = [1,2,3,4] for i in l1: print(i) result: 1 2 3 4 #遍历元组 l1 = (1,2,3,4) for i in l1: print(i) result: 1 2 3 4 #遍历字符串 l1 = 'zxj' for i in l1: print(i) result: z x j #遍历字典,默认循环的key值 l1 = {'name':'言念君子','chara':'温润如玉'} for i in l1: print (i) result: name chara #循环value: l1 = {'name':'言念君子','chara':'温润如玉'} for i in l1.values(): print (i) result: 言念君子 温润如玉 #循环key、value键值对 l1 = {'name':'言念君子','chara':'温润如玉'} for i in l1.items(): print (i) result: ('name', '言念君子') ('chara', '温润如玉') #分别循环key、value l1 = {'name':'言念君子','chara':'温润如玉'} for i,k in l1.items(): print (i,k) result: name 言念君子 chara 温润如玉