如何输出任何东西

时间:2017-03-15 12:52:42

标签: python

您好我写了一个程序,告诉我输入中是否有十六进制。

hexadecimal = ['0','1','2','3','4','5','6','7','8','9','a','A','b','B','c','C','d','D','e','E','f','F']
output = ''
for c in hexadecimal:
  digit = input('Digit: ')
  output += c.join(digit)
  if digit == '':
    print(output, 'is a valid hexadecimal string.')
    break
  elif digit not in hexadecimal:
    print(digit, 'is not a valid hexadecimal digit.')
    break

这个程序的完整代码有效,唯一的问题是当用户没有输入任何东西时我需要将它添加到我的代码中。

enter image description here

4 个答案:

答案 0 :(得分:1)

在将其附加到output之前使用另一个if语句:

if len(output) == 0 and len(digit) == 0:
    print("input is blank")

这会检查用户之前没有输入任何内容并且当前没有输入任何内容,如果两者都为真,则告诉他们输入为空白。

答案 1 :(得分:0)

修改您的if

if digit == '':
  if len(output)==0:
    print('The input was blank')
    break
  else:
    print(output, 'is a valid hexadecimal string.')
    break
elif digit not in hexadecimal:
  print(digit, 'is not a valid hexadecimal digit.')
  break

答案 2 :(得分:0)

这样做:

hexadecimal = ['0','1','2','3','4','5','6','7','8','9','a','A','b','B','c','C','d','D','e','E','f','F']
digit = input('Digit: ')

while digit is not '':
    if digit in hexadecimal:
        print(digit, 'is a valid hexadecimal string.')
    else:
        print(digit, 'is not a valid hexadecimal digit.')
    digit = input('Digit: ')

print('The input was blank')

最好使用构造,如果是十六进制数字(它检查提供的输入是否在给定列表中),而不是执行循环和插入制动器。

答案 3 :(得分:0)

另一种处理此问题的方法可能是使用string模块和内置函数all()any()
如果输入的所有元素都为真(或输入为空),则all()返回True 如果输入的任何元素是十六进制值,则any()返回True

string.hexdigits值为:'0123456789abcdefABCDEF'

<强>代码:

import string

digit = input('Digit: ')

if not digit:
    print('The input was blank.')

elif all(c in string.hexdigits for c in digit):
    print(digit, 'is a valid hexadecimal string.')

elif any(c in string.hexdigits for c in digit):
    print(digit, 'there are hexadecimals in digit')

else:
    print(digit, 'is not a hexadecimal string.')