我只是搞乱基本的python程序。在这里,我正在尝试制作一个字节转换器。我想我处在一个无限循环中。有人可以举几个例子说明我的原因吗?我是一个非常初学的程序员。任何输入都有帮助!
def bytesConverter():
a = input("1 = KB, 2 = MB, 3 = GB, 4 = TB:")
if a == 1:
b = input("amount of KB(s):")
c = b/1024.0
d = c/1024.0
e = d/1024.0
print(str(b) + str(" KBs"))
print(str(c) + str(" MBs"))
print(str(d) + str(" GBs"))
print(str(e) + str(" TBs"))
elif a == 2:
b = input("amount of MB(s):")
c = b*1024.0
d = b/1024.0
e = d/1024.0
print(str(c) + str(" KBs"))
print(str(b) + str(" MBs"))
elif a == 3:
b = input("amount of GB(s):")
c = b*1024.0
d = c*1024.0
e = b/1024.0
print(str(d) + str(" KB(s)"))
print(str(c) + str(" MB(s)"))
print(str(b) + str(" GB(s)"))
elif a == 4:
b = input("amount of TB(s):")
e = b*1024.0
c = e*1024.0
d = c*1024.0
print(str(d) + str(" KB(s)"))
print(str(c) + str(" MB(s)"))
print(str(e) + str(" GB(s)"))
print(str(b) + str(" TB(s)"))
答案 0 :(得分:0)
你不是一个无限循环。没有循环,你没有使用递归。
根据print
的语法判断,我相信您使用的是Python 3.x.如果是这样,那么你应该知道input
总是返回一个字符串对象。
这意味着这一行:
a = input("1 = KB, 2 = MB, 3 = GB, 4 = TB:")
将a
分配给字符串。
此外,你的if语句正在将该字符串与整数进行比较,而这些整数从不起作用。
要解决此问题,请将输入设为整数:
a = int(input("1 = KB, 2 = MB, 3 = GB, 4 = TB:"))
或将该字符串与其他字符串进行比较:
if a == '1':
...
elif a == '2':
...
elif a == '3':
...
elif a == '4':
...
此外,您还需要做两件事:
将其他输入转换为整数,以便对它们进行数学运算。
调用该函数(我假设您已经这样做了,但我会提及它,因为您没有包含该行)。
最后,没有理由在字符串上调用str
。一切都是这样的:
str(" KBs")
可以/应该改写为:
" KBs"