我对编程比较陌生,但熟悉python的基本概念。我的问题是: 我做了一个程序,它接受2个输入,检查它们的长度是否小于8位,并且只包含1和0。一旦它接收到并验证了它的2个二进制输入,它就把它们都转换成二元数,并将它们相加得到总数。一旦计算出总数,它会将其转换回二进制并显示出来。 我有所有的计算和输出工作,但第一位是造成我的麻烦。我想把所有输入的验证放入一个循环中,这样当条件不满足时,它将继续请求输入,并且不允许接受任何不以8位二进制形式存在的输入。 我已经尝试了很多天了,最后决定向这里的专家寻求帮助:P希望有人能帮助我,我将非常感谢进一步了解循环。谢谢,这是我当前的代码:)
valid = 0
while valid == 0 or correctcharacter == 0:
firstnumber = input("First number is...")
valid = 1
correctcharacter = 0
while correctcharacter == 0:
correctcharacter = 1
for number in firstnumber:
if number != "0" and number != "1":
valid = 0
correctcharacter = 0
if len(firstnumber) > 8:
valid = 0
#_________________________________________________________________________________________________________
valid = 0
while valid == 0:
secondnumber = input("Second number is...")
valid = 1
correctcharacter = 0
while correctcharacter == 0:
correctcharacter = 1
for number in secondnumber:
if number != "0" and number != "1":
valid = 0
correctcharacter = 0
if len(secondnumber) > 8:
valid = 0
#_________________________________________________________________________________________________________
multiple = 1
final1 = 0
for number in firstnumber[::-1]:
final1 = final1 + int(number) * multiple
multiple = multiple * 2
multiple = 1
final2 = 0
for number in secondnumber[::-1]:
final2 = final2 + int(number) * multiple
multiple = multiple * 2
#_________________________________________________________________________________________________________
total = final1 + final2
number = total
output = str()
while number > 0:
output = str(number % 2) + output
number = int(number / 2)
print("")
print("The total of {} and {} is {}.".format(firstnumber, secondnumber, output))
如果其他人需要帮助,我就这样解决了我的问题: http://docs.python.org/2/library/re.html
相关问题 更多 >
编程相关推荐