Python 替换字符串中以3和7结尾的数字
编写一个程序,生成并打印包含自然数(从1开始)的n个元素(由用户通知)的列表,并将3的倍数替换为“ping”,将7的倍数替换为“pong”,将3和7的倍数替换为“ping-pong” 这是代码Python 替换字符串中以3和7结尾的数字,python,Python,编写一个程序,生成并打印包含自然数(从1开始)的n个元素(由用户通知)的列表,并将3的倍数替换为“ping”,将7的倍数替换为“pong”,将3和7的倍数替换为“ping-pong” 这是代码 result = [] number = eval(input("Enter a whole number: ")) for index in range(number): if index % 7 == 0 and index % 3 == 0: result.append("p
result = []
number = eval(input("Enter a whole number: "))
for index in range(number):
if index % 7 == 0 and index % 3 == 0:
result.append("ping-pong")
elif index % 3 == 0:
result.append("ping")
elif index % 7 == 0:
result.append("pong")
else:
result.append(index)
print(result) == 0
现在还将以3结尾的数字替换为“PING”,以7结尾的数字替换为“PONG”。我不知道该怎么做。我试图让您的代码实现您想要的功能,同时对其进行尽可能少的修改
- 不要使用
。曾经坏,坏,坏eval
。要将字符串转换为int,请使用eval
int()
- 您的代码从0开始,但有人要求它从1开始,我 改变了射程
- 为了知道最后一个数字,我根据@Renuka Deshmukh的巧妙注释计算了模10的数字。其他不太聪明的解决方案可能是检查作为字符串铸造的数字的结尾,例如使用
或str(index).endswith(“7”)
str(index)[-1]==“7”
- 您的
试图做什么?我删除了打印(结果)==0
==0
result = []
number = int(input("Enter a whole number: "))
for index in range(1,number+1):
if index % 7 == 0 and index % 3 == 0:
result.append("ping-pong")
elif index % 3 == 0 or index % 10 == 3:
result.append("ping")
elif index % 7 == 0 or index % 10 == 7:
result.append("pong")
else:
result.append(index)
print(result)
您确实不应该使用
eval
解析为整数;改为使用int
函数(int(输入('输入一个整数:'))
)使用eval
令人困惑,为什么要准确使用?@SSj.Luffy强制将数字计算为int
。然而,永远不应该这样做<应始终避免使用代码>评估。只需转换为int
而不是=>int(input())
将输入转换为字符串并获取最后一个索引,根据7和3进行测试。为什么不在生成输出时打印输出,而不是尝试附加到结果中?与其将数字转换为字符串,不如尝试索引%10==3和索引%10==7。不需要转换为字符串。完全正确。我太习惯暴力了,我甚至连基础数学都不会。