继续获取 ValueError: invalid literal for int() with base 10: '1, 7'
Posted
技术标签:
【中文标题】继续获取 ValueError: invalid literal for int() with base 10: \'1, 7\'【英文标题】:Keep on getting ValueError: invalid literal for int() with base 10: '1, 7'继续获取 ValueError: invalid literal for int() with base 10: '1, 7' 【发布时间】:2022-01-09 08:27:49 【问题描述】:我正在尝试制作一个类似刽子手的游戏,但是当我运行我目前拥有的这段代码时,我不断收到错误,我尝试制作新变量,例如 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'
需要帮助
【问题讨论】:
【参考方案1】:您的问题在这里:
mylist = ', '.join([...])
print(mylist)
int1 = [int(y) for y in mylist]
', '.join(...)
会给你一个类似“1, 7”的结果,而这个集合看起来像"1, 7", "3, 4", ...
。然后,当您在其中一个 set 元素上调用 int()
时,您会收到显示的错误。
解决此问题的方法可能是简单地放弃 join
调用并单独使用列表推导。
【讨论】:
可能是真的,但 OP 的代码有多个问题。int1
和 int2
被计算并且从未使用过(如果列表元素是字符串,int2
的计算也会中断)。然后尝试打印ints
,但从未定义。并且错误信息中的行号与问题中的代码不符。
是的,我有点忽略了行号,因为我认为它们是关闭的。当然还有其他问题,但这应该解决他引用的错误。以上是关于继续获取 ValueError: invalid literal for int() with base 10: '1, 7'的主要内容,如果未能解决你的问题,请参考以下文章
请问这段python代码哪里出错了,错误代码:ValueError: invalid literal for int() with base 10: ','?
ValueError: Invalid \escape: 当在 Scrapy 中读取 json 作为响应时
Keras model.load_weights() error: ValueError: Invalid high library version bound (invalid high libra
Python中ValueError: invalid literal for int() with base 10 的实用解决办法