如何解决代码不会在函数中运行elif语句
我正在制作一个仍处于开发阶段的简单计算器。我还想制作一个音频版本。当然,音频版本要复杂得多,这就是我遇到的大多数问题的地方。如果答案是1位数字,则此特定文件将运行我要播放的音频文件,但不是2位。因此,它将不会在answer_audio()函数内运行elif语句。因为我试图在其中使用打印功能,所以它不会运行整个elif语句,而且也不起作用
def answer_audio():
ans_split = str(answer).split()
amount = len(ans_split)
if amount == 1:
for x in range(10):
if x == int(ans_split[0]):
ps(f"Units/{x}.m4a")
elif amount == 2:
print("gaming")
for x in range(10):
if x == int(ans_split[0]):
if int(ans_split[0]) == 1:
for i in range(10):
if i == int(ans_split[1]):
ps(f"Teens/1{i}.m4a")
else:
ps(f"Tens/{x}.m4a")
if ans_split[1] != 0:
ps(f"Units/{ans_split[1]}.m4a")
这是实际的计算器位(您需要在字符之间插入空格,并且无论哪个数字,它都只能用于2个数字)
equation = input("Equation: ")
cal = equation.split()
if cal[1] == "x" or cal[1] == "X":
answer = (int(cal[0]) * int(cal[2]))
print(answer)
answer_audio()
elif cal[1] == "-":
answer = (int(cal[0]) - int(cal[2]))
print(answer)
elif cal[1] == "+":
answer = (int(cal[0]) + int(cal[2]))
print(answer)
elif cal[1] == "/":
answer = (int(cal[0]) / int(cal[2]))
print(answer)
解决方法
如果answer
是整数,则str(answer).split()
将与[str(answer)]
相同,因为没有任何参数的str.split()
将在空格上分开。
如果您想对数字进行计数,可以只使用len(str(answer))
,或者如果以后想要一些其他操作的数字列表,则可以传递str
(已经可以迭代)这样list()
:ans_split = list(str(answer))
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。