python - 在python中有5次机会的猜谜游戏
问题描述
这是我的代码:
import random
letters = ['a','g','s','s','c','v','e','g','d','g']
random_letter = random.choice(letters)
guesses_left = 5
while guesses_left > 0:
guess = input("Your guess: ")
if guess == random_letter:
print ("You win!")
break
guesses_left -= 1
else:
print ("You lose.")
我的问题:为什么我可以输入字符串以外的其他类型?例如,如果我运行代码并使用整数回答,则不会出错。如果这个问题无法解决,有没有更好的方法来创建这种类型的游戏?
解决方案
.isalpha
检查字符串是否为所有字符
import random
letters = ['a','g','s','s','c','v','e','g','d','g']
random_letter = random.choice(letters)
guesses_left = 5
while guesses_left > 0:
guess = input("Your guess: ")
if guess.isalpha():
if guess == random_letter:
print ("You win!")
break
else:
print ("You lose.")
guesses_left -= 1
else:
print('This is not a letter')
推荐阅读
- java - org.postgresql.util.PSQLException: ERROR: column "geo_detail" is of type point but expression is of type bytea 请问有什么解决方案吗?
- c - C 编译器如何始终如一地优化无法访问的代码?
- qt - QLinkedList 中 Qt 迭代器的问题
- iar - IAR 代码在调试模式下工作,但不在发布模式下
- vue.js - 通过 v-for 和 v-if 条件生成项目
- r - 创建自定义几何图形时使用美学为子图着色
- c# - 解耦依赖于另一个类的类,该类的构造函数带有参数
- php - 如何在 Symfony 命令中使用邮件程序和日期时间注入服务?
- c# - Windows UWP 桌面应用程序中的 USB 大容量存储设备通信
- javascript - 我无法在 indexedDB(Firefox) 中关闭我的数据库