Python中的数据类型:
一、整型
什么样的数据能够转为整型int?所有的数据类型后面添加小括号,即可使其变为数据类型转换的方法。(构造器语法)
1.浮点型可以转整型。
2.去掉引号就是一个整数的字符串可以转整型。
3.布尔值可以转整型,True --> 1, False --> 0
print(int(123.56))
print(int('12345'))
# print(int('123.456')) --> int不认识字符串里面的小数点
print(int(True), int(False))
# 字符串为小数使用int转整数,直接舍弃小数部分
输出
123
12345
1 0
二、浮点型
什么样的数据能够转为浮点型float?
1.整型可以转为浮点型。
2.数字字符串。
3.布尔值。 True --> 1.0, False --> 0.0
print(float(1234))
print(float('12.34'), float('100.'), float('.0'))
# 可以选择将无意义的0隐藏掉。
print(float(True), float(False))
输出
1234.0
12.34 100.0 0.0
1.0 0.0
三、布尔型
所有的数据均可以转为True和False。False:所有表示空值的数据和表示0的数据均为False;True:只要不是False,皆为True。
print(bool(0), bool(0.0), bool(None), bool(''), bool([]), bool({}))
print(bool(10000), bool(' '), bool('None'), bool([None]))
输出
False False False False False False
True True True True
Python中的分支结构:
一、单分支结构
单分支结构:只有是和否两种情况。
语法:
if 条件:
代码块1
else:
代码块2
分支结构,只有一条分支能够被执行,某一条分支被执行了,其他分支不再执行。
某一条分支被执行,就意味着这条分支的代码块被执行。
哪些代码属于某一条分支,看缩进,缩进说明了这些代码属于谁。
缩进,一般约定成俗为一个缩进为4个空格,缩进要么手动敲空格键,要么使用编辑器自动的缩进,千万不要使用制表符tab键。
# 练习用例:使用分支结构,判断一个年份是否是闰年,结果返回闰年或者平年。
year = 2024
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print('闰年')
else:
print('平年')
# 判断153、471、499这三个数字是否是水仙花数,
# 所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。
# 例如:153是⼀个水仙花数,因为 1³ + 5³ + 3³ 等于 153。
num1 = 153
unit = num1 % 10
decade = num1 // 10 % 10
hundred = num1 // 100
if unit ** 3 + decade ** 3 + hundred ** 3 == num1:
print(f'{num1}是水仙花数')
else:
print(f'{num1}不是水仙花数')
输出:
闰年
153是水仙花数
三目运算符:目运算符就是单分支结构的变形。 并不是所有的单分支结构都可以改为三目运算符形式。
三目运算符作用:解决单分支结构臃肿的问题,使代码更美观,更具可读性。
age = 17
if age >= 18:
print('已成年')
else:
print('未成年')
# 优化
print('已成年' if age >= 18 else '未成年')
# 三目运算符语法:
# 结果1 if 条件 else 结果2
# 如果条件成立,答案为结果1;反之,答案为结果2。
二、多分支结构
语法:
if 条件1:
代码块1
elif 条件2:
代码块2
elif 条件3:
代码块3
……
else:
代码块N
# 案例:期末考试,成绩评级,90分以上等级为A、80分以上等级为B、……
# 不及格等级为E,写一个程序,按照分数进行判断进行对应评级。
score = 70
if score >= 90:
print('A')
# elif score >= 80 and score < 90:
elif 80 <= score < 90:
print('B')
elif score >= 60 and score < 70:
print('D')
elif score >= 70 and score < 80:
print('C')
else:
print('E')
# score >= 80 and score < 90在Python不规范,
# 因为Python支持范围的连写。所以在代码底下会出现波浪线提示语法不规范
# 判断闰年,使用多分支结构。
year = 2008
if year % 4 == 0 and year % 100 != 0:
print('闰年')
elif year % 400 == 0:
print('闰年')
else:
print('平年')
嵌套分支
分支结构是可以相互嵌套的。按照语法,每一条分支下面都有一个代码块;所以可以在代码块这里写无数行代码。
# 判断一个数字,是否是偶数,如果是偶数,再判断其是否是4的倍数。
num = 20
if num % 2 == 0:
print(f'{num}是偶数')
if num % 4 == 0:
print(f'{num}还是4的倍数')
else:
print(f'{num}是奇数')
# 分支结构中else并不是必须要写的。
num = 40
if num % 2:
print(f'{num}是奇数')
else:
print(f'{num}是偶数')
# num % 2 == 0是比较大小,最终相等得到结果True。
# 而num % 2得到一个值为0,在条件中,默认将0转换为False。
Python中的循环结构:
Python中循环分为for循环和while循环。Python中涉及的循环关键字:for、in、while、break、continue
一、for循环
for-in循环语法:
for 变量 in 容器:
代码块
容器中元素是固定好的,个数是有限的。
for循环根据容器中元素个数确定循环次数,每循环一次,
变量就会从容器中挨个获取一个元素。直到循环次数达到容器中元素个数,停止。
ps:当for循环的作用仅仅是循环次数时,变量可以使用_代替。
range方法:左闭右开区间,能根据提供的数字,生成一个有限个数整数的容器。
range(start, stop, step)
解释:start:开始参数,默认为0,可以省略不写;stop:结束参数(必须赋值的一个参数);
step:为步长,决定下一个数字获取谁,默认为1,可以省略不写;如果step出现,start就不能够隐藏不写了。
如果step >= 1,start必须小于stop;如果step <= -1,start必须大于stop。
举例:
range(101) --> 表示生成一个0-100的整数容器。
range(11,21) --> 表示生成一个11-20的整数容器。
range(11, 21, 2) --> 表示在11-20的整数容器中每隔2个数取一个值。下一次产生的数字 = 本次数字 + step(步长)。
range(10, -11, -1) --> 表示生成10~-10之间的整数容器。
例子:
for i in range(10, -11, -2):
print(i,end=" ")
print()
# 求出所有的水仙花数。
for num in range(100, 1000):
unit = num % 10
decade = num // 10 % 10
hundred = num // 100
if unit ** 3 + decade ** 3 + hundred ** 3 == num:
print(f'{num}是水仙花数')
# 计算1-100的和。
total = 0
for i in range(1, 101):
total += i
print(f'1-100的和为{total}')
# 计算出10的阶乘。
total = 1
for i in range(2, 10):
total *= i
print(f'100的阶乘为{total}')
输出:
10 8 6 4 2 0 -2 -4 -6 -8 -10
153是水仙花数
370是水仙花数
371是水仙花数
407是水仙花数
1-100的和为5050
100的阶乘为362880
二、while循环
while循环既可以用作有限次数循环,也可用作无限次数循环。但是程序不允许出现无限次循环(死循环)。
一般for循环被用作有限次数循环,while循环被用作不确定次数的循环。
语法:
while 条件:
代码块
while循环开始时,先判断条件是否成立,条件成立,执行代码块,不成立,直接结束。
一次循环结束后,再次判断条件是否还成立。
# 案例:猜数字游戏(又被称为:数字炸弹)
# 在1-100之间,随机取一个数字,玩家去猜,猜对了接受惩罚;猜大了,提示再小一点;猜小了,提示再大一点。
from random import randint
# random:随机模块
# randint方法:能够从指定范围(闭区间)产生一个整数。
number = randint(1, 100)
# print(number)
flag = True
while flag:
num = int(input('请输入你猜的数字:'))
if num > number:
print('再小一点')
elif num < number:
print('再大一点')
else:
print('猜对了,游戏结束,接受惩罚')
flag = False