逆袭的小李 发表于 2021-3-1 22:50:50

小白求解

while True:
    i = input("请输入一个整数(输入Q停止程序):")
    if i != "Q":
      i = int(i)
      y = "%#x" % i
      print("十进制 -> 十六进制:", i , "->" ,y)
      x = "%#o" % i
      print("十进制 -> 十六进制:", i , "->" ,x)
      c = bin(i)
      print("十进制 -> 二进制:", i ,"->" ,c)
    else:
      q = False

为什么 写完之后 输入 Q   停不下来 输入小的q 会报错求大神给改进下而且感觉 还是脑子好笨转不过来弯看了答案才知道自己写的好麻烦

atai0622 发表于 2021-3-1 22:58:23

因为你的循环条件是while True啊,一直为真,肯定会永远循环下去

atai0622 发表于 2021-3-1 23:00:51

要不你就把while Ture改成while q。在循环外面加上q=True,这样下面的判断else把q改为false之后,while就可以停下来了

qq1151985918 发表于 2021-3-1 23:02:31

把q = False 改成 break 就OK了

atai0622 发表于 2021-3-1 23:03:12

还有,你提到的输入小写q会报错,是因为q满足了i !='Q'的条件,进入下一条i = int(i)的时候,int('q')没法转化为整型数,就报错了

atai0622 发表于 2021-3-1 23:04:46

本帖最后由 atai0622 于 2021-3-1 23:07 编辑

分享一下我写的{:5_109:}temp = input('请输入一个整数(输入Q结束程序):')
while temp!='Q' :
    if not temp.isdigit():
      print('输入有误!')
      temp = input('请重新输入一个整数(输入Q结束程序):')
    else:
      num=int(temp)
      print('十进制 -> 十六进制 :{} -> {}'.format(num,hex(num)))
      print('十进制 -> 八进制 :{} -> {}'.format(num,oct(num)))
      print('十进制 -> 二进制 :{} -> {}'.format(num,bin(num)))
      temp = input('请输入一个整数(输入Q结束程序):')

笨鸟学飞 发表于 2021-3-2 17:33:39

while True:
    i = input("请输入一个整数(输入Q停止程序):")
    if i in "Q,q":
      break
    else:
      i = int(i)
      print("十进制 -> 十六进制:", i, "->", "%#x" % i)
      print("十进制 -> 八进制:", i, "->", "%#o" % i)
      print("十进制 -> 二进制:", i, "->", bin(i))

Q大小写都行,so easy

傻眼貓咪 发表于 2021-9-5 21:40:51

while True:
    num = input('輸入一個整數或輸入 q 結束程序:')
    if num.lower() == 'q':
      print('程序結束')
      break
    try:
      num = int(num)
      print(f'十进制 -> 十六进制 :{num} -> {hex(num)}\n十进制 -> 八进制 :{num} -> {oct(num)}\n十进制 -> 二进制 :{num} -> {bin(num)}')
      continue
    except:
      print('輸入有誤!請', end = '')
      continue
页: [1]
查看完整版本: 小白求解