python - 我可以在while循环中调用我的函数吗?
问题描述
生成一个介于 1 和 9 之间的随机数(包括 1 和 9)。让用户猜数字,然后告诉他们猜的太低、太高还是完全正确。(_Hint:记得使用第一个练习中的用户输入课程
附加功能:
让游戏继续进行,直到用户键入“exit” 记录用户猜了多少次,当游戏结束时,打印出来。
我实际上无法弄清楚为什么我的程序没有打印 if 子句中的打印。我的 while 循环中的第一个函数是否调用错误?
import random
def cpu_guess():
cpu_number=random.randint(1,9)
return cpu_number
print(cpu_guess())
def player_guess():
player_number=input('Digit a number between 1 and 9\n')
return player_number
def game():
r_guesses=0
w_guesses=0
while player_guess()!='exit':
if int(player_guess())>int(cpu_guess()):
print('Higher value than generated')
w_guesses+=1
elif int(player_guess())<int(cpu_guess()):
print('Lower value than generated')
else:
print('You have entered the right value')
r_guesses+=1
return r_guesses,w_guesses
print(game())
我不确定我是否可以在 player_guess()!='exit' 时执行此操作:我是否需要创建一个像这样的变量guess=player_guess() 并写 whileguess!='exit'
解决方案
您player_guess
一遍又一遍地调用,每次调用它时,它都会停止并等待输入。每个循环可能会等待输入 3 次。调用一次函数并将结果保存在变量中:
def game():
r_guesses = 0
w_guesses = 0
guess = None # Save it here
while guess != 'exit':
guess = player_guess()
if guess > int(cpu_guess()):
print('Higher value than generated')
w_guesses+=1
elif guess < int(cpu_guess()):
print('Lower value than generated')
else:
print('You have entered the right value')
r_guesses += 1
return r_guesses, w_guesses
print(game())
然后,如评论中所述,为计算机的猜测做类似的事情。计算机的轮次不断变化,因此您可能会通过所有检查并因此获得意想不到的结果。想想当这些函数被调用时会发生什么。
推荐阅读
- c++ - C ++中的双指针类型转换
- reactjs - 发送消息:未定义 ID
- python - Keras 在回调中拟合预测
- python - 在 PyQt 的第二个线程中打开子对话框的正确方法是什么?
- vuejs2 - 将 DeckGL 与 Vue.js 一起使用
- big-o - 减法在大 O 表示法中有效吗?
- sql-server - 将 DateTime (yyyy-MM-dd HH:mm:ss.fff) 连接到动态 sql 查询中的字符串
- javascript - 如何在 ext 移动应用程序中使用多种语言?
- javascript - 在 Angular 中连接组件
- python - 使用列表的 Python 计算