python - 当我运行我的 python 文本游戏时,我得到一个属性错误,我不知道如何解决
问题描述
对于我的第一个 python 项目,我决定进行文本游戏冒险,但我偶然发现了一个我真的不知道如何修复错误的错误:
错误:
Traceback (most recent call last):
File "C:\Users\Sekou\Documents\school simulator game\aloysiusgame.py", line 248, in <module>
myPlayer.gender = player_gender
AttributeError: 'str' object has no attribute 'gender'
代码:
question2 = "ben je een meisje of jongen?\n"
for character in question2:
sys.stdout.write(character)
sys.stdout.flush()
time.sleep(0.05)
player_gender = input("> ")
valid_anwsers = ["meisje", "jongen"]
myPlayer.gender = player_gender
print("Je bent een " + player_gender + "!\n")
while player_gender.lower() not in valid_anwsers:
player_gender = input("> ")
if player_gender.lower() in valid_anwsers:
myPlayer.gender = player_gender
print("Je bent een " + player_gender + "!\n")
pass
编辑我定义播放器的部分:
import cmd
import textwrap
import sys
import os
import time
import random
screen_width = 100
##### player setup #####
class player:
def __init__(self):
self.name = ''
self.gender = ''
self.classyear4 = ''
self.sociaal = 0
self.educatie = 0
self.emoties = 0
self.location = 'c16'
self.game_over = False
myPlayer = player()
解决方案
伙计,这是我认为您正在尝试做的事情,希望对您有所帮助
myPlayer = {}
questions ={'name':None, 'age':None, 'gender':['man', 'woman']}
for question, valid_answers in questions.items():
correct = False
error_msg =""
if valid_answers == None:
answer = input(question + '\n>')
myPlayer[question] = answer
else:
while correct == False:
answer = input(error_msg+question+'\n>')
if answer.strip().lower() in valid_answers:
myPlayer[question] = answer
correct = True
else:
error_msg = ("Your answer is invalid \n")
for key, value in myPlayer.items():
print("{}:{}".format(key, value))
推荐阅读
- laravel - 使用 Laravel Nova 上传大文件
- r - 关于 sample_n() 的错误“sizemust be less or equal than 2 (size of data), setreplace` = TRUE to use sampling with replacement”
- angularjs - 机器人框架显示:JavascriptException:消息:javascript 错误:无法使用“[ng-app]”找到根选择器
- mysql - 在 MySQLWorkbench、Mac OS Catalina 中看不到结果集
- python - pyaudio中的通道数是什么意思?
- apache-spark - 如何在平面地图期间保持映射数据分开
- java - composing tasks with null checks within a method
- android - 无法获取未知属性 'bundleReleaseAar' Maven 发布
- mongodb - 从具有字符串字段的子文档数组中修剪空格的字符串值
- javascript - How can I get .getAttribute and .removeAttribute to match a[onclick*='ga']