Python循环经典练习题10例
前⾔
循环这⼀章节主要考察学员的逻辑思维能⼒,数学能⼒,所以如果这块弱的学员可以多些练习题练习。【例1】:有1、2、3、4个数字,能组成多少个互不相同且⽆重复数字的三位数?都是多少?
1.程序分析:可填在百位、⼗位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满⾜条件的排列。
2.程序源代码:
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if( i != k ) and (i != j) and (j !=k):
java socket 客户端print(i,j,k)
【例2】:企业发放的奖⾦根据利润提成。利润(I)低于或等于10万元时,奖⾦可提10%;利润⾼
于10万元,低于20万元时,低于10万元的部分按10%提成,⾼于10万元的部分,可可提
成7.5%;20万到40万之间时,⾼于20万元的部分,可提成5%;40万到60万之间时⾼于
40万元的部分,可提成3%;60万到100万之间时,⾼于60万元的部分,可提成1.5%,⾼于
100万元时,超过100万元的部分按1%提成,从键盘输⼊当⽉利润I,求应发放奖⾦总数?
1.程序分析:请利⽤数轴来分界,定位。注意定义时需把奖⾦定义成长整型。
python基础代码练习2.程序源代码:
bonus1 = 100000 * 0.1
bonus2 = bonus1 + 100000 * 0.500075
bonus4 = bonus2 + 200000 * 0.5
bonus6 = bonus4 + 200000 * 0.3
bonus10 = bonus6 + 400000 * 0.15
i = int(raw_input('input gain:\n'))
if i <= 100000:
bonus = i * 0.1
elif i <= 200000:
bonus = bonus1 + (i - 100000) * 0.075
elif i <= 400000:
bonus = bonus2 + (i - 200000) * 0.05
elif i <= 600000:
bonus = bonus4 + (i - 400000) * 0.03
created的中文elif i <= 1000000:
bonus = bonus6 + (i - 600000) * 0.015
else:
bonus = bonus10 + (i - 1000000) * 0.01
print('bonus = ',bonus)
【例3】:古典问题:有⼀对兔⼦,从出⽣后第3个⽉起每个⽉都⽣⼀对兔⼦,⼩兔⼦长到第三个⽉后每个⽉⼜⽣⼀对兔⼦,假如兔⼦都不死,问每个⽉的兔⼦总数为多少?
1.程序分析: 兔⼦的规律为数列1,1,2,3,5,8,
2.程序源代码:
#每个⽉兔⼦的总数(按对算)
n = int(input("please input month:"))#输⼊⽉份
x = 0
y = 1 #初始⼀对
if n == 1:
print(y) #第⼀个⽉没宝宝
if n > 1:
for i in range(n-1):
m=x+y #f(n)=f(n-1)+f(n-2)
x,y=y,m #x=y y=m
print(m)
【例4】: 将⼀个正整数分解质因数。例如:输⼊90,打印出90=2*3*3*5。
1.程序分析:对n进⾏分解质因数,应先到⼀个最⼩的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并⽤n除以k的商,作为新的正整数你n,
重复执⾏第⼀步。
(3)如果n不能被k整除,则⽤k+1作为k的值,重复执⾏第⼀步。
2.程序源代码:
num = int(input("请输⼊要分解的数:"))
s = str(num) + "="
i = 2
while i <= num:
if num % i == 0:
if i == num:
s = s + str(i)
else:
s = s + str(i) + "*"
num = num // i
else:
i += 1
print(s)
【例5】:⼀个数如果恰好等于它的因⼦之和,这个数就称为“完数”。例如6=1+2+3.编程出1000以内的所有完数。
1.程序源代码:
# 这层for循环到该数的所有公因数
for j in range(2, 1001):
k = []
# n的作⽤是统计列表元素个数 n=len(k)-1
n = -1
s = j
for i in range(1, j):
if j % i == 0:
n += 1
s -= i
k.append(i)
# s==0时,刚好满⾜题⽬条件
if s == 0:
print(j)
# n=len(k)-1androidapp开发实例
for i in range(n):
print(str(k[i]),end="")构造函数和析构函数都可以为虚函数
print(' ',end="")
print(k[n])
【例6】:猴⼦吃桃问题:猴⼦第⼀天摘下若⼲个桃⼦,当即吃了⼀半,还不瘾,⼜多吃了⼀个,第⼆天早上⼜将剩下的桃⼦吃掉⼀半,⼜多吃了⼀个。以后每天早上都吃了前⼀天剩下的⼀半零⼀个。到第10天早上想再吃时,见只剩下⼀个桃⼦了。求第⼀天共摘了多少。
1.程序分析:采取逆向思维的⽅法,从后往前推断。
2.程序源代码:
x2 = 1
for day in range(9,0,-1):
x1 = (x2 + 1) * 2
x2 = x1
print(x1)
【例7】:⼀球从100⽶⾼度⾃由落下,每次落地后反跳回原⾼度的⼀半;再落下,求它在第10次落地时,共经过多少⽶?第10次反弹多⾼?
1.程序源代码:
Sn = 100.0
Hn = Sn / 2
for n in range(2, 11):
Sn += 2 * Hn
Hn /= 2
print('Total of road is %f' % Sn)
print('The tenth is %f meter' % Hn)
【例8】:打印出所有的“⽔仙花数”,所谓“⽔仙花数”是指⼀个三位数,其各位数字⽴⽅和等于该数本⾝。例如:153是⼀个“⽔仙花数”,因为153=1的三次⽅+5的三次⽅+3的三次⽅。
1.程序分析:利⽤for循环控制100-999个数,每个数分解出个位,⼗位,百位。
2.程序源代码:
for i in range(100,1000):
a = i//100
b= (i%100)//10
c=i%10
forceupdateif(i == a*a*a+b*b*b+c*c*c):
print(i)
【例9】:使⽤python完成菱形图形的输出
1.程序分析:详细见注释
2.程序源代码:
⽅法⼀:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论