问题描述
我正在制作一个仍处于开发阶段的简单计算器。我还想制作一个音频版本。当然,音频版本要复杂得多,这就是我遇到的大多数问题的地方。如果答案是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))
。