文章目录
python 学习一
变量
变量命名:
规则:
变量名由字母、数字和下划线构成,数字不能开头。
Python 是大小写敏感的编程语言
惯例部分:
惯例1:变量名通常使用小写英文字母,多个单词用下划线进行连接。
惯例2:受保护的变量用单个下划线开头。
惯例3:私有的变量用两个下划线开头。
可以使用变量来保存数据,变量有不同的类型,常用的类型有int、float、str和bool。
可以通过 Python 内置的函数对变量进行类型转换。
变量类型
int():将一个数值或字符串转换成整数,可以指定进制。
float():将一个字符串(在可能的情况下)转换成浮点数。
str():将指定的对象转换成字符串形式,可以指定编码方式
运算符
比较运算符也称为关系运算符,包括**==、!=**、<、>、<=、>=
比较运算符会产生布尔值,要么是True,要么是False。
逻辑运算符有三个,分别是and、or和not (返回结果为布尔型)
格式化输出
一、百分号法(不能前多后少)
- %d -->整数
- %s–>字符串
- %f–>小数
- %.2f–>最终结果保留 两位小数
例子:
wendu = float(input('请输入华氏温度: '))
c = (wendu - 32) / 1.8
# 一
print('%.1f华氏度 = %.1f摄氏度' % (wendu, c))
# 二(是的,也可以写成这种,但注意f'')
print(f'{wendu:.1f}华氏度 = {c:.1f}摄氏度')
format()函数
总结一下(格式化输出)
百分号法 前面的格式 是'%d/f/s'
,后面也是%(xx,xx,xx)
前后类型必须对应
format() 前面的格式 是{}
后面的格式是.{format()}
format() 可以指定参数的位置,也可以重复应用参数
分支结构
一、if elif else
例子计算 BMI
height = float(input('身高(cm):'))
weight = float(input('体重(kg):'))
bmi = weight / (height / 100) ** 2
print(f'{bmi = :.1f}')
if 18.5 <= bmi < 24:
print('你的身材很棒!')
if语句的最后面有一个 ‘:’
if 18.5 <= bmi < 24:
print('你的身材很棒!')
else:
print('你的身材不够标准哟!')
if bmi < 18.5:
print('你的体重过轻!')
elif bmi < 24:
print('你的身材很棒!')
elif bmi < 27:
print('你的体重过重!')
elif bmi < 30:
print('你已轻度肥胖!')
elif bmi < 35:
print('你已中度肥胖!')
else:
print('你已重度肥胖!')
二、match case
match 主要适用于 具体值匹配,对于范围判断 if-elif 可能更加直观
例子:HTTP 响应状态码识别
status_code = int(input('响应状态码: '))
match status_code:
case 400:
description = 'Bad Request'
case 401:
description = 'Unauthorized'
case 403:
description = 'Forbidden'
case 404:
description = 'Not Found'
case 405:
description = 'Method Not Allowed'
case 418:
description = 'I am a teapot'
case 429:
description = 'Too many requests'
case _:
description = 'Unknown Status Code'
print('状态码描述:', description)
带有case_语句在代码中起到通配符的作用,如果前面的分支都没有匹配上,代码就会来到case _。
case _的是可选的,并非每种分支结构都要给出通配符选项。如果分支中出现了case _,它只能放在分支结构的最后面.
如果它的后面还有其他的分支,那么这些分支将是不可达的。
match-case语法还有很多高级玩法,例如合并模式
status_code = int(input('响应状态码: '))
match status_code:
case 400 | 405: description = 'Invalid Request'
case 401 | 403 | 404: description = 'Not Allowed'
case 418: description = 'I am a teapot'
case 429: description = 'Too many requests'
case _: description = 'Unknown Status Code'
print('状态码描述:', description)
循环结构
for in 循环
for in 循环是知道需要循环的次数
补充知识:range函数
- range(101):可以用来产生0到100范围的整数,需要注意的是取不到101。
- range(1, 101):可以用来产生1到100范围的整数,相当于是左闭右开的设定,即[1, 101)。
- range(1, 101, 2):可以用来产生1到100的奇数,其中2是步长(跨度),即每次递增的值,101取不到。
- range(100, 0, -2):可以用来产生100到1的偶数,其中-2是步长(跨度),即每次递减的值,0取不到。
可以理解为[x,y)
补充知识:time 、sleep
Python 内置time模块的sleep函数可以实现程序的休眠,参数1表示休眠的秒数,可以使用int或float类型,例如0.05表示50毫秒。(具体的知识,之后介绍)
例子:执行一个小时,每秒输出hello,world
import time
for i in range(3600):
print('hello, world')
time.sleep(1)
上面代码的输出操作和休眠操作都没有用到循环变量i,对于不需要用到循环变量的for-in循环结构,按照 Python 的编程惯例,我们通常把循环变量命名为_
import time
for _ in range(3600):
print('hello, world')
time.sleep(1)
while 循环
如果要构造循环结构但是又不能确定循环重复的次数,我们推荐使用while循环。
while循环通过布尔值来控制循环。true --循环,false --停止
例子:用while循环来实现从 1 到 100 的整数求和
total = 0
i = 1
while i <= 100:
total += i
i += 1
print(total)
break和continue
break只能终止它所在的那个循环
break例子:计算 1 到 100 的偶数和
total = 0
i = 2
while True:
total += i
i += 2
if i > 100:
break
print(total)
continue,它可以用来放弃本次循环后续的代码直接让循环进入下一轮
total = 0
for i in range(1, 101):
if i % 2 != 0:
continue
total += i
print(total)
上面的代码使用continue关键字跳过了i是奇数的情况,只有在i是偶数的前提下,才会执行到total += i。
嵌套的循环结构
嵌套的循环来输出一个乘法口诀表(九九表)。
for i in range(1, 10):
for j in range(1, i + 1):
print(f'{i}×{j}={i * j}', end='\t')
print()
本笔记参考文章(感谢老师的付出,给我的学习提供参考):https://github.com/jackfrued/Python-100-Days/blob/master/Day01-20/06.%E5%BE%AA%E7%8E%AF%E7%BB%93%E6%9E%84.md