一、逻辑判断
1.1 布尔类型
1.1.1 常见数据类型
类型 | 描述 |
数字 | int、float、complex(复数)、bool(布尔) |
字符串(string) | 描述文本 |
列表(list) | 有序的可变序列 |
元组(tuple) | 有序的不可变序列 |
集合(set) | 无序不重复集合 |
字典(dictionary) | 无序Key-Value集合 |
1.1.2 其中的bool(布尔)类型
它表达现实生活中的逻辑,即真和假
- Ture表示真(1)
- False表示假(0)
result_1 = True
result_2 = 10 > 5
result_3 = "school" == "schooll"
print(f"result_1的结果是{result_1},类型是{type(result_1)};"
f"result_2的结果是{result_2},类型是{type(result_2)};"
f"result_3的结果是{result_3},类型是{type(result_3)}")
运行结果:
result_1的结果是True,类型是<class 'bool'>;result_2的结果是True,类型是<class 'bool'>;result_3的结果是False,类型是<class 'bool'>
1.2 if 判断语句
1.2.1 if 语句基本格式
语法:if 要判断的条件 :
条件成立时要做的事情
Age = 21
if Age > 18 :
print("我已经成年了")
注意:if 使用是通过缩进表示哪些语句是跟在if后面,当if后的语句成立才执行。
例如:
Age = 11
if Age > 18 :
print("我已经成年了")
print("我比小时候自由了")
print("时间过得真快")
运行结果:
时间过得真快
1.2.2 if else 语句组合用法
语法:if 条件 :
条件成立要做的事情
else :
不满足条件要做的事情
1.2.3 if elif else语句组合用法
语法:if 条件1 :
条件1成立要做的事情
elif 条件2 :
条件2成立要做的事情
elif 条件3 :
条件3成立要做的事情
...
else :
所有条件都不成立要做的事情
注意:
1. 代码从前往后执行,一旦进入了某个条件,则不会再进入后面的其它条件;
2. 使用这种语句相较于纯 if 语句的优点是,如果条件1不满足,则去到 elif 判断条件2时,自动排除条件1里的范围;而如果使用的是 if 语句,则会在判断条件2时再重复判断条件1,增加了运算量。
1.2.4 判断语句的嵌套
语法:
if 条件1:
满足条件1要做的事
if 条件2:
满足条件2要做的事
只有进入条件1 才有机会进入条件2
二、循环语句
2.1 while语句
语法:
while 条件 :
条件满足时做的事情
注意:条件可以是bool类型或者比较结构
例如:
import random
num = random.randint(1,10)
chance = 1
while chance <= 3:
num_in = int(input())
if num_in == num:
chance = 5
print("猜对了")
elif num_in > num:
print("猜大了")
else :
print("猜小了")
chance = chance + 1
if chance == 4:
print("猜数失败")
2.2 for循环
for循环是对一批内容进行逐个处理。
语法:
for 临时变量 in 待处理数据集
循环满足条件时执行的代码
例如:判断字符串中有几个a
name1 = "Today is monday"
a_num = 0
for x in name1:
if x == 'a':
a_num += 1
print(f"a有{a_num}个")
注意:
1. 能循环多少次完全取决于“待处理数据集”中有多少数据。
2. x若不在for循外部提前定义,则在规范上只能在for循环内部被访问,但在for循环外部访问不会报错。
3. 如果x在for循外部提前定义,则i的值在for循环结束后为序列最后一个数,在for循环外部可以被访问。
2.2.1 range语句
一般配合for循环使用,可以通过range控制循环次数
语法1:
range(num)
获取从“0”开始到“num-1”结束的“num”个数字序列
eg:range(5) 取得的数据为:[ 0, 1, 2, 3, 4 ]
语法2:
range(num1, num2)
获取从“num1”到“num2-1”结束的数字序列(默认步长为1)
eg:range(5, 10)取得的数据为:[ 5, 6, 7, 8, 9 ]
语法3:
range(num1, num2, step)
获取从“num1”开始到“num2-1”结束的数字序列,步长为step
eg:range(1, 10 ,2)取得的数据为[ 1, 3, 5, 7, 9 ]
for x in range(1,11,2):
print(x)
运行结果:
1 3 5 7 9
for循环应用举例:
#输出99乘法表
for i in range(1,10):
for j in range(1,i+1):
print(f"{j}*{i}={i*j}\t", end ='')#\t相当于tab,添加空格;end = ''表示最后不进行换行而是用空字符
print()#输出空字符并换行
输出结果:
2.3 continue与break关键字控制循环
continue:中断本次循环,直接进入下一次循环,在while和for循环中都适用。
break:直接结束循环。
举例:
#发工资 账户余额1w,给20名员工发工资,绩效低于5则不发工资,发完为止
money = 10000
for i in range(1,21):
import random
score = random.randint(1, 10)
if money == 0:
break
if score < 5:
print(f"员工{i},绩效分{score},低于5,不发工资,下一位")
continue
money -= 1000
print(f"员工{i},绩效分{score},高于5,发工资,余额{money}")
print("工资已发完")
运行结果: