Python 循环与判断
运算符
算数运算符
- 运算符号:加+,减-,乘*,除/,取余%,次方**,整除//
比较运算符
- 运算符号:等于(==),不等于(!=),大于(>),小于(<),大于等于(>=),小于等于(<=)
赋值运算符
- 运算符号:
简单赋值运算符:=,如 a=1,多变量赋值如b,c=2,“的”, b的值为2,c的值为“的”
加法赋值运算符:+=,a=1, b=a+1和a+=1一样,即为自增加
减法赋值运算符:-=,a=3, b=a-1和a-=1一样,即为自减法
乘法赋值运算符:=,a=3, b=a2和a*=2一样,即为自乘法
除法赋值运算符:/=,a=5, b=a/2个a/=2一样,即为自除法
取余赋值运算符:%=,a=5, b=a%2个a%=2一样,即为自除取余法
幂赋值运算符-乘方:=,a=3, b=a3和a**=3一样,即为自乘方法
整除赋值运算符://=,a=5, b=a//2个a//=2一样,即为自整除法
运算逻辑符
- 运算符号
and:x and y,xy都为真则为真-True,有一个为假则为假False
or:x or y,xy任意一个为真则为真,两个都为假则为假
not:not x,x为假,则not x为真
成员运算符
- 运算符号
in:在指定序列中找到值,为真,反之为假
not in:在指定序列中没有找到值,为真,反之为假
身份运算符
-
运算符号
is:判断两个标识符是不是引用同一个对象
is not:判断两个标识符是否引用自不同对象
与“==”和“!=”的区别:==与!=只判断值,不判断内存地址,is是判断两个变量之间的内存地址是否相同,is not是判断两个变量之间的内存地址是否不同
-
注:
可变的数据结构,即使看着一样,但是内存地址是不同的,如上图的list中的元素
不可变的数据结构,如果看着一样,那么他们的内存地址是相同的,如上图中的直接命名的变量
控制流 - 分支判断
- 一条一条语句顺序执行称为顺序结构
- 分支结构:在某个判断条件后,选择一条分支执行
if条件判断
- 第一个场景分支一定使用,需要跟随判断条件
else条件判断
- 当从第二个场景分支开始只剩下一种场景时使用,无需跟随判断条件
elif多重条件判断
- 当有两个以上场景分支时,从第二个分支开始使用,每一个都需要跟随判断条件
分支嵌套
- 多种不同层级的判断可嵌套进行
三目运算符
- 赋值操作放在前边+if+此赋值的满足的判断条件+else+else分支执行的操作
控制流 - 循环
定义
- 允许多次执行一个语句或多个语句
- 分别为for循环和while循环
作用
- 封装重复操作
- 基础语法之一
for in 循环
- 使用场景:明确知道循环执行的次数或者要对一个容器进行迭代
- range函数
range(101):产生一个0-100的整数序列
range(1,100):产生一个1-99的整数序列
range(1,100,2):产生一个1-99的奇数序列,步长为2
range(2,101,2):产生一个2-100的偶数序列,步长为2
while循环
- 满足条件,进入循环
- 需要设定好循环结束的条件
break 跳出循环
- 不要直接使用
- 注意设定跳出条件
continue 跳出当前轮次循环
- 循环中遇到不需要的单个数值或者针对的数值时,使用continue跳过
pass
- 用来占位
- 不影响代码执行逻辑
for 循环实例
计算1~100求和
- 使用分支结构实现1-100之间的偶数求和
sum = 0
for i in range(1, 101):
if i % 2 == 0:
sum = sum + i
print('i=%d'%i)
print('sum=%d'%sum)
print(sum)
- 不使用分支结构实现1~100之间的偶数求和
sum1 =0
for k in range(2, 101, 2):
sum1 = sum1 + k
print('k=%d'%k)
print('sum1=%d'%sum1)
while循环实例
猜数字游戏
- 计算机出一个1-100之间的随机数由人来猜
- 计算机出根据人猜的数字分别
- 给出提示大一点/小一点/猜对了
- 人一直给出数字
import random
conputer_no =random.randint(1,100)
print('conputer_no',conputer_no)
while True:
people_no =int(input("请输入数字:"))
if conputer_no>people_no:
print("你猜小了")
elif conputer_no<people_no:
print("你猜大了")
else:
print("猜对了")
break
- 机器一直给出数字
import random
people_no =int(input("请输入数字:"))
ss=0
min=1
max=100
while ss != people_no:
print("min = %d"%min+",max = %d"%max)
# random.randint(min, max) 是随机生产一个范围内的整数
conputer_no =random.randint(min, max)
print('conputer_no',conputer_no)
if conputer_no> people_no:
print("电脑大了")
max = conputer_no
elif conputer_no< people_no:
print("电脑小了")
min =conputer_no+1
else:
print("电脑猜对了")
break
课后练习
- 不使用分支结构实现1~100之间的求和求和
sum =0
for i in range(1,101,2):
print(i)
sum = sum+i
print(sum)
- 使用while语句实现1~100 之间的奇数求和
k = 1
big = 0
while k % 2 == 1 and k < 101:
print(k)
big = big + k
k += 2
print(big)