Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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_Variables - Fatal编程技术网

Python 为什么即使我更改了全局变量,变量也不会更改?

Python 为什么即使我更改了全局变量,变量也不会更改?,python,variables,Python,Variables,这是我的代码,很多东西都是用另一种语言写的,如果不方便的话,很抱歉 import random def pradeti_isnaujo(): answer = input('Ar žaisi dar kartą? taip/ne ').lower() if answer == 't' or answer == 'taip': zaisti() else: pass def naujas_zodis(): words = ['

这是我的代码,很多东西都是用另一种语言写的,如果不方便的话,很抱歉

import random


def pradeti_isnaujo():
    answer = input('Ar žaisi dar kartą? taip/ne ').lower()
    if answer == 't' or answer == 'taip':
        zaisti()
    else:
        pass


def naujas_zodis():
    words = ['katė', 'šuo', 'python', 'mašina', 'gyvatė', 'jonas']
    return random.choice(words)


alphabet = 'abcdefghijklmnopqrstuvwxyz'
word = naujas_zodis()
letters_guessed = []
tries = 10
guessed = False
letters_word = len(word)


def zaisti():

    global alphabet
    global word
    global letters_guessed
    global tries
    global guessed
    global letters_word

    print('Žodis sudarytas iš', len(word), 'raidžių.')
    print(len(word) * '*')
    while guessed == False and tries > 0:
        print('Liko ' + str(tries) + ' spėjimai')
        guess = input('Spėjama raidė arba žodis: ').lower()
        # 1 - user inputs a letter

        if len(guess) == 1:
            if guess not in alphabet:
                print('Neįrašėte raidės.')
            elif guess in letters_guessed:
                print('Ši raidė jau buvo spėta.')
            elif guess not in word:
                print('Ši raidė netinka :(')
                letters_guessed.append(guess)
                tries -= 1
            elif guess in word:
                print('Ši raidė yra spėjamame žodyje!')
                letters_guessed.append(guess)
            else:
                print('error!')

        # 2 - pilnas žodis
        elif len(guess) == len(word):
            if guess == word:
                print('Atspėjote žodį!')
                guessed = True
            else:
                print('Neatspėjote :(')
                tries -= 1

        # 3 - ilgesnis žodis negu turimas žodis.
        elif guessed > letters_word:
            print('Žodis yra trumpesnis negu jį spėjote.')
            tries -= 1

        status = ''
        if not guessed:
            for letter in word:
                if letter in letters_guessed:
                    status += letter
                else:
                    status += '*'
            print(status)

        if status == word:
            print('Atspėjote žodį!')
            guessed = True
        elif tries == 0:
            print('Nebeliko spėjimų.')

        elif guessed < letters_word:
            print('Žodis yra ilgesnis negu jį spėjote.')

            tries -= 1

            status = ''
        if guessed:
            for letter in word:
                if letter in letters_guessed:
                    status += letter
                else:
                    status += '*'
            print(status)

    pradeti_isnaujo()


zaisti()
随机导入
def pradeti_isnaujo():
答案=输入('Aržaisi dar kartą?taip/ne')。下()
如果答案='t'或答案='taip':
扎伊斯蒂()
其他:
通过
def naujas_zodis():
单词=['katė',šuo','python','mašina','gyvatė','jonas']
返回random.choice(单词)
字母表='abcdefghijklmnopqrstuvxyz'
word=naujas_zodis()
字母_猜测=[]
尝试=10次
猜测=错误
字母\单词=len(单词)
def zaisti():
全球字母表
全球词汇
你猜到了吗
全球尝试
全球猜测
全球字母
印刷品('odis sudarytas iš',len(word),'raidžių')
印刷品(字)*'*')
当猜测==错误并尝试>0时:
打印('Liko'+str(tries)+'spėjimai')
猜测=输入('Spėjama raidėarbažodis:')。下()
#1-用户输入一个字母
如果len(猜测)==1:
如果猜测不在字母表中:
印刷品('Neįrašėte raidės.)
elif guess(以字母表示)u猜测:
印刷品('Ši raidėjau buvo spėta')
elif猜测不在文字中:
打印('Ši raidėnetinka:('))
字母_猜测。追加(猜测)
尝试-=1
elif guess in word:
印刷品('Ši raidėyra spėjamamežodyje!')
字母_猜测。追加(猜测)
其他:
打印('错误!')
#2-比尔纳斯žodis
elif len(猜测)=len(单词):
如果猜测==单词:
打印('Atspėjotežodį!')
猜测=正确
其他:
打印('Neatspėjote:('))
尝试-=1
#第3条——国家法律。
elif猜测>字母和单词:
印刷品('odis yra trumpesnis negu jįspėjote')
尝试-=1
状态=“”
如果没有猜测:
对于大写字母:
如果你猜到字母中的字母:
状态+=字母
其他:
状态+='*'
打印(状态)
如果状态==字:
打印('Atspėjotežodį!')
猜测=正确
elif尝试==0:
印刷品('Nebeliko spėjimų')
elif猜出了字母和单词:
印刷品('odis yra ilgesnis negu jįspėjote')
尝试-=1
状态=“”
如果猜测:
对于大写字母:
如果你猜到字母中的字母:
状态+=字母
其他:
状态+='*'
打印(状态)
pradeti_isnaujo()
扎伊斯蒂()

它基本上是为hangman编写的,我有一个奇怪的错误,即使我改变了全局变量,比如说5,它仍然会显示我还有10次尝试,我有几行代码,告诉你猜测的单词比你必须猜测的单词长还是短,在说你猜测的单词短或长之后r应该试一次,但它仍然保持在10,唯一有效的是if语句,它检查您是否猜对了字母,并且可以毫无问题地进行尝试,请记住,所有这些都是在一个函数中完成的。在解释器中,如果它不查看我编写的新代码,它会是一个bug吗?

我试过了,它在f中工作伊恩

随机导入
def pradeti_isnaujo():
答案=输入('Aržaisi dar kartą?taip/ne')。下()
如果答案='t'或答案='taip':
扎伊斯蒂()
其他:
通过
def naujas_zodis():
单词=['katė',šuo','python','mašina','gyvatė','jonas']
words=['python']
返回random.choice(单词)
字母表='abcdefghijklmnopqrstuvxyz'
word=naujas_zodis()
字母_猜测=[]
尝试=3
猜测=错误
字母\单词=len(单词)
def guess_字母(guess):
你猜到了吗
全球尝试
如果猜测不在字母表中:
返回“Neįrašėte raidės.”
elif guess(以字母表示)u猜测:
返回“ėi raidėjau buvo spėta”
elif猜测不在文字中:
字母_猜测。追加(猜测)
尝试-=1
返回'Ši raidėnetinka:('
elif guess in word:
字母_猜测。追加(猜测)
返回“ėi raidėyra spėjamamežodyje!”
其他:
返回“错误!”
def guess_单词(猜测):
全球猜测
全球尝试
如果猜测==单词:
猜测=正确
返回“Atspėjotežodį!”
其他:
尝试-=1
返回'Neatspėjote:('
def zaisti():
全球字母表
全球词汇
你猜到了吗
全球尝试
全球猜测
全球字母
印刷品('odis sudarytas iš',len(word),'raidžių')
印刷品(字)*'*')
当猜测==错误并尝试>0时:
打印('Liko'+str(tries)+'spėjimai')
猜测=输入('Spėjama raidėarbažodis:')。下()
#1-用户输入一个字母
如果len(猜测)==1:
打印(猜测字母(猜测))
#2-比尔纳斯žodis
elif len(猜测)=len(单词):
打印(猜测单词(猜测))
#第3条——国家法律。
elif猜测>字母和单词:
印刷品('odis yra trumpesnis negu jįspėjote')
尝试-=1
状态=“”
如果没有猜测:
对于大写字母:
如果你猜到字母中的字母:
状态+=字母
其他:
状态+='*'
打印(状态)
如果状态==字:
打印('Atspėjotežodį!')
猜测=正确
elif尝试==0:
印刷品('Nebeliko spėjimų')
elif猜出了字母和单词:
印刷品('odis yra ilgesnis negu jįspėjote')
尝试-=1
状态=“”
如果猜测:
Žodis sudarytas iš 6 raidžių.
******
Liko 3 spėjimai
Spėjama raidė arba žodis: p
Ši raidė yra spėjamame žodyje!
p*****
Žodis yra ilgesnis negu jį spėjote.
Liko 2 spėjimai
Spėjama raidė arba žodis: y
Ši raidė yra spėjamame žodyje!
py****
Žodis yra ilgesnis negu jį spėjote.
Liko 1 spėjimai
Spėjama raidė arba žodis: