社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

除了使用Python的集合之外,还使用If-Else语句

Nath • 3 年前 • 1301 次点击  

我必须为学校创造一个算命师。我希望用户输入一个介于1-9之间的数字。但如果他们输入了不同的号码,我也想给出一个错误信息。我使用的是一个包含数字的集合,但我不能在if语句中调用它。

fortune_num = set([1, 2, 3, 4, 5, 6, 7, 8, 9])
user_num = input(f'Pick a number and find your fortune! Choose a number from 1 to 9 and hit enter: ')
print()
if user_num == fortune_num:
    print(user_num)
else:
    print('Error')
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/133150
 
1301 次点击  
文章 [ 4 ]  |  最新文章 3 年前
Acccumulation
Reply   •   1 楼
Acccumulation    3 年前

首先 input 将用户输入作为字符串。所以即使他们进入 1 ,这与你的套装不匹配,因为你的套装是 int ,他们的输入是 一串 '1' ,而不是整数 1. .而且,不需要使用一套。A. range 对象更容易生成,因为它包含多个数字,所以变量名应该是复数。你的缩进也不正确。我不明白这是怎么回事 f 在输入函数中,如果需要多行字符串,则需要三个引号。此外,如果你的字符串中有回车符 \n 在字符串中有两个换行符;我不确定这是不是有意的。这样做的一个方法是:

fortune_nums = [str(num) for num in range(1,10)]
user_num = input('''Pick a number and find your fortune!
Choose a number from 1 to 9 and hit enter: \n''')
print()
if user_num in fortune_nums:
    print(user_num)
else:
    print('Error')

如果你想变得更时尚,你可以保持 fortune_nums 作为int,然后尝试将输入转换为int,捕捉无效的文字错误:

fortune_nums = range(1,10)
user_num = input('''Pick a number and find your fortune!
Choose a number from 1 to 9 and hit enter: \n''')
print()
try:
    if(int(user_num) in fortune_nums):
        print(user_num)
except ValueError:
    print("That's not a valid integer!")
Ishan Shishodiya
Reply   •   2 楼
Ishan Shishodiya    3 年前

你可以使用这个代码,

fortune_num = list(range(1,10))
user_num = input(f'Pick a number and find your fortune!\nChoose a number from 1 to 9 and hit enter: ')

if int(user_num) in fortune_num:
  print(user_num)
else:
  raise ValueError("You entered a wrong input!")

如果输入错误,这将引发实际的Python错误。

如果你想让用户有机会输入正确的输入,请使用此选项,

fortune_num = list(range(1,10))

while True:
  try:
    user_num = int(input(f'Pick a number and find your fortune!\nChoose a number from 1 to 9 and hit enter: '))
    if user_num in fortune_num:
      print(user_num)
      break
    else:
      raise ValueError

  except:
    print("\nYou entered a wrong input. Please enter a valid number!")

根据你的需要修改代码,但这是一个完美的基础。

Anvar_Ermatov
Reply   •   3 楼
Anvar_Ermatov    3 年前
  1. 如果user_num==fortune_num://而不是这个;您可以在fortune_num:中的int(user_num)中使用关键字,

  2. 此外,打印语句必须缩进,否则可能会出现缩进错误。

Avinash Mo7x
Reply   •   4 楼
Avinash Mo7x    3 年前

使用关键字 in 要检查集合成员身份,请同时强制转换 input 进入 int :

fortune_num = set([1, 2, 3, 4, 5, 6, 7, 8, 9])
user_num = input(f'Pick a number and find your fortune! 
\nChoose a number from 1 to 9 and hit enter: ')
print()
if int(user_num) in fortune_num: #this would throw an error if input is not int
    print(user_num)
else:
    print('Error')