参考视频
while循环
"""
演示while循环的基础应用,while的条件需得到bool类型,True表示继续循环,False表示结束循环
需要设置循环终止条件,如i += 100,否则将无限循环
空格缩进和if判断一样,都需要设置
"""
i = 0
while i < 10:
print('黑马程序员')
i += 1
while循环案例取1-100的和
i = 1
plus = 0
while i <= 100:
plus = plus + i
i = i + 1
print(plus)
print(f'1到100累加的和是:{plus}')
while循环猜数字⭐
# 设置一个范围1-100的随机整数变量,通过while循环,配合input语句,判断输入的数字是否等于随机数
#
# 无限次机会,直到中为止
# 每一次猜不中,会提示大了或小了
# 猜完数字后,提示猜了几次
#
# 提示:
# 无限次机会, 终止条件不适合用数字累加来判断
# 可以考虑布尔类型本身 True rFalse
# 需要提示几次猜中 就需要提供数字累加功能
# 随机数可以使用:import random
# num = random.randint(1,100)
# 获取1-100的随机数字
import random
num = random.randint(1, 100)
print(num)
# 定义一个变量,记录总共猜测了几次
count = 0
# 通过一个布尔类型的变量,做循环是否继续的标记
flag = True
while flag:
guess_num = int(input('输入你要猜测的数字:'))
count += 1
if guess_num == num:
print('猜中了')
# 设置为False就是终止循环的条件
flag = False
else:
if guess_num > num:
print('你猜的数字大了')
else:
print('你猜的小了')
print(f'你一共猜了{count}次。')
# 方法二
target_number = random.randint(1, 100)
print(target_number)
# 初始化猜测次数
guess_count = 1
user_guess = int(input("请输入一个1到100的整数: "))
while user_guess != target_number:
# 猜测次数加1
guess_count += 1
# 判断猜测数字与目标数字的关系
if user_guess < target_number:
print("猜错了,太小了,请继续尝试。")
else:
print("猜错了,太大了,请继续尝试。")
# 如果条件不满足,则再次读取用户的输入,直到满足条件为止!!!
user_guess = int(input("请输入一个1到100的整数: "))
# 输出猜中的信息
print(f"恭喜你猜对了!目标数字是{target_number},你总共猜了{guess_count}次。")
GPT矫正个人错误:
import random
# 生成1到100之间的随机整数
target_number = random.randint(1, 100)
print(target_number)
# 初始化猜测次数
guess_count = 1
"""
GPT代码:抱歉造成了困扰,这是因为在使用:=时,它的优先级较低,会导致先将input和!=绑定,
而不是先执行int(input())然后再和target_number比较。你可以使用括号来明确优先级,如下所示:
while (user_guess := int(input("请输入一个1到100的整数: "))) != target_number:
原来的为
while user_guess := int(input("请输入一个1到100的整数: ")) != target_number:
"""
while (user_guess := int(input("请输入一个1到100的整数: "))) != target_number:
""":=是“海象操作符”这个操作符允许你在表达式中同时进行赋值和返回值,将一个表达式的结果赋值给一个变量,并且在同一时间使用这个结果。"""
# 猜测次数加1
guess_count += 1
# 判断猜测数字与目标数字的关系
if user_guess < target_number:
print("猜错了,太小了,请继续尝试。")
else:
print("猜错了,太大了,请继续尝试。")
# 输出猜中的信息
print(f"恭喜你猜对了!目标数字是{target_number},你总共猜了{guess_count}次。")
while循环的嵌套
"""
演示while循环的嵌套使用
"""
# 外层,表白100次的控制
# 内层,每天的表白都送10只玫瑰的控制
i = 1
while i <= 100:
print(f'今天是第{i}天,准备表白……')
# 内层循环的控制变量
j = 1
while j <= 10:
print(f'送给小美第{j}只玫瑰花')
j += 1
print('小美我喜欢你')
i += 1
print(f'坚持到第{i - 1}天,表白成功')
# 基于空格缩进来决定层次关系
# 注意条件的设置,避免出现无限循环
while循环嵌套案例_九九乘法表⭐
# 乘法表
# 1、控制行的循环(外行)i <= 9
# 2、控制每一行输出的循环(内行)j <= i
# 定义外层循环的控制变量
i = 1
while i <= 9:
# 定义内层循环的控制变量
j = 1
while j <= i:
# 内层循环的print语句,不要换行,通过\t制表符进行对齐
print(f'{j} * {i} = {j * i}\t', end='')
j += 1
i += 1
# print空内容,就是输出一个换行
print()
# 方法二:
for i in range(1, 10):
for j in range(1, i + 1):
print(f'{j} * {i} = {j * i}\t', end='')
print()
for循环基本语法
"""
演示for循环的基础语法
"""
name = 'heima'
for x in name:
# 将name的内容,挨个取出赋予x临时变量
# 就可以在循环体内对x进行处理
print(x)
# 可以看成,for循环是将字符串的内容:依次取出,只能从被处理的数据集中,依次取出内容进行处理
# 同while循环不同,for循环是无法定义循环条件,理论上python的for循环无法构建无限循环
for循环案例_数数多少个字母
name = 'it heima is a brand of it cast'
# 定义一个变量,用来统计有多少个a
count = 0
# for 循环统计
# for 临时变量 in 被统计的数量:
for x in name:
if x == 'a':
count += 1
print(f'被打印出来的字符串中有{count}个a')
for循环range语句
# range语法1 range(num)=0-9整数一次列出
for x in range(10):
print(x)
# range语法2 range(num1,num2)56789
for x in range(5, 10):
print(x)
# range语法3 range(num1,num2,step)步长
for x in range(5, 10, 2):
print(x)
# 从5开始,到10结束(不包含10本身)的一个数字序列,数字之间的间隔为2
i = 1
while i <= 10:
print('送玫瑰花')
i += 1
# 同样效果
for x in range(10):
print('送玫瑰花')
"""
以下来源菜鸟教程
"""
# 还可以使用 range() 函数来创建一个列表:
my_list = list(range(5))
print(my_list)
print(type(my_list))
"""
[0, 1, 2, 3, 4]
<class 'list'>
"""
# 斐波那契数列是一个经典的数学问题,其中每个数字是前两个数字之和。
a, b = 0, 1 # 复合赋值
while b < 10:
print(b)
a, b = b, a+b
# 其中代码 a, b = b, a+b 的计算方式为先计算右边表达式,然后同时赋值给左边,等价于:
# n=b
# m=a+b
# a=n
# b=m
"""
1
1
2
3
5
8
"""
# Fibonacci series: 斐波纳契数列
# 两个元素的总和确定了下一个数
a, b = 0, 1
while b < 1000:
print(b, end=',')
a, b = b, a+b
"""
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,
"""
a = 0
b = 1
while b < 1000:
print(b, end=',')
n = b
m = a + b
a = n
b = m
for循环range语句案例
count = 0
for x in range(1, 100):
y = x % 2
if y == 0:
count += 1
print(f'1到100(不含100本身)范围内,有{count}个偶数。')
"""
1到100(不含100本身)范围内,有49个偶数。
"""
for循环临时变量作用域
"""
演示Python for循环临时变量的作用域
"""
for i in range(5):
# 临时变量,在编程规范上,作用范围(作用域),只限定在for循环内部
print(i)
# 如果在for循环外部访问临时变量:
# 实际上是可以访问到的
# 在编程规范上,是不允许不建议的
print(i)
# 可先for循环前先定义临时变量
# 局部作用域是临时变量(函数内定义的变量)的典型作用域,
# 变量在函数之外定义时具有全局作用域。比如下列i = 0,这意味着这些变量
# 可以在整个代码文件中的任何位置访问。全局变量的生命周期在整个程序执行期间,直到程序退出。
i = 0
for i in range(5):
print(i)
print(i)
# 全局作用域和局部作用域(临时变量)
for循环嵌套应用
"""
演示嵌套应用for循环
"""
# 坚持表白10天,每天都送5朵花
# range
i = 1
for i in range(1, 11):
print(f'今天是向小美表白的第{i}天,加油坚持。')
# 写内层的循环
for j in range(1, 6):
print(f'给小美送的第{j}朵玫瑰花。')
print('小美我喜欢你。')
print(f'第{i}天,表白成功')
# for和while的循环相互嵌套
i = 1
for i in range(1, 11):
print(f'今天是向小美表白的第{i}天,加油坚持。')
j = 1
# 写内层的循环
while j <= 5:
print(f'给小美送的第{j}朵玫瑰花。')
j += 1
print('小美我喜欢你。')
print(f'第{i}天,表白成功')
# for和while的循环相互嵌套
i = 1
while i < 10:
print(f'今天是向小美表白的第{i}天,加油坚持。')
i += 1
# 写内层的循环
for j in range(1, 6):
print(f'给小美送的第{j}朵玫瑰花。')
print('小美我喜欢你。')
print(f'第{i}天,表白成功')
for循环打印九九乘法表
"""
演示for循环打印九九乘法表
"""
# 通过外层循环控制行数
for i in range(1, 10):
# 通过内层循环控制每一行的数量
for j in range(1, i + 1):
# 内层循环的print语句,不要换行,通过\t制表符进行对齐
print(f'{j} * {i} = {j * i}\t', end='')
print()
"""
1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16
1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49
1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
"""
循环中断continue和break
"""
演示环语句的中断控:break和continue
"""
# 演示循环中断语句continue,中断所在循环的当次执行,直接进入下一次
for i in range(1, 6):
print('语句1')
continue
print('语句2')
# 结果只有5行语句1
# 演示continue的嵌套应用
# 结果只有5×(1个语句1+5个语句2+语句4)
for i in range(1, 6):
print('语句1')
for j in range(1, 6):
print('语句2')
continue
print('语句3')
print('语句4')
# 演示循环中断语句break,直接结束所在的循环
for i in range(1, 6):
print('语句1')
break
# 整体直接结束,直接执行语句3
print('语句2')
print('语句3')
# 结果只有1个语句1和一个语句3
# 演示break的嵌套应用
for i in range(1, 6):
print('语句1')
for j in range(1, 6):
print('语句2')
break
print('语句3')
# 整个内层循环直接结束,直接执行语句4
print('语句4')
# 结果为5个(语句1+语句2+语句4)
"""
语句1
语句1
语句1
语句1
语句1
语句1
语句2
语句2
语句2
语句2
语句2
语句4
语句1
语句2
语句2
语句2
语句2
语句2
语句4
语句1
语句2
语句2
语句2
语句2
语句2
语句4
语句1
语句2
语句2
语句2
语句2
语句2
语句4
语句1
语句2
语句2
语句2
语句2
语句2
语句4
语句1
语句3
语句1
语句2
语句4
语句1
语句2
语句4
语句1
语句2
语句4
语句1
语句2
语句4
语句1
语句2
语句4
进程已结束,退出代码为 0
"""
"""
以下来源菜鸟教程
"""
# break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while
# 循环中终止,任何对应的循环 else 块将不执行。
# continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
n = 5
while n > 0:
n -= 1
if n == 2:
break
print(n)
print('循环结束。')
"""
4
3
循环结束。
"""
n = 5
while n > 0:
n -= 1
if n == 2:
continue
print(n)
print('循环结束。')
"""
4
3
1
0
循环结束。
"""
# 查询质数的循环例子:
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, '等于', x, '*', n//x)
break
else:
# 循环中没有找到元素
print(n, ' 是质数')
"""
2 是质数
3 是质数
4 等于 2 * 2
5 是质数
6 等于 2 * 3
7 是质数
8 等于 2 * 4
9 等于 3 * 3
"""
# 查询质数的:
def is_prime(n):
if n <= 1:
return False
elif n <= 3:
return True
elif n % 2 == 0 or n % 3 == 0:
return False
i = 5
while i * i <= n:
if n % i == 0 or n % (i + 2) == 0:
return False
i += 6
return True
def find_primes(start, end):
primes = []
for num in range(start, end + 1):
if is_prime(num):
primes.append(num)
return primes
start_range = int(input("请输入起始范围:"))
end_range = int(input("请输入结束范围:"))
print("在范围", start_range, "到", end_range, "内的质数为:")
print(find_primes(start_range, end_range))
循环综合案例
# 某公司,账户余额有1W元,给20名员工发工资。
# 员工编号从1到20,从编号1开始,依次领取工资,每人可领取1000元。
# 领工资时,财务判断员工的绩效分(1-10)(随机生成),如果低于5,不发工资,换下一位。
# 如果工资发完 结束发工资。
# 定义账户余额变量
money = 10000
# for循环对员工发放工资
for i in range(1, 21):
import random
score = random.randint(1, 10)
if score < 5:
print(f'员工{i}的绩效分{score},不满足,不发工资,下一位')
# continue跳过发放
continue
# 要判断余额足不足
if money >= 1000:
money -= 1000
print(f'员工{i},满足条件发放工资1000,公司账户余额;{money}')
else:
print(f'余额不足,当前余额:{money}元,不足以发工资,不发了,下个月在来。')
# break结束发放
break
# 员工1,满足条件发放工资1000,公司账户余额;9000
# 员工2,满足条件发放工资1000,公司账户余额;8000
# 员工3,满足条件发放工资1000,公司账户余额;7000
# 员工4,满足条件发放工资1000,公司账户余额;6000
# 员工5,满足条件发放工资1000,公司账户余额;5000
# 员工6,满足条件发放工资1000,公司账户余额;4000
# 员工7,满足条件发放工资1000,公司账户余额;3000
# 员工8的绩效分3,不满足,不发工资,下一位
# 员工9的绩效分2,不满足,不发工资,下一位
# 员工10,满足条件发放工资1000,公司账户余额;2000
# 员工11,满足条件发放工资1000,公司账户余额;1000
# 员工12,满足条件发放工资1000,公司账户余额;0
# 余额不足,当前余额:0元,不足以发工资,不发了,下个月在来。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 3415226167@qq.com