python - 我应该如何着手引入我希望在定义中同时成为全局变量的变量?
问题描述
我想做两个功能。一个接收名为 的输入get_guess
,另一个update_dashes,
计算该字母出现在预定单词中的索引,并将破折号/该字母放在字符串中。
这是我的代码:
secret_word = 'tracy'
dashes = ""
def get_guess(guess):
while True:
if len(guess) != 1:
print "Your guess must be exactly one character!"
elif not guess.islower():
print "Your guess must be a lowercase letter!"
else:
break
guess = input("Guess: ")
return guess
def update_dashes(secret_word, dashes, guess):
for i in range(len(secret_word)):
if secret_word[i] == guess:
dashes += guess
else:
dashes += "-"
while True:
update_dashes(secret_word, dashes, guess)
print dashes
if get_guess(guess) in secret_word:
print "That letter is in the secret word!"
else:
print "That letter is not in the secret word!"
如何调整这些函数的调用,以免我得到“guess
未定义”,同时用两个函数保持我的代码相对干净?
解决方案
您可以像这样重新格式化您的代码:
secret_word = 'tracy'
dashes = ""
def get_guess(): # <=== no variable needed as this function will generate a guess based on user input
while True:
guess = input("Guess: ")
if len(guess) != 1:
print "Your guess must be exactly one character!"
elif not guess.islower():
print "Your guess must be a lowercase letter!"
else:
break
return guess
def update_dashes(secret_word, dashes, guess):
for letter in secret_word:
if letter == guess:
dashes += guess
else:
dashes += "-"
return dashes #<======= Return you dashes updated
while True:
dashes = update_dashes(secret_word, dashes, guess)
print dashes
guess = get_guess()
if guess in secret_word:
print "That letter is in the secret word!"
else:
print "That letter is not in the secret word!"
您的代码是为 python 2 编写的吗?
推荐阅读
- vert.x - vertx 中的 ScheduledExecutorService.scheduleWithFixedDelay 用法
- html - 意外的图像不断出现
- python - 我正在处理的请求存在大问题
- php - 我无法使用 laravel 注销
- python - 如何使用列名变量使用 PYODBC 执行 SQL 查询?
- javascript - Cookie 仅在登录页面设置
- database - MySql与SQL Server同步数据的解决方案
- symfony - 从ini文件配置symfony数据库连接?
- rust - 如何修复不能借用可变的,因为它在一个`&`引用后面
- mysql - 从 MySQL 表中搜索 Json 数据