Python 改错题 + 答案 10道 ( 逻辑+语法错误 )题目改错难度适中

1.水仙花数

水仙花数是指一个 3 位数,它的每个位上的数字的 3 次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153

错误代码:

for i in range(100, 1000):
    i1 = i // 100
    i2 = i // 10 % 10
    i3 = i % 10

    if i1 ** 3 + i2 ** 3 + i3 ** 3 != i:
        print(f"{i}是水仙花数")
for i in range(100, 1000):
    i1 = i // 100
    i2 = i // 10 % 10
    i3 = i % 10

    if str(i1 ** 3 + i2 ** 3 + i3 ** 3) == i:
        print(f"{i}是水仙花数")

错误点:

代码1.判断部分条件应该是==

代码2.字符串不能和整数比较

正确代码:

for i in range(100, 1000):  
    i1 = i // 100       # 取百位数字 123//100=1  
    i2 = i // 10 % 10   # 取十位数字 123//10=12  12%10=2  
    i3 = i % 10         # 取个位数字 123%10=3  
  
    if i1 ** 3 + i2 ** 3 + i3 ** 3 == i:  
        print(f"{i}是水仙花数")  

2.逆序字符串

错误代码:

str = input("请输入字符串")
list = []
for x in range(len(str) - 1, -1, -1):
    list.append(str[x])
print(list.join(''))

错误点:

join使用错误:改为''.join(list)

正确代码:

str = input("请输入字符串")  
list = []  
for x in range(len(str) -1,-1,-1):  
    list.append(str[x])  
print(''.join(list))  

3.猜数字

随机生成一个 100 以内的整数,共有 10 次机会开始游戏,输入猜测的数字。

  • 如果猜小了,则提示:猜小了

  • 如果猜大了,则提示:猜大了

  • 猜对了,则提示:猜对了,并且结束游戏

  • 10 次机会用完还没猜对,提示:游戏结束,没有猜到。

错误代码:

import random as rd

number = rd.randint(0, 100)
fo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值