Python入门基础50题(易错点)(二)

一篇更新五题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)

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值