一、for循环语句
for
循环用于遍历一个序列(如列表、字符串、元组、字典、集合等)或其他可迭代对象(如生成器)中的每一项。for
循环会依次取出序列中的每一项,并执行循环体内的代码。
for
循环的语法如下:
for 变量 in 可迭代对象:
循环体
基本语法
变量:用于存储从可迭代对象中取出的每一项。
可迭代对象:可以是列表、字符串、元组、字典、集合、生成器等。
循环体:是要重复执行的代码块,通常缩进表示。
注意: 被遍历的对象可以是任意序列也可以是一个区间范围。 只要被遍历对象没有遍历完,就可以一直循环遍历,直到遍历结束。
比如:遍历字符串
s="love you"
for i in s:
print(i)
临时变量的作用域:
因为python没有{}表示代码的域,所以从语法来说,临时变量在循环结束之后还是可以使用的,但是它可能会造成不可预知的错误。所以建议若想在循环结束后使用这个临时变量,就在循环前先定义一下
i = 0 # 事先定义、避免未定义的警告
s = "Gwyuuu"
for i in s:
print(i)
print(i * 3)
二、for循环中常用的两个函数
2.1len()函数
功能:返回一个序列[字符串、列表、元组等]的长度或者元素个数。
参数:序列[字符串、列表、元组等]
通常和range配合使用,用于序列中元素的计算。
2.2 range()函数
功能:返回一个整数序列
语法:range(起始值start, 终止值end, 步长值step)
注意:range返回的区间范围是 [start , end),也就是说不包含终值end
参数1,start默认是0,可以省略不写
参数2,end没有默认值,不可以省略
参数3,step默认值为1,可以省略不写
比如
range(0,-10,-2)
for i in range(0,-10,-2):
print(i)
range(0,30,5)
for i in range(0,30,5):
print(i)
大家也可以省略步长值step试试会有什么结果
三、练习
输入一个数,输出这个数的所有因子
num = int(input("输入数字:"))
for i in range(1,int(num**0.5+1)):
if num % i == 0:
print(f"{i,num//i}",end=" ")
输入一个数,判断这个数是不是质数
num = int(input("输入数字:"))
flags = 1
for i in range(2,int(num**0.5+1)+1):
if num % i == 0:
flags = 0
if flags:
print(f"{num}是质数")
输出100以内的所有质数
for i in range(2,101):
flag = True
for j in range(2,i):
if i%j ==0:
flag = False
if flag:
print(i)
编程求 2000 以内的所有“完数”。 完数是指一个数恰好等于它的真因子值之和, 例如:6是完数,因为 6=1+2+3。
for i in range(0,2001):
sum = 0
for j in range(1,i):
if (i % j) == 0:
sum += j
if sum == i:
print(f"{i}",end=" ")
百钱买百鸡是一个很经典的问题,请使用穷举法求出,用一百块钱买一百只鸡, 共有哪几种买法(公鸡5块钱一只,母鸡3块钱一只,小鸡1块钱三只)
for i in range(20):
for j in range(33):
if 5*i+3*j+(100-i-j)//3 == 100 :
if (100-i-j)%3 == 0:
print(f"公鸡{i}只,母鸡{j}只,小鸡{100-i-j}只")
已知一串5位数的密码,满足a开头,取值范围是1-9,其他4位由b c d e代替 取值范围是0-9。密码要满足下面两个条件: ①abcde * a == eeeeee ②a b c d e互不相等
for a in range(1,10):
for b in range(10):
for c in range(10):
for d in range(10):
for e in range(10):
if a!=b!=c!=d!=e and a*(a*10000+b*1000+c*100+d*10+e) == 111111*e:
print(a,b,c,d,e)
四、循环语句while
循环语句就是重复的反复的执行某一部分代码。
循环语句必须有指定的结束条件,否则会陷入死循环。
循环邮局有两种控制方式:
1》条件控制 :比如景区检票员检票,买十斤苹果装苹果
2》计数控制 :比如买5个苹果装苹果,三次密码验证
语法格式:
while 表达式:
执行语句
执行逻辑:
判断表达式为True,执行语句,执行完之后再次判断表达式为True,执行语句
……………………
直到判断表达式为False,结束循环
while嵌套
while 表达式1:
while 表达式1-1:
执行语句1-1
执行语句1
五、练习:
1.三次密码验证
count = 0
while True:
name = input("请输入用户名")
pwd = input("请输入密码")
if name == "admin" and pwd == "gwy666":
print("登录成功")
break
else:
print("错 重来")
if count == 3:
print("你没有机会了")
break
2.输出0到100之间所有能被3或5整除的数
i = 0
while i<=100:
if i%3==0 or i%5==0:
print(i,end='')
i += 1
3.从键盘输入起始值为a,终止值为b,计算a到b之间能被3整除的偶数之和
a=int(input("请输入a:"))
b=int(input("请1输入b:"))
i = a
sum=0
while i<=b:
if i%3==0 and i%2==0:
sum=sum+i
i=i+1
print(sum)
打印九九乘法表
while row<=9:
col = 1
while col<=row:
print(f"{col}*{row}={row*col:<2}",end="\t")
col += 1
print()
row += 1
打印如下三角形
while i<n:
j = 1
while j<i:
print("*",end=" ")
j += 1
i += 1
print()