内容正文:
《Python应用程序设计》
Python for循环结构(二)
计算机教科组
1
for循环经典例题
[例4].已知下列关系
1!=1
2!=1*2
3!=1*2*3
4!=1*2*3*4
...
请用while循环计算10!
j=1
for i in range(1,11):
j=j*i
print(j)
for循环经典例题
[例5]输入10个数,求出10个数中的最大值、最小值、平均值。
ls=[]
for i in range(1,11):
n=eval(input('请输入第'+str(i)+'个数'))
ls.append(n)
zd=max(ls) #最大值
zx=min(ls) #最小值
avg=sum(ls)/len(ls) #平均值
print('最大值为'+str(zd))
print('最小值为'+str(zx))
print('平均值为'+str(avg))
思考题:输入6个不一样的数,输出其中第几个数最小以及最小值。
for循环经典例题
[例6]任意输入一行字符串,将其倒序输出
方法一:
s=input('请输入一行字符串:')
t=''
for i in s:
t=i+t
print(t)
方法二:
s=input('请输入一行字符串:')
n=len(s)
r=''
for i in range(n-1,-1,-1):
r=r+s[i]
print(r)
for循环经典例题
[例7]输入一行字符,用for循环分别统计出其中英文字母、空格、数字和其他字符的个数。统计的数据存放到字典里。
s=input("请输入一行字符:")
zm=sz=kg=qt=0 #zm:字母的个数 sz:数字的个数 kg:空格的个数 qt:其他字符的个数
for i in s:
if i.isalpha(): # 实操需要加.encode('utf-8')
zm=zm+1
elif i.isdigit():
sz=sz+1
elif i.isspace():
kg=kg+1
else:
qt=qt+1
print({'字母的个数':zm,'数字的个数':sz,'空格的个数':kg,'其他字符的个数':qt})
for循环经典例题
[例8]用for循环编写程序,找出7的倍数中十位数为2的所有3位数
for i in range(100,1000):
if i%7==0 and str(i)[1]=='2':
print(i)
for循环经典例题
[例9]水仙花数是指一个 3 位数,它的每个位上的数字的3次幂之和等于它本身。例如:153是一个"水仙花数",因为153=13+53+33。请用for循环找出所有的水仙花数。
方法一:找出三位数的个位、十位、百位
for i in range(100,1000):
g = i % 10 # 个位数
s = i // 10 % 10 # 十位数
b = i // 100 # 百位数
if i == g ** 3 + s ** 3 + b ** 3:
print(i)
【注意】一个三位数用i表示,不理解就背诵下来★
其个位数为: i % 10
其十位数为: i // 10 % 10
其百位数为: i // 100
for循环经典例题
[例9]水仙花数是指一个 3 位数,它的每个位上的数字的3次幂之和等于它本身。例如:153是一个"水仙花数",因为153=13+53+33。请用for循环找出所有的水仙花数。
方法二:字符串截取处三位数的个位、十位、百位
for i in range(100,1000):
x=str(i) #将i转成字符串
g = int(x[2]) #通过索引2取出个位数,得到的是字符串,还需要再转成整数
s = int(x[1]) #通过索引1取出十位数,得到的是字符串,还需要再转成整数
b = int(x[0]) #通过索引0取出百位数,得到的是字符串,还需要再转成整数
if i == g ** 3 + s ** 3 + b ** 3:
print(i)
for循环经典例题
例10.编程求2+22+222+...+(n的值由用户从键盘输入,最后一项是n个2)
s=0
n=int(input("请输入2的个数:"))
for i in range(1,n+1):
s=s+int('2'*i)
print(s)
请思