Python 我如何使infite循环询问用户是否要输入另一个数字?

Python 我如何使infite循环询问用户是否要输入另一个数字?,python,Python,如何生成代码询问用户是否要输入其他号码?我几乎不能让我的代码不出错地运行,我是python的一个蹒跚学步的孩子。我费了很大劲才写出下面的代码。我知道stackoverflow不是一个代码编写服务。但是我的小脑袋现在疼了,没有帮助我无法继续。我想简单地说“你想转换另一个数字吗?” 导入数学 #全球定义 #基数=[0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F] Base=[str(x)表示范围(10)内的x]+[chr(x)表示范围内的x(ord('A'),ord('A')+6)]

如何生成代码询问用户是否要输入其他号码?我几乎不能让我的代码不出错地运行,我是python的一个蹒跚学步的孩子。我费了很大劲才写出下面的代码。我知道stackoverflow不是一个代码编写服务。但是我的小脑袋现在疼了,没有帮助我无法继续。我想简单地说“你想转换另一个数字吗?”

导入数学
#全球定义
#基数=[0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F]
Base=[str(x)表示范围(10)内的x]+[chr(x)表示范围内的x(ord('A'),ord('A')+6)]
h=[str(i)表示范围(10)内的i]+[“A”、“B”、“C”、“D”、“E”、“F”]
def BIN2DEC(字符串数量):
num=string\u num
如果num==0:
返回“0”
bin_str=''
当num>0时:
bin_str=str(数量%2)+bin_str
num=num/2
返回本努街
def HEX2DEC(字符串数量):
返回str(int(string_num.upper(),16))
#十二月二日
#十进制到二进制
def dec2bin(字符串数量):
num=int(字符串\u num)
mid=[]
尽管如此:
如果num==0:break
num,rem=divmod(num,2)
mid.append(基[rem])
返回“”。join([str(x)在mid[:-1]]中表示x)
#十二进制
#十进制到十六进制
def DEC2HEX(编号):
n=长(数字,16)
如果(n<0):
打印(0)
elif(n 0:
idx-=1
如果s%2==1:digital_lst[idx]='1'
s=s/2
返回“”。加入(数字)
#Bin2hex
#二进制到十六进制
def BIN2HEX(字符串数量):
返回DEC2HEX(BIN2DEC(string_num))
my_num=0
my_num=原始输入(“插入二进制、十进制或十六进制:”)
而(my_num!=0):
如果我的数量[0:2]=“0x”或我的数量[0]=“x”:
打印HEX2BIN(我的编号)
打印HEX2DEC(我的编号)
打破
elif my_num[0:2]=“0b”或my_num[0]=“b”和全部(对于my_num中的x,“01”中的x):
打印“”
打印BIN2HEX(我的编号)
打印BIN2DEC(我的编号)
打破
其他:
打印12个字节(我的编号)
打印HEX2BIN(我的编号)
打印长度(my_num)
打破
my_num=0
my_num=原始输入(“:”)
这是我个人最喜欢的方式

iter
生成迭代器(您需要查找)


它需要一个可选的无参数函数,它将不断调用,直到收到第二个参数

如果他是一个新用户,也许可以解释一下你的答案?我怀疑一个新用户会立即得到迭代器和lambda。这是一个很好的解决方案,但他永远不会知道它在做什么,只要看看itrol我不是在一个非常明确的m中ood:P但我添加了一点:P尝试缩进脚本的最后两行,以便它们在
while
循环中。它不会特别说“是否继续”,但用户可以无限期地输入更多数字。顺便说一句,
my_num[0:2]==“0b”或my_num[0]==“b”和所有(x在“01”中表示my_num中的x)
将永远不会计算为True,因为“字符串以“b”开头”和“字符串仅包含0或1”是互斥的。
import math
# Global definition 
#Base = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F] 

Base = [str (x) for x in range (10)] + [chr (x) for x in range (ord ('A'), ord ('A') +6)] 
h=[str(i) for i in range(10)]+["A","B","C","D","E","F"]


def BIN2DEC (string_num):
    num = string_num
    if num == 0:
        return '0'
    bin_str = ''
    while num > 0:
        bin_str = str(num % 2) + bin_str
        num = num / 2
    return bin_str



def HEX2DEC (string_num): 
    return str (int (string_num.upper (), 16)) 

# Dec2bin 
# Decimal to binary 

def dec2bin (string_num): 

    num = int (string_num) 
    mid = [] 
    while True: 
            if num == 0: break 
            num, rem = divmod (num, 2) 
            mid.append (Base [rem]) 

    return''. join ([str (x) for x in mid [:: -1]]) 

# Dec2hex 
# Decimal to hexadecimal 

def DEC2HEX (number):
    n = long(number ,16)
    if (n < 0):
        print(0)
    elif (n<=1):
        print n,
    else:
        DEC2HEX( n / 16 )
        x =(n%16)
        if (x < 10):
            print(x), 
        if (x == 10):
            print("A"),
        if (x == 11):
            print("B"),
        if (x == 12):
            print("C"),
        if (x == 13):
            print("D"),
        if (x == 14):
            print("E"),
        if (x == 15):
            print ("F"),

# Hex2tobin 
#The  hexadecimal to bry 
def HEX2BIN (hex_string):
    s = int(hex_string, 16) 
    num_digits = int(math.ceil(math.log(s) / math.log(2)))
    digit_lst = ['0'] * num_digits
    idx = num_digits
    while s > 0:
        idx -= 1
        if s % 2 == 1: digit_lst[idx] = '1'
        s = s / 2
    return ''.join(digit_lst)

# Bin2hex 
# Binary to hexadecimal 

def BIN2HEX (string_num): 
    return DEC2HEX (BIN2DEC (string_num))

my_num = 0
my_num = raw_input("Insert binary,decimal or hexadecimal:")

while(my_num != 0):

    if my_num[0:2] == "0x" or my_num[0] == "x":
        print HEX2BIN(my_num)
        print HEX2DEC(my_num)
        break
    elif my_num[0:2] == "0b" or my_num[0] == "b" and all(x in "01" for x in my_num):
        print""
        print BIN2HEX(my_num)
        print BIN2DEC(my_num)
        break
    else:
        print dec2bin(my_num)
        print HEX2BIN(my_num)
        print long(my_num)
        break
my_num = 0
my_num = raw_input(":")
print list(iter(lambda:raw_input("Enter Value, or 'q' to quit:"),"q"))