datas = range(10)
print(datas) # range(0, 10)
# range变为list类型,即可打印
print(list(datas))# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 倒着数
datas = range(16, 8, -1)
print(list(datas))
# 定义其他步长
datas = range(3, 9, 2)
print(list(datas))
# in成员运算符
print(5 in range(10),list(range(10)))
# 结果:True [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in range(10): # 将range中的内容这个赋予变量i
pass
print("循环执行range遍", i)
# 到i不包含在range里面时退出
for c in "ABCDEFG": # char指的是字符
print(c)
# 结果:字符串逐个输出
for e in ["第一个", bool, False, None, 100, "3", "a", "class"]: #列表
print(e)
# 结果:第一个、、False、None、100、3、a、class
for a in range(3, 67, 15):
print(a)
# 结果: 3、18、33、48、63
num1 = [1, 5, 8, 14]
for num in num1:
print(num)
# 结果:1、5、8、14
# 计算1+2+3+4+...+100
# sum是函数,为求和计算print(sum(range(1, 101)))
# 变量名尽量避开sum
total = 0
for i in range(101):
total += i
print(total)
#计算【500,1000】之间3的倍数的平均数
total = 0 # 总数
j = 0 # 个数(count)
for i in range(500, 1001):
if i % 3 == 0:
j += 1
total += i
print(total / j)
# 计算从500开始前10个5的倍数的平均数
# 方法1
# total = 0
# for i in range(500, 500+5*10, 5):
# total += i
# print(total / 10)
# 方法2
start = 500
total = 0
ifor i in range(10):
total += start
start += 5
print(total / 10)
# 方法3
total = 0
count = 0
for i in range(500, 600, 1):
if i % 5 == 0:
total += i
count += 1
elif count == 10:
break
print(total / 10)
total = 0
count = 0
for i in range(500, 1000):
if i % 13 == 0:
count += 1
total += i
if count == 10:
break
print(total / count)
外层循环变化一次内层循环变化一轮
# 打印9*9乘法表
for i in range(1, 10): # 控制外层循环
for j in range(1, i+1): # 控制内层循环,从1乘到i
print(f"{j}*{i}={j * i}", end="\t") # "\t"表示制表符,使每行对齐
print() # print()输出空行,每次内层循环结束后空行
# # 即i控制列数,j控制行数
num = int(input("请输入一个数:"))
total = 1
for i in range(1, num+1):
total *= i
print(f"{num}的阶乘是{total}")
# 请输入一个数:5
# 5的阶乘是120
num = int(input("请输入一个数:"))
total = 0
for i in range(1, num + 1):
count = 1
for j in range(1, i+1):
count *= j
total += count
print(total)
# 请输入一个数:5
# 153
①9 * 9 的正方形
# 9 * 9 的正方形
for i in range(9):
for j in range(9):
print(" * ", end="") # end负责取消空行(默认为end="\n"),即每次输出完j不换行,即控制行数
print() # print负者每行输出完之后换行,即i控制行数
# 结果
# * * * * * * * * *
# * * * * * * * * *
# * * * * * * * * *
# * * * * * * * * *
# * * * * * * * * *
# * * * * * * * * *
# * * * * * * * * *
# * * * * * * * * *
# * * * * * * * * *
②上三角线
# 上三角线
for i in range(9):
for j in range(9):
if i == j:
print(" * ", end="")
else:
print(" ", end="")
print()
# 结果
# *
# *
# *
# *
# *
# *
# *
# *
# *
③下三角形线
# 下三角线
for i in range(9):
for j in range(9):
if i + j == 8:
print(" * ", end="")
else:
print(" ", end="")
print()
# 结果
# *
# *
# *
# *
# *
# *
# *
# *
# *
④右上三角形
# 右上三角
for i in range(9):
for j in range(9):
if i <= j:
print(" * ", end="")
else:
print(" ", end="")
print()
# 结果
# * * * * * * * * *
# * * * * * * * *
# * * * * * * *
# * * * * * *
# * * * * *
# * * * *
# * * *
# * *
# *
⑤左下三角形
# 左下三角形
for i in range(9):
for j in range(9):
if i >= j:
print(" * ", end="")
else:
print(" ", end="")
print()
# 结果
# *
# * *
# * * *
# * * * *
# * * * * *
# * * * * * *
# * * * * * * *
# * * * * * * * *
# * * * * * * * * *
⑥右下三角形
# # 右下三角形
for i in range(9):
for j in range(9):
if i + j >= 8:
print(" * ", end="")
else:
print(" ", end="")
print()
# 结果
# *
# * *
# * * *
# * * * *
# * * * * *
# * * * * * *
# * * * * * * *
# * * * * * * * *
# * * * * * * * * *
⑦左上三角形
# # 左上三角形
for i in range(9):
for j in range(9):
if i + j <= 8:
print(" * ", end="")
else:
print(" ", end="")
print()
# 结果
# * * * * * * * * *
# * * * * * * * *
# * * * * * * *
# * * * * * *
# * * * * *
# * * * *
# * * *
# * *
# *
⑧沙漏形状
# 时间沙漏
for i in range(9):
for j in range(9):
if i <= j and i + j <=8 or i >= j and i + j >=8:
print(" * ", end="")
else:
print(" ", end="")
print()
# 结果
# * * * * * * * * *
# * * * * * * *
# * * * * *
# * * *
# *
# * * *
# * * * * *
# * * * * * * *
# * * * * * * * * *
# 方法一
num = int(input("请输入一个数字:"))
for i in range(1, num):
for j in range(1, 2*i):
print("*", end="")
print()
# 方法二
num = int(input("请输入一个数字:"))
for i in range(1, num+1):
print("*"*(2*i-1)) # 一个字符串乘以多少,相当于字符串重复几遍
print()
*****
***
*
num = int(input("请输入一个数字:"))
for i in range(num, 0, -1):
for j in range(1, 2*i):
print("*", end="")
print()
for i in range(100,1000):
a1 = i // 100
a2 = i // 10 % 10
a3 = i % 10
for j in range(100, 1000):
b1 = j // 100
b2 = j // 10 % 10
b3 = j % 10
if a1 == b3 and a2 == b2 and a3 == b1 and i + j == 1333:
print(f"a={a1},b={a2},c={a3}")
# 结果
# a=4,b=1,c=9
# a=5,b=1,c=8
# a=6,b=1,c=7
# a=7,b=1,c=6
# a=8,b=1,c=5
# a=9,b=1,c=4
for i in range(100, 1000):
num = i / 11
first = i // 100
second = i // 10 % 10
third = i % 10
if num == first + second + third:
print(i)
# 结果:198
count = 0
for i in range(1000, 0, -1):
if i % 3 == 0 and i % 6 == 0:
count += 1
print(i)
if count == 5:
break
# 结果
# 996
# 990
# 984
# 978
# 972
num = int(input("请输入一个数字:"))
# 默认值是质数
flag = True
for i in range(num-1, 1, -1): # 除的数应该排除本身和1
if num % i == 0:
flag = False
print(f"{num}的最大公因子为{i}")
break
if flag:
print(f"{num}是质数")
count = 0
total = 0
for i in range(2, 1001):
flag = True
for j in range(2, i):
if i % j == 0:
flag = False
break
if flag:
total += i
count += 1
print(total / count)
# 结果
# 453.13690476190476
count = 0
for i in range(1000, 1, -1):
flag = True # 注意每个数都要重新判断是否是质数
for j in range(2, i): # 一千个数有一千个Flag,即每个数都使用自己的flag
if i % j == 0:
flag = False
break
if flag:
print(i)
count += 1
if count > 9:
break
# 结果
# 997
# 991
# 983
# 977
# 971
# 967
# 953
# 947
# 941
# 937
1、while循环的规则
2、实例
⑴、每次输入一个整数,求输了几次,前面所有整数的和大于100了。
# 方法一
count = 0
value = 0
while True:
count += 1
value += value1
value1 = float(input("请输入一个数:"))
if value >= 100:
print(f"需要{count}次")
break
# 方法二
count = 0
value = 0
while value <= 100:
num = float(input("请输入一个数:"))
count += 1
value += num
print(count)
⑵、随机生成一个5-10之间的整数,请问随机多少次,数字的累加和可以大于100。
count = 0
value = 0
while value <= 100:
num = random.randint(5, 10)
print(num)
count += 1
value += num
print(f"共需要{count}次")
⑶、使用while循环9*9乘法表。
i = 1
while i <= 9:
j = 1
while j <= i:
print(f"{j}*{i}={j*i}", end="\t")
j += 1
i += 1
print()
⑷、漏斗
# 漏斗
i = 0
while i < 9:
j = 0
while j < 9:
if i >= j and i + j >= 8 or i <= j and i + j <= 8:
print(" * ", end=" ")
else:
print(" ", end=" ")
j += 1
print()
i += 1
⑸、用while判断一个数是否是质数。
m = int(input("请输入一个数"))
flag = True
n = 2
while n < m:
if m % n == 0:
flag = False
print(f"{m}不为质数")
break
n += 1
if flag:
print(f"{m}为质数")
1、实例
⑴、1000以内最大的10个质数 使用while。
count = 0
i = 1000
while i <= 1000: # 或者 i>1
j = 2
while j in range(2, i): # 或者 while j < i:
if i % j == 0:
break
j += 1
else:
count += 1
print(i)
if count == 10:
break
i -= 1
# 结果
# 997
# 991
# 983
# 977
# 971
# 967
# 953
# 947
# 941
# 937
⑵、用while判断1000以内质数的个数 。
i = 2
count = 0
while i <= 1000:
flag = True
n = 2
while n < i:
if i % n == 0:
flag = False
break
n += 1
if flag:
count += 1
print(f"{i}为质数")
i += 1
print(f"1000以内的质数个数为{count}个")
# 方法一
value = int(input("请输入一个数:"))
flag = True
i = 2
while i < value:
i += 1
if value % i == 0:
flag = False
print(f"{value}不是质数")
break
if flag:
print(f"{value}是质数")
# 方法二
value = int(input("请输入一个数:"))
i = 2
while i < value:
if value % i == 0:
print(f"{value}不是质数")
break
i += 1
else:
print(f"{value}是质数")
# 方法三
value = int(input("请输入一个数:"))
for i in range(2, value):
if value % i == 0:
print(f"{value}不是质数")
break
else:
print(f"{value}是质数")
count = 0
i = 1000
while i <= 1000: # 或者 i>1
j = 2
while j in range(2, i): # 或者 while j < i:
if i % j == 0:
break
j += 1
else:
count += 1
print(i)
if count == 10:
break
i -= 1
# 结果
# 997
# 991
# 983
# 977
# 971
# 967
# 953
# 947
# 941
# 937
count = 0
for i in range(2, 1001):
for j in range(2, i):
if i % j == 0:
break
else:
print(i)
count += 1
if count == 10:
break