Python练习题1
例1 输入三个整数x,y,z,请把这三个数由小到大输出
#输入三个整数x,y,z,请把这三个数由小到大输出
my_list = []
for i in range(3):
x = int(input('input:'))
my_list.append(x)
print(my_list)
优化如下:
my_list = []
for i in range(3):
x = int(input('input:'))
my_list.append(x)
my_list.sort(reverse = True)
print(my_list)
my_list.sort(reverse = False)
print(my_list)
运行效果:
例 6 水仙花数
打印所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该本身。例如:153是一个“水仙花数”,因为153=1的三次方+3的三次方。
for x in range(1,100):
for y in range(0,10):
for z in range(0,10):
s1 = x*100+y*10+z
s2 =pow(x,3) +pow(y,3)+pow(z,3)
if s1 ==s2:
print(s1)
运行效果:
例7 输入一行字符,分别统计初其中的英文字母、空格、数字和其它字符的个数
s =input('input')
letters = 0
space =0
digit = 0
others =0
for c in s:
if c.isalpha():
letters +=1
elif c.isspace():
space +=1
elif c.isdigit():
digit+=1
else:
others +=1
print('char = %d,space = %d,digit = %d,others=%d' % (letters,space,digit,others))
运行效果:
例8 一球从100米高度自由落下,每次落地后反弹回原高度的一半;再落下,求它再第10次落地时,共经过多少米?第10次反弹高度
h = 100 #总高度
time = 10 #次数
height = [] #反弹高度
for i in range(2,time+1):
h/=2
height.append(h)
print(min(height)/2)
print(sum(height)*2 +100)
运行效果: