最近开始看Python,所以也把学习的过程中笔记分享出来,供大家一起学习,基于Python3.7版本
变量
变量名命名规则
- 1、 字母,数字,下划线的组合
- 2、 不能由数字开头
- 3、 不能使用内置关键字
- 4、 严格区分大小写
变量命名习惯
- 1、 见名知义
- 2、 大驼峰:即每个单词首字母都大写
- 3、 小驼峰:第二个包含后面的单词首字母大写
- 4、 下划线连接单词
数据类型
- 数值:整型 int 浮点型 float
- 布尔型:真 true 假 false
- 字符串型:str
- 列表:list
- 元组:tuple
- 集合:set
- 字典:dict
格式化输出符号
- ==%s 字符串==
- ==%d 有符号的十进制整数==
- ==%f 浮点数==
- %c 字符
- %u 无符号的十进制整数
- %o 八进制整数
- %x 十六进制整数(小写)
- %X 十六进制整数(大写),
- %e 科学计数法(小写)
- %E 科学计数法(大写)
- %g 是%f和%e的简写,
- %G %f和%E的简写
# 我的年龄是x岁
# 我的名字是x
age = 18
name_my = 'sean'
print('我的名字是%s,我的年龄是%d岁' % (name_my, age))
输出技巧
- %03d,表示输出的整数显示位数,不足的以0补全,超出的则原样输出
# 我的学号是,整数,需要补全位数
stuid = 1
print('我的学号是%03d' % stuid)
结果是001
- %.2f,表示小数点后显示的小数位数
# 我的体重有x公斤
weight = 75.6
print('我的体重有%.2f公斤' % weight)
结果是75.60
格式化输出字符串
除了%s,还可以写成==f'{表达式}'== 从pyhon 3.6开始有的新方法
eg:使用f'{表达式}'方法输出
print(f'我的名字是{name_my},我的年龄是{age},明年是{age + 1}岁,我的体重有{weight}公斤\n')
输出格式,总结
# 综合输出
print('我的名字是%s,我的年龄是%d,我的体重有%.2f公斤' % (name_my, age, weight))
print('我的名字是%s,我的年龄是%d,明年的年龄是%d,我的体重有%.2f公斤' % (name_my, age, age + 1, weight))
print('我的名字是%s,我的年龄是%d,明年的年龄是%d,我的体重有%.2f公斤,我的学号是%03d' % (name_my, age, age + 1, weight, stuid))
# 全部转义成字符串类型输出
print('我的名字是%s,我的年龄是%s,明年的年龄是%s,我的体重有%s公斤,我的学号是%03d' % (name_my, age, age + 1, weight, stuid))
# 使用f'{表达式}'方法输出 python3.6以后有这种方式
print(f'我的名字是{name_my},我的年龄是{age},明年是{age + 1}岁,我的体重有{weight}公斤\n')
使用input函数输入
输入,使用input("提示信息")函数,
当程序执行到input,等待用户输入,再往下执行,
input接收到用户输入后,一般存储到变量中再使用,
input会把用户输入的数据当作字符串处理
实例1:
password = input('请输入密码:')
print(f'您输入的密码是{password}')
print(type(password))
执行结果:
请输入密码:1234
您输入的密码是1234
将输入的数据转换成需要的类型,需要使用转换函数
实例2:
# 数据类型转换函数:int() float() str() list() tuple() eval()
print(int(95.6)) # 强制转换为int类型
str1 = '18,19,20'
str2 = eval(str1) # eval() 把一个字符串中的python表达式,转换成一个对应的数据类型
str3 = set(str2) # 强制转化为set(集合类型)
print(eval(str1))
print(type(eval(str1)))
print(list(str2)) #强制转化为list类型输出
print(str3)
执行结果:
95
(18, 19, 20)
[18, 19, 20]
{18, 19, 20}
转义字符
- \n 换行符
- \t 制表符,等于tab 相当于4个空格
# 验证换行符,和制表符
print("hello\nmy friend")
print("hello\tmy\tfriend")
结束符
print函数默认换行符为结束符,可以自己改变不是换行
print('输出的内容',end="\t")
# 验证结束符
print('hello world', end='\t\t')
print('hello my friend', end='\n')
运算符
分类:
- 算术运算符
- 赋值运算符
- 复合赋值运算符
- 比较运算符
- 逻辑运算符
特殊的算术运算符
- //整除
- **指数运算
- %取余数
特殊的赋值运算
多个变量赋值
eg:num1,float1,str1 = 10,0.5,"hello world"
多个变量赋相同值
eg:a = b = 10
复合赋值运算符
先算运算符右边的表达式,再复合赋值
比较运算符
逻辑运算符
- and 两个都是真才返回真
- or 两个有一个为真就返回真
-
not 非真为假,非假为真
image
数字之间的逻辑运算
条件判断
if else 语句
网吧上网判断年龄的实例
# 网吧上网判断年龄的例子
age = int(input('请输入你的年龄:')) #读取用户输入的年龄
if age >= 18: #判断输入的年龄是否大于18岁
print('你的年龄满了十八岁,可以上网') #大于18岁就可以上网
else:
print('你的年龄没有满18岁,不能上网') #否则不能上网
print('系统关闭')
另一种输出方式
# 网吧上网判断年龄的例子
age = int(input('请输入你的年龄:')) #读取用户输入的年龄
if age >= 18: #判断输入的年龄是否大于18岁
print(f'你的年龄满了{age}岁,可以上网') #大于18岁就可以上网
else:
print(f'你的年龄是{age}岁,不能上网,回家写作业去') #否则不能上网
print('系统关闭')
注意:如果某些条件成立了,执行了相关代码,其他情况的代码就不会被执行
多重判断
语法:
多重判断也可以和else配合使用,一般else放在整个if语句的最后,表示以上条件都不成立的时候执行的代码
示例:
'''
if else 多重条件判断语句实例
'''
age1 = int(input('请输入您的年龄:'))
if (age1 < 18) and (age1 >0):
print(f'您输入的年龄是{age1},属于童工,不合法的')
elif (age1 >= 18) and (age1 <= 65):
print(f'您输入的年龄是{age1},是合法年龄,可以工作')
elif age1 > 65:
print(f'您输入的年龄是{age1},输入退休年龄')
else:
print('您的输入有误')
拓展: (age1 >= 18) and (age1 <= 65) 可以简化为:18 <= age1 <= 65
多重判断实例:猜拳游戏
'''
多重判断实例:猜拳游戏,利用随机数
'''
import random
print('提示:0--石头,1--剪刀,2--布')
player = int(input('请出拳:'))
computer = random.randint(0, 2) # 用随机数代替电脑出拳
# 玩家赢的情况
if (player == 0 and computer == 1) or (player ==1 and computer == 2) or (player == 2 and computer == 0):
print('玩家赢了,哈哈')
elif player == computer:
print('是平局,再来一局')
else:
print('电脑赢了,真遗憾!')
if语句的嵌套语法
语法:
注意:条件2的if与条件1的if的关系,体现在缩进关系
实例:
'''
if嵌套语句实例,坐公交
'''
money =int(input('请问带钱了吗:')) # 输入1代表有钱,0代表没钱
if money == 1:
print('土豪,请上车')
seat = int(input('有座位吗:')) # 输入1代表有座位,0代表没有
if seat ==1:
print('有座位,请座')
else:
print('没有座位,站着吧')
else:
print('没钱,跟着跑,跑快点')
拓展:三目运算符
三目运算符也叫三元运算符或者三元表达式,目的是缩减代码
条件成立执行表达式:if 条件 条件不成立,执行表达式 else 条件
示例:
'''
三目运算符实例
输入两个整数,取它们的整数差
'''
num_1 = int(input('请输入第一个整数'))
num_2 = int(input('请输入第二个整数'))
num3 = num_1 - num_2 if num_1 > num_2 else num_2 - num_1
print(num3)
循环语句
Python中,循环分为while和for两种,最终实现效果相同
while循环语法
while 条件:
条件成立重复执行的代码1
条件成立重复执行的代码2
实例1:
# 输出5次 “媳妇儿,我错了!”
i = 0
while i < 5:
print('媳妇儿,我错了!')
i = i + 1
实例2:
# while应用,1到100的累加
sum = 0
i = 1
while i <= 100:
sum = sum + i
i = i + 1
print(f'1到100累加的和是{sum}')
实例3:
# while 应用,1到100偶数的累加,方法1计数器
sum1 = 0
j = 2
while j <=100:
sum1 = sum1 + j
j = j + 2
print(f'1到100偶数的累加是{sum1}')
# while 应用,1到100偶数的累加,方法2取余
sum2 = 0
k = 0
while k <= 100:
if k % 2 == 0: # 取余为0的就是偶数
sum2 = sum2 + k
k = k + 1
print(f'1到100偶数的累加是{sum2}')
复杂实例:
'''
套用循环的猜拳游戏
'''
import random
i = int(input('开始游戏吗?---提示:1--开始游戏,0--结束游戏:'))
if i == 1:
while i == 1:
print('提示:0--石头,1--剪刀,2--布')
player = int(input('请出拳:'))
computer = random.randint(0, 2) # 用随机数代替电脑出拳
# 玩家赢的情况
if (player == 0 and computer == 1) or (player == 1 and computer == 2) or (player == 2 and computer == 0):
print('玩家赢了,哈哈')
elif player == computer:
print('是平局,再来一局')
else:
print('电脑赢了,真遗憾!')
i = int(input('要继续玩吗?1--继续玩,0--结束游戏:'))
print('游戏结束!')
else :
print('结束游戏!')
循环中的break 和 continue
break 终止此循环(满足条件下)
continue 退出当前此次循环而执行下一次循环(满足条件下)说明将使用if语句
break实例
# break 吃苹果实例,吃到第4个吃不下了,就不吃了
l = 1
while l <= 5:
print(f'吃了第{l}个苹果')
if l == 4:
print(f'吃饱了,不吃了')
break
l = l + 1
continue实例
# continue 吃苹果实例,吃到第4个苹果,吃出来虫子,继续吃下一个
h = 1
while h <= 5:
if h == 4:
print(f'这个苹果有虫子,不吃这个')
h = h + 1 # 这个是关键,必须先调整计数器,不然会陷入死循环
continue
print(f'吃了第{h}个苹果')
h = h + 1
while的嵌套循环
语法:
while 条件1:
条件1成立执行的代码
while 条件2:
条件2成立执行的代码
所谓循环嵌套,就是一个循环里面再嵌套一个循环,条件成立时,先执行最内层的循环,执行完毕后,再执行外层的,以此类推
实例:每天说5次媳妇我错了,刷一次碗,连续三天
m = 0
while m < 3:
n = 0 # 内层的计数器必须在内层定义
while n < 5:
print('媳妇我错了!')
n = n + 1
print('去刷碗去!')
print('今天的惩罚可以了')
m = m + 1
实例1:
# 打印一个5*5的星星矩形
m = 0
while m < 5:
n = 0
while n < 5:
print("*", end=" ")
n = n + 1
print() # 利用print的默认换行
m = m + 1
实例2:
# 打印一个底边为5个星星的三角形
m = 0
while m < 5:
n = 0
while n <= m:
print("*", end=" ")
n = n + 1
print() # 利用print的默认换行
m = m + 1
实例3:
# 打印九九乘法表
m = 1
while m <= 9:
n = 1
while n <= m:
print(f'{n}*{m}={n*m}', end=" ")
n = n + 1
print() # 利用print的默认换行
m = m + 1
for循环
语法:
for 临时变量 in 序列:
重复执行的代码1
重复执行的代码2
实例1
# 快速体验for循环,打印出字符串中的所有字符
str1 = 'helloworld'
for i in str1: # 序列即可以是一组数组,也可以是字符串
print(i, end=' ')
for循环中的break和continue
实例1:break
# for循环中的break
str1 = 'helloworld'
for i in str1: # 序列即可以是一组数组,也可以是字符串
if i == 'o':
print('遇到o不打印,退出循环')
break
print(i, end=' ')
实例2:continue
# for循环中的continue
str1 = 'helloworld'
for i in str1: # 序列即可以是一组数组,也可以是字符串
if i == 'o':
print('遇到o不打印')
continue # 不需要计数器手动+1
print(i, end=' ')
循环和else的配合使用
else下方缩进的代码是==循环正常结束之后要执行的代码==
while……else
语法:
while 条件:
条件成立重复执行代码
else:
循环正常结束之后要执行的代码
实例1:
# 能正常输出5次 “媳妇儿,我错了!”再输出“媳妇儿原谅我了”
i = 0
while i < 5:
print('媳妇儿,我错了!')
i = i + 1
else:
print('媳妇儿原谅我了,开心')
while……else之break
break是跳出循环,循环非正常结束,else语句将不执行
实例1:
# 输出5次 “媳妇儿,我错了!”再输出“媳妇儿原谅我了”,但第三次的时候循环中止,else不执行
i = 1
while i <= 5:
if i == 3:
print('这遍说的不真诚')
break #这里跳出循环,循环非正常结束,else将不执行
print('媳妇儿,我错了!')
i = i + 1
else:
print('媳妇儿原谅我了,开心')
while……else之continue
continue只是退出当前循环,进入下一次循环,循环还是算正常结束
实例1:
# 输出5次 “媳妇儿,我错了!”再输出“媳妇儿原谅我了”,第三次不真诚但可以忍受,继续执行,循环正常结束,else语句执行
i = 1
while i <= 5:
if i == 3:
print('这遍说的不真诚')
i = i + 1 #计数器必须先自增,再执行continue,不然还是会进入死循环
continue
print('媳妇儿,我错了!')
i = i + 1
else:
print('媳妇儿原谅我了,开心')
for……else语句
语法:
for 临时变量 in 序列:
条件成立重复执行代码1
……
else:
循环正常结束之后要执行的代码
直接进入for……else之break,continue
实例1:break
# for循环中的break,else语句将不执行
str1 = 'helloworld'
for i in str1: # 序列即可以是一组数组,也可以是字符串
if i == 'o':
print('遇到o不打印,退出循环')
break
print(i, end=' ')
else:
print('循环正常结束')
实例2:continue
# for循环中的continue,else语句还是被执行
str1 = 'helloworld'
for i in str1: # 序列即可以是一组数组,也可以是字符串
if i == 'o':
print('遇到o不打印', end='\t')
continue
print(i, end=' ')
else:
print('循环正常结束')
for循环进阶
for i in range ()作用:
range()是一个函数, for i in range () ==就是给 i 赋值==:
range () 函数的使用是这样的:
range(start, stop[, step]),分别是起始、终止和步长
range(3)即:从0到3,不包含3,即0,1,2
range(1,3,2)即:从1到3,每次增加2,因为1+2=3,所以输出只有1
第三个数字2是代表步长。如果不设置,就是默认步长为1
i 在for循环中的赋值范围就是 start <= i < stop, i = i + step
复杂实例:打印100以内的质数
# 打印100以内的质数
num=[] # 定义一个装质数的列表
for i in range(2,100): # i取值范围是:2<=i<100
for j in range(2,i): # j取值范围是:2<=j