继续获取 ValueError:int() 的文字无效,底数为 10:"1, 7"



我正试图制作一个类似刽子手的游戏,但当我运行我目前拥有的代码时,我不断地出现错误,我尝试制作新的变量,如int1和int2,但没有成功。这是代码:

from nltk.corpus import words
import random
word_list = words.words()
password = random.choice(word_list)
finish = len(password)
print("The password has", len(password),"letters")
print(password)
while finish > 0:

guess = input("Please enter a letter to see where it is in the word:  ")
occur = password.count(guess)

mylist = {', '.join([str(i) for i, c in enumerate(password) if c == guess])}
print(mylist)
int1 = [int(y) for y in mylist]
int2 = [x+1 for x in mylist]
print(ints)
if len(guess) > 1 or len(guess) < 1:
print("Enter 1 standard keyboard letter to see if it is in the word")

elif guess in password:
print(f"This letter is at position {', '.join([str(i) for i, c in enumerate(password) if c == guess])} in the word")
finish = finish - occur
password = password.replace(guess,'.')
print("Only", finish, "letters left to guess")

else:
print("Try again")

我希望第16-22行首先将列表中的元素从字符串转换为整数,然后打印出列表,然后再次打印出相同的列表,但列表中的每个元素都加1。这是我不断得到的错误:

Traceback (most recent call last):
File "/Users/ARR2K18/Desktop/Hangman.py", line 29, in <module>
int1 = [int(y) for y in mylist]
File "/Users/ARR2K18/Desktop/Hangman.py", line 29, in <listcomp>
int1 = [int(y) for y in mylist]
ValueError: invalid literal for int() with base 10: '1, 7'

想要一些帮助

您的问题在这里:

mylist = {', '.join([...])}
print(mylist)
int1 = [int(y) for y in mylist]

CCD_ 1将给你一个结果;1、7〃;,并且该集合看起来类似于CCD_ 2。然后,当您对其中一个集合元素调用int()时,会显示错误。

解决此问题的方法可能是简单地放弃join调用并单独使用列表理解。

相关内容