python 中的循环有两种 :for循环和while循环
1.for循环
for 变量 in 序列:
循环体
说明:
a.for/in 关键字,固定写法
b.变量 任意变量,一般写一个新的变量名
c.序列 python中容器型数据类型,例如;字符串、列表、元组、集合、迭代器、生成器、range等
D.冒号 : 固定写法
e.循环体 和for保持一个缩进的一条或者多条语句:
循环体就是需要重复执行的代码块
执行过程:
让变量去序列中取值,一个一个取,取完为止:每取一个值执行一次循环体。
(for循环的次数卡序列中元素的个数)
while 循环的用法
while True:
需要重复执行的操作
if 循环结束的条件:
break
# 执行5次'hello'
for i in 'abcde':
print(i, 'hello')
# range(N) 产生一个 0 ~ N-1 的数字序列:0,1,2,3,...,N-1
# range(x,y) 产生一个 x ~ y-1 的数字序列:x,x+1,x+2,...,y-1
# (x,y都是整数,x < y)
# 打印10次‘hello’
for i in range(0, 10):
print(i, 'hello')
# range(x,y,step) step(步长),控制每次增加的值,默认是1
for i in range(0, 10, 3):
print(i, 'hello') # '3 hello' "6 hello"'9 hello'
# 产生100到1所有的数字对应的数列
for i in range(100, 0, -1):
print(i)
for i in range(-100, 0):
print(-i)
# 求1+2+3~+100的和
sum = 0
for i in range(0, 101):
sum += i
print(sum)
# 统计0~100中能被3整除的偶数的个数
# 方法一
count = 0
for i in range(0, 101, 3):
if i % 2 == 0:
count += 1
print(count)
# 方法二
count = 0
for i in range(0, 101, 6):
count += 1
print(count)
# 练习1:求1000以内能被7整除但是不能被3整除的数的和
sum = 0
for i in range(0, 1000, 7):
if i % 3 != 0:
sum += i
print(sum)
# 练习2:统计1000以内十位数加上个位数的和等于5的数的个数
sum1 = 0
for i in range(0, 1000):
if (i % 100 // 10) + (i % 10) == 5:
sum1 += 1
print(sum1)
sum = 1
while sum != '0':
sum = input('请输入: ')
print('循环结束')
# 九九乘法表
b=0
for x in range(1, 10):
for y in range(1, x+1):
print(y, '*', x, '=', x * y,end=" ",sep='')
b+=1
print('\n',b, sep=" ")
while循环
语法:
while 条件语句:
循环体
说明:
while - 关键字;固定写法
条件语句 -除了赋值语句外的任意有结果的表达式
冒号 : -固定写法
循环体 -和while 保持一个缩进的一条或者多条语句
循环体就是需要重复执行的代码
执行过程:
先判断条件语句是否为 True ,为 True 就执行循环体,
执行完循环体再判断条件语句… …
直到判断条件语句的结果为False 整个循环体就结束
for循环和while的选择
用for循环:
遍历序列(将序列中的元素一个一个取出来)
循环次数确定
用while循环:
死循环
循环次数不确定
continue和break只能在循环体中使用
continue 结束一次循环
如果在执行循环体的时候遇到了continue,那么当次循环借宿直接进入下次循环
break 结束整个循环
如果执行循环体的时候遇到了break,那么整个循环结束
‘’’
continue的使用(跳过当前循环执行下一条)
randint (m,n) 产生一个m~n的随机整数
随机产生一个0-100的数字:num,用户不断输入数字直到输入的值和产生的
随机数相等游戏就结束
count = 0
for i in range(10):
if i % 3 == 0:
continue
count += 1
print(count)
print('欢迎来到猜数字游戏....................')
num = randint(0, 100)
a=0
while True:
a+=1
num1 = int(input('请输入一个10以内的整数:'))
print('第',a,"次")
if num == num1:
print('恭喜恭喜猜对了也没有奖励')
break
elif num1 < num:
print('猜小了')
else:
print('猜大了')
print("游戏结束")
根据输入的成绩的范围打印及格
或者不及格
。
grade = int(input('请输入你的成绩: '))
if grade < 60:
print("爪巴爪巴,不及格")
else:
print('及格')
根据输入的年纪范围打印成年
或者未成年
,如果年龄不在正常范围内(0~150)打印这不是人!
。
age = int(input('请输入你的年龄: '))
if 0 <= age < 18:
print("爪巴爪巴,未成年!")
elif 18 <= age <= 150:
print('成年了!')
else:
print('老妖怪')
输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数
。
a=int(input('请输入整数: '))
b=int(input('请输入整数: '))
if (a-b) & 1 :
print(a-b,'是奇数')
else:
print("结果不是奇数")
使用while循环输出 0~100内所有3的倍数。
num = 100
while num >= 0:
if num % 3 == 0:
print(num)
num -= 1
使用while循环输出0~100内所有的偶数。
num = 100
while num > 0:
if not(num & 1):
print(num,'是偶数')
num -= 1
使用循环计算1*2*3*4*...*10
的结果。
count=1
for i in range(1,11):
count *= i
print(count)
统计100以内个位数是2并且能够被3整除的数的个数。
sum=0
for i in range (0,101,3):
if i % 10 == 2:
sum+=1
print(sum,i)
输入任意一个正整数,求他是几位数?
注意: 这儿不能使用字符串,只能用循环
sum = int(input("请输入一个正整数: "))
a=0
whlie True:
if sum //(10**a) != 0:
a+=1
else:
break
print(a)
num = int(input("请输入一个正整数: "))
a=0
while True:
num //= 0
a+=1
if num==0:
break
print(a)
打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。例如:153是
⼀个⽔仙花数,因为 1³ + 5³ + 3³
等于 153。
for i in range(100,1000):
if (i // 100)**3+(i%100//10)**3+(i%10)**3==i:
print("水仙花数是:",i)
num= int(input("请输入一个数:"))
if num != 0:
for i in range(2,int(num**0.5)+1):
if num % i==0:
print("不是质数")
break
else:
print('是质数')
else:
print('不是质数')
num = int(input("请输入一个数:"))
a1 = 1
a2 = 1
for i in range(1,num):
a1, a2 = a2, a1+a2
print(a1)
输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
for i in range(1,10):
for j in range(1,i+1):
print(j,'*',i,'=',j*i,end=' ',sep='')
print('\n')
这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?(可以直接使用穷举法)
bd = 100
n = 0
m = 0
for big in range(0, 100 // 3 + 1):
n += 1
print('big第', n, '次循环')
for mid in range(0, 100 // 2 + 1 - big):
sm = 100 - big - mid
m += 1
print("mid第", m, "次循环")
if big * 3 + mid * 2 + sm * 0.5 == bd:
print('大马:', big, '中马:', mid, "小马:", sm)