一篇更新五题Python基础入门题,包括分析易错点!!!
例题06
题目:编写一个程序,根据给定公式计算并打印数值:Q=[(2 cd)/H]的平方根,以下是C和H的固定值:C是50。H是30。D是一个变量,其值应以逗号分隔的顺序输入到程序中。例如:让我们假设以下逗号分隔的输入序列被提供给程序:100,150,180
易错分析:要求平方根,我们要运用到math库,使用math.sqrt( ),在进行append时要注意后面为字符串的类型,要设置成str( ),用.join把词都添加到列表里。
import math
c=50
h=30
item=[x for x in input('请输入以逗号分隔的序列:').split(',')]
value=[]
for i in item:
value.append(str(int(round(math.sqrt(2*c*float(i)/h)))))
print(','.join(value))
例题07
题目:编写一个程序,以2位数字x,y作为输入,生成一个二维数组。数组第i行和第j列中的元素值应为i*j。
注:i=0,1.....x-1;j=0,1…y-1。假设向程序提供以下输入:3,5。然后,程序的输出应为:
[[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8]]
易错分析:map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
x,y = map(int,input('请输入数字:').split(','))
li = []
for i in range(x):
tmp = []
for j in range(y):
tmp.append(i*j)
li.append(tmp)
print(li)
例题08
题目:编写一个程序,接受逗号分隔的单词序列作为输入,并在按字母顺序排序后按逗号分隔的顺序打印单词。假设向程序提供了以下输入:without,hello,bag,world。输出结果为:bag,hello,without,world
s = input('请输入单词序列:').split(',')
s.sort()
print(','.join(s))
例题09
题目: 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
易错分析: 将每一对因子加进集合,在这个过程中已自动去重。最后的结果要求不计算其本身。添加集合要用n.add()。
def f1(num):
m=int(num)
n=set()
for j in range(1,num):
if m%j == 0:
n.add(j)
n.add(num/j)
return n
for i in range(2,1001):
if i==sum(f1(i))-i:
print(i)
例题10
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
易错分析:题目问第十次落地,所以只要循环到第十次就好,每次循环计算出总长。
high=200.
total=100
for i in range(10):
high/=2
total+=high
print(high/2)
print('总长:',total)