一.while循环
while循环基础步骤:
1.定义变量赋初始值
2.条件判断
3.循环体
4.条件控制
- while循环基础格式:
- 变量名 = 初始值
- while 条件判断:
- 循环体
- 条件控制
while无限循环:
- 无限循环: 又叫死循环,恒成立的条件,循环的内容如果不设置条件不会停下来
- 实现无限循环的方式:
方式1: 正常的while循环,不加条件控制
方式2: while循环条件用两个字面量比较结果是True
方式3(建议): while循环条件直接用True
方式4: while循环条件直接用1
注意: True一般用数字1代表,False只能用数字0代表
特点: 非0即为True
None: 在python代表空的没有意义的
注意: 循环一般要设置条件,满足对应条件跳出循环 使用关键字break
题目1:打印hello world 50次并显示循环的次数
# 1.定义变量赋初始值
i = 1
# 2.条件判断
while i <= 50:
# 3.循环体
print('hello world', i)
# 4.条件控制
i += 1
题目2:1-100求和
# 需求: while循环求1-100的和
分析:利用循环中i能够不断自增的特点
设置i初始值1,不断自增到100结束
此时打印i其实就是打印1-100
a = 1 # a为循环100次的次数
sum = 0 # sum来记录每次循环相加得到的值
while a <= 100: # 终止循环条件,100次
sum += a # sum=sum+a 右边先进行计算,得出的值给左边的sum,用于下一轮循环计算
a += 1 # 条件控制 a=a+1,每循环一次a就加一
print(a, sum)
'''
1=s0+a1
3=s1+a2
6=s3+a3
10=s6+a4
'''
二.while无限循环
无限循环: 又叫死循环,恒成立的条件,循环的内容如果不设置条件不会停下来
实现无限循环的方式:
方式1: 正常的while循环,不加条件控制
方式2: while循环条件用两个字面量比较结果是True
方式3(建议): while循环条件直接用True
方式4: while循环条件直接用1
注意: True一般用数字1代表,False只能用数字0代表
特点: 非0即为True
None: 在python代表空的没有意义的
注意: 循环一般要设置条件,满足对应条件跳出循环 使用关键字break
while True:
print('我停不下来了~')
题目3:编写猜数字游戏,每次猜的数会提示猜大了还是猜小,机会无限制,并且猜中后会提示总共猜的次数,并结束循环
'''
1.random随机生成底数
2.input获取用户猜的数
3.上述两个数比较给出提示
4.无限循环
'''
import random
num = random.randint(1, 100)
count = 0 # 计数的变量赋值要放在循环体外面
print(num) # 偷偷显示答案
while 1: # 设置条件为无数次
guess_number = int(input('请输入您猜的数(范围1-100):'))
count = (count + 1) # 每猜一次统计一次
if 1 <= guess_number <= 100: # 限制可以输入的数字范围,1-100之间,以防乱猜
if guess_number == num:
print(f'恭喜你猜对了,总共猜的次数为{count}')
break
elif guess_number > num:
print('猜大了')
else:
print('猜小了')
else:
print('输入的数值超出范围')
print(f'您一共猜了{count}次,猜中了')
题目4:打印九九乘法表
1.print函数的一些换行操作
print('rrr\nrrr') # \n在字符串里换行
print('') # 添加一个换行
print('rrrrrr', end='') # 取消换行
print('bai\thei') # 字符串内隔开
print('111111', end='\t') # 取消换行
print('101')
2.九九乘法表规律
# a是列,b是行
b = 1 # 定义b是行数
while b <= 9: # 九九乘法表共九行,所以设置b超过9就结束循环
# 3.整个内层循环都是外层循环的循环体
a = 1
while a <= b: # a*b a是一直小于b的,在等于b的时候进到下一个循环
print(f'{a}*{b}={a * b}', end='\t') # 取消换行,结果全放在同一行
a += 1 # 每一次循环,a就加一
# 每行内容打印完进行换行操作
print() # 与a<=b这行同级关系,每一次循环,也就是a=b的时候,就换行
# 外循环条件控制
b += 1 # 每一次循环,a=b的时候,就进到下一个循环,下一个循环b就在原有基础上加一
三.for循环
for循环: 又叫遍历循环,需要提前准备好数据集然后从中一个个取出达到循环效果
for循环基础格式:
for 临时变量 in 数据集:
循环体
-
name = '白白的wj' for i in name: print(i)
-
count = 0 count2 = 0 name = 'dasdsdasincxsncuvendasdasdasdasd' \ 'csrgbrdtfvncjsenexfsnhsfhsekcgdkjh' \ 'fsagbvfnkcsrnkdrsucdhkfhsdxunfhes' \ 'gcjgnnjdgfyjbscdgebsaczxfhgvnshcfi' \ 'abegbfuxgnxfdzgcbs fhdjkxbgnfs' for x in name: # 已经进行遍历循环,把每个字符都单独取了出来 if x == 'd': # 如果遍历循环出来之中的元素等于d,则计数器计数 count += 1 if x == 's': count2 += 1 print(f'字母d统计有{count}个,字母s有{count2}个')
- range函数格式: range(x,y,z)
x: 初始值 注意: 默认是0,如果要是其他数手动写上
y: 结束值 注意: 不含y本身
z: 步长 注意: 默认是1,如果要是其他数手动写上
- for循环进阶格式:
for 临时变量 in range(x,y,z):
循环体
注意: 变量作用域规范上应该仅限于当前循环内部,但是python中如果外部访问了只会警告,不会报错
for i in range(0, 6): # 打印的是0-5
print(i, end='') # 取消换行,变成在同一行的遍历循环显示
print() # 换行
for i in range(10): # 打印的是0-9
print(i, end='\t ')
print()
for i in range(2, 12, 2): # 2,4,6,8,10 ,从0开始每次加2,中间为最高数(最高数不显示)
print(i, end='\t ')
print()
a = 2 # while循环打印2,4,6,8,10
while a <= 10:
print(a, end='\t ')
a += 2
题目5:使用for循环计算100 - 999 之间的偶数的个数
count=0
for i in range(100,1000,2):
count=count+1
print(f'100-999之间的偶数的个数为{count}个')
四.break和continue
continue: 结束本次循环,继续下一次循环
break: 跳出循环,结束循环
continue和break对while和for循环都适用!
注意: 在嵌套循环中,continue和break只能作用在所在的循环上,无法对上层循环起作用
题目6:遍历循环1-20,要求4,14,18跳过不显示,其余数字正常显示
for i in range(1, 21):
if i == 4 or i == 14 or i == 18:
continue
print(f'{i}层到了')
题目7:编写代码模拟用户登陆。要求:用户名为 binzi,密码 123456,如果输入正确,打印“欢迎光临”,结束循环.如果输入错误,提示用户输入错误并重新输入
while True:
name = input('请输入您的用户名:')
pwd = (input('请输入您的密码:'))
if name == 'binzi' and pwd == '123456':
print('欢迎光临')
break # 输入正确后,达成条件break结束循环
else:
print('用户名或密码错误,请重新输入')
题目8:设计"过7 游戏” 程序,即在 1- 99 之间的数字中,如果数字 包含 7 或者是 7 的倍数,则输出"过...", 否则输出 具体的数字.
参考方案
-
使用循环获取 1-99 之间的数字
-
判断一个数是否是 7 的倍数,即能否被 7 整除,在 python 可以使用
%
运算符判断7的倍数: i % 7 == 0 , 除以7之后的余数为0,确定可以被7整除
-
判断一个数字是否包含 7,可能个位是 7,也可能是十位数字是 7
判断个位 : i % 10 == 7 , 除以7之后的余数为7,如57÷10=5......余数7
判断十位: i // 10 == 7, 除以10之后的商取整,为7,如77÷10=7.7,取整数为7
for i in range(1, 100): # 遍历循环1-99
if i % 7 == 0 or i % 10 == 7 or i // 10 == 7:
print('过')
else:
print(i,end='\t')