两道python练习题后的一点总结——关于'\n'与‘’在格式控制上要注意

第一题

描述

输入一个数字n作为合格标准,然后,输入一系列的数字,每次输入换行表示,空换行结束,输出合格率。
合格率指输入元素中合格元素与全部元素的比值。


输入输出示例

  1. 示例1 60(enter)50(enter)75(enter)90 (这里有一个换行 ) 合格率为66.67%
  2. 示例2 75(enter)65(enter)70(enter)90 (这里有一个换行 ) 合格率为33.33%

我的代码:

k=eval(input())
cnt1=0
cnt2=0
for i in range(100):
    t=input()
    if t!='':
    #起初这里我用了'\n',会出现错误,要注意。
        t=eval(t)
        cnt1+=1
        if t>=k:
            cnt2+=1
    else:
        break
if cnt1==0:
    print("合格率为100.00%")
else:
    s=100*cnt2/cnt1
    print("合格率为{:.2f}%".format(s))

网上参考代码:

n=eval(input())
List=[]
i=input()
while i !='':
    List.append(eval(i))
    i=input()
sum_up=0
for i in List:
    if i>=n:
        sum_up+=1
if len(List)==0:
    print("合格率为100.00%")
else:
    x=100*(sum_up/len(List))
    print("合格率为:{:.2f}%".format(x))
    #一点总结:掌握用list的新的解题思路。

第二题

描述

四叶玫瑰数是4位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。(例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数,3位数的自幂数被称为水仙花数)

输入输出格式

没有输入。
输出:
1111
2222
3333

我的代码

for k in range(1000,10000):
    k1=int(k%10)
    k2=int((k%100-k1)/10)
    k4=int(k/1000)
    k3=int(k/100-10*k4)    #注意要用int()函数转换格式否则会出现错误!
    if k1**4+k2**4+k3**4+k4**4==k:
        print("{}".format(k))
        #起初上面这一行我写作 print("{}\n".format(k)),随后由于格式问题未通过检查

总结

注意”与‘\n’的泣别引发的格式控制问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值