Python 为什么参数类型为';非类型';在我的程序中显示为不可编辑
我制作了这个刽子手程序,但每次运行它时都会出现“nonetype”错误 程序运行- 每当我输入一个单词时,输出是这样的 吊人游戏 猜一个字 A. ----- 你说对了一个词Python 为什么参数类型为';非类型';在我的程序中显示为不可编辑,python,python-2.7,Python,Python 2.7,我制作了这个刽子手程序,但每次运行它时都会出现“nonetype”错误 程序运行- 每当我输入一个单词时,输出是这样的 吊人游戏 猜一个字 A. ----- 你说对了一个词 -----a--------------- Traceback (most recent call last): File "F:/coding/python/python programming for absolute beginners/chapter 5/Hang Man Game.py", line 129
-----a---------------
Traceback (most recent call last):
File "F:/coding/python/python programming for absolute beginners/chapter 5/Hang Man Game.py", line 129, in <module>
if guess in used:
TypeError: argument of type 'NoneType' is not iterable
----a---------------
回溯(最近一次呼叫最后一次):
文件“F:/coding/python/python programming for absolute初学者/chapter 5/Hang-Man Game.py”,第129行,in
如果使用猜测:
TypeError:类型为“NoneType”的参数不可编辑
守则:
print("\t\t\tHang Man Game")
import random
set=("happy","australia","punjab","criclet","tennis")
choose=random.choice(set)
correct=choose
HANGMAN=('''
_______
|
|
|
|
|
|
|
|
|
|
|
___
''',
'''
______________
| |
|
|
|
|
|
|
|
|
|
___
''',
'''
______________
| |
| O
|
|
|
|
|
|
|
|
___
''',
'''
______________
| |
| O
| |
| |
| |
| |
|
|
|
|
___
''',
'''
______________
| |
| O
| |
| ---|
| |
| |
|
|
|
|
___
''',
'''
______________
| |
| O
| |
| ---|---
| |
| |
|
|
|
|
___
''',
'''
______________
| |
| O
| |
| ---|---
| |
| |
| /
| /
| /
|
___
''',
'''
______________
| |
| O
| |
| ---|---
| |
| |
| / \
| / \
| / \
|
___
'''
)
MAX_WRONG=(len(HANGMAN)-1)
wrong=0
new=""
used=[]
so_far="-"*len(correct)
guess=raw_input("Guess a word\n")
while(so_far!=correct and wrong<MAX_WRONG):
print(so_far)
if guess in used:
print("you have already used it")
else:
if guess in correct:
print("You gussed one word correctly\n")
used.append(guess)
for i in range(len(correct)):
if guess==correct[i]:
new=new+guess
else:
new=new+so_far
so_far=new
else:
used=used.append(guess)
wrong=wrong+1
print(“\t\t\tHang Man Game”)
随机输入
套装=(“快乐”、“澳大利亚”、“旁遮普”、“克里特”、“网球”)
选择=随机。选择(集合)
选择
刽子手=('''
_______
|
|
|
|
|
|
|
|
|
|
|
___
''',
'''
______________
| |
|
|
|
|
|
|
|
|
|
___
''',
'''
______________
| |
|O
|
|
|
|
|
|
|
|
___
''',
'''
______________
| |
|O
| |
| |
| |
| |
|
|
|
|
___
''',
'''
______________
| |
|O
| |
| ---|
| |
| |
|
|
|
|
___
''',
'''
______________
| |
|O
| |
| ---|---
| |
| |
|
|
|
|
___
''',
'''
______________
| |
|O
| |
| ---|---
| |
| |
| /
| /
| /
|
___
''',
'''
______________
| |
|O
| |
| ---|---
| |
| |
| / \
| / \
| / \
|
___
'''
)
最大错误=(len(刽子手)-1)
错误=0
new=“”
已用=[]
so_far=“-”*len(正确)
猜测=原始输入(“猜测一个单词\n”)
然而(到目前为止!=正确和错误你不能这样做
used = used.append(guess)
append
函数返回None
,它在适当的位置修改used
。因此,基本上是在右侧追加guess
,然后将None
赋值给used
。因此,在尝试迭代None
时,循环的下一次迭代是w错误告诉了你什么
你只需要说
used.append(guess)
或
你不能这样做
used = used.append(guess)
append
函数返回None
,它在适当的位置修改used
。因此,基本上是在右侧追加guess
,然后将None
赋值给used
。因此,在尝试迭代None
时,循环的下一次迭代是w错误告诉了你什么
你只需要说
used.append(guess)
或
list
的成员函数append
修改列表,不返回任何内容
在第一次迭代中,used
是一个空列表,但是当您到达used=used.append(guess)
行时,used
首先按照您的预期进行修改,然后指定append
的返回值(即None
)因此,在第二次迭代中,used
是None
对于used.append(猜测)
,只需使用append
更改两行即可
但是,您的代码还有其他问题,其中之一是您只要求猜测一次(您可以将guess=raw\u输入(“guess a word\n”)
放在循环中)。list
的成员函数append
修改列表,并且不返回任何内容
在第一次迭代中,used
是一个空列表,但是当您到达used=used.append(guess)
行时,used
首先按照您的预期进行修改,然后指定append
的返回值(即None
)因此,在第二次迭代中,used
是None
对于used.append(猜测)
,只需使用append
更改两行即可
不过,您的代码还有其他问题,其中一个问题是您只要求猜测一次(您可以将guess=raw\u输入(“猜测一个单词”)
放在循环中)。它仍然在给出答案error@ShubhamSharma您是否修复了代码中出现的两个append
是的,我这样做了,但是我在范围内的破折号循环(len(correct)):如果guess==correct[i]:new=new+guess else:new=new+so\u far\u far=new给出了problem@ShubhamSharma如果这不再是同一个问题,那么我认为你应该问一个新问题(但在询问之前,请确保您确实尝试过调试代码)error@ShubhamSharma您是否修复了代码中出现的两个append
(对我有效)是的,我这样做了,但在范围内(len(correct)):if guess==correct[i]:new=new+猜测其他:new=new+so\u far-so\u far=new正在给予problem@ShubhamSharma如果它不再是同一个问题,那么我认为您应该问一个新问题(但请确保在询问之前您确实尝试过调试代码)。