Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么参数类型为';非类型';在我的程序中显示为不可编辑_Python_Python 2.7 - Fatal编程技术网

Python 为什么参数类型为';非类型';在我的程序中显示为不可编辑

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

我制作了这个刽子手程序,但每次运行它时都会出现“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, 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如果它不再是同一个问题,那么我认为您应该问一个新问题(但请确保在询问之前您确实尝试过调试代码)。