我如何 select 基于用户输入的数字的变量
how can I select a variable based on a number that the user inputs
我正在尝试更改我创建的 classes 中的数据。
我创建了 20 个数据集 (t1-20),团队名称和得分为空字段
我想询问用户 name/number 他们想要编辑哪个团队,然后将他们的输入从 class 'AllTeams'
添加到列表中
class AllTeams:
def __init__(self, TeamNum, TeamName, TeamScore):
self.TeamNum = TeamNum
self.TeamName = TeamName
self.TeamScore = TeamScore
def myfunc(abc):
print('Team Number:',abc.TeamNum,'|-|', 'Team Name:',abc.TeamName, '|-|', 'Team Score:',abc.TeamScore)
t1 = AllTeams(1, "N/A", 0)
t2 = AllTeams(2, "N/A", 0)
t3 = AllTeams(3, "N/A", 0)
t4 = AllTeams(4, "N/A", 0)
t5 = AllTeams(5, "N/A", 0)
t6 = AllTeams(6, "N/A", 0)
t7 = AllTeams(7, "N/A", 0)
t8 = AllTeams(8, "N/A", 0)
t9 = AllTeams(9, "N/A", 0)
t10 = AllTeams(10, "N/A", 0)
t11 = AllTeams(11, "N/A", 0)
t12 = AllTeams(12, "N/A", 0)
t13 = AllTeams(13, "N/A", 0)
t14 = AllTeams(14, "N/A", 0)
t15 = AllTeams(15, "N/A", 0)
t16 = AllTeams(16, "N/A", 0)
t17 = AllTeams(17, "N/A", 0)
t18 = AllTeams(18, "N/A", 0)
t19 = AllTeams(19, "N/A", 0)
t20 = AllTeams(20, "N/A", 0)#data for teams
t1.myfunc()
t2.myfunc()
t3.myfunc()
t4.myfunc()
t5.myfunc()
t6.myfunc()
t7.myfunc()
t8.myfunc()
t9.myfunc()
t10.myfunc()
t11.myfunc()
t12.myfunc()
t13.myfunc()
t14.myfunc()
t15.myfunc()
t16.myfunc()
t17.myfunc()
t18.myfunc()
t19.myfunc()
t20.myfunc()#printing the leaderboard of teams
TeamCounter=int(input('How many Teams will be in the tournament? '))
conversion=str(TeamCounter)
print('')
while TeamCounter>0:
NameOfTeam=input('Please Enter Team Name: ')
MemberCount=input('How Many Members in Team? ')
TeamCounter-=1 #need this for the loop to work
NewTeam=('t'+conversion)
print(NewTeam)
这是迄今为止所有评论的摘要。请注意,创建 20 个团队然后询问会有多少个是很愚蠢的。这只会创建他们要求的团队。另外,你没有地方放玩家数量,所以我不存储它。
class AllTeams:
def __init__(self, TeamNum, TeamName, TeamScore):
self.TeamNum = TeamNum
self.TeamName = TeamName
self.TeamScore = TeamScore
def __repr__(self):
return f'Team Number: {self.TeamNum} |-| Team Name: {self.TeamName} |-| Team Score: {self.TeamScore}'
#teams = [AllTeams(i+1, "N/A", 0) for i in range(20)]
teams = []
TeamCounter=int(input('How many Teams will be in the tournament? '))
print('')
for i in range(TeamCounter):
NameOfTeam=input(f'Please Enter Team {i+1} Name: ')
MemberCount=input('How Many Members in Team? ')
teams.append( AllTeams( i+1, NameOfTeam, 0 ) )
for t in teams:
print(t)
输出:
C:\tmp>python x.py
How many Teams will be in the tournament? 8
Please Enter Team 1 Name: abc
How Many Members in Team? 3
Please Enter Team 2 Name: def
How Many Members in Team? 3
Please Enter Team 3 Name: ghi
How Many Members in Team? 2
Please Enter Team 4 Name: jkl
How Many Members in Team? 9
Please Enter Team 5 Name: mno
How Many Members in Team? 3
Please Enter Team 6 Name: pqr
How Many Members in Team? 3
Please Enter Team 7 Name: stu
How Many Members in Team? 4
Please Enter Team 8 Name: vwx
How Many Members in Team? 3
Team Number: 1 |-| Team Name: abc |-| Team Score: 0
Team Number: 2 |-| Team Name: def |-| Team Score: 0
Team Number: 3 |-| Team Name: ghi |-| Team Score: 0
Team Number: 4 |-| Team Name: jkl |-| Team Score: 0
Team Number: 5 |-| Team Name: mno |-| Team Score: 0
Team Number: 6 |-| Team Name: pqr |-| Team Score: 0
Team Number: 7 |-| Team Name: stu |-| Team Score: 0
Team Number: 8 |-| Team Name: vwx |-| Team Score: 0
C:\tmp>
你的 class 命名不当,因为它只代表一个团队 - 所以我重命名了它。
为了便于打印,我添加了一个 repr。
队伍数量是固定的。正如其他人所说,您应该考虑询问用户他们想要多少支球队,但出于演示目的,我将其保留为固定值。
class Team:
def __init__(self, TeamNum, TeamName, TeamScore):
self.TeamNum = TeamNum
self.TeamName = TeamName
self.TeamScore = TeamScore
def __repr__(self):
return f'Team number: {self.TeamNum} |-| Team name: {self.TeamName} |-| Team score: {self.TeamScore}'
# construct a list of 20 teams
teams = [Team(n+1, 'N/A', 0) for n in range(20)]
# loop indefinitely until user inputs zero
while True:
tnum = input('Enter team number (0 to end): ')
try:
# make sure the input is a number and also within range
if (tnum := int(tnum)) == 0:
break
if tnum < 1 or tnum > len(teams):
raise ValueError
tname = input('Enter team name: ')
# assign the input team name
teams[tnum-1].TeamName = tname
# print the modified team class
print(teams[tnum-1])
except ValueError:
print(f'You need to enter a number between 1 and {len(teams)}')
# print all the teams
for team in teams:
print(team)
我正在尝试更改我创建的 classes 中的数据。 我创建了 20 个数据集 (t1-20),团队名称和得分为空字段 我想询问用户 name/number 他们想要编辑哪个团队,然后将他们的输入从 class 'AllTeams'
添加到列表中class AllTeams:
def __init__(self, TeamNum, TeamName, TeamScore):
self.TeamNum = TeamNum
self.TeamName = TeamName
self.TeamScore = TeamScore
def myfunc(abc):
print('Team Number:',abc.TeamNum,'|-|', 'Team Name:',abc.TeamName, '|-|', 'Team Score:',abc.TeamScore)
t1 = AllTeams(1, "N/A", 0)
t2 = AllTeams(2, "N/A", 0)
t3 = AllTeams(3, "N/A", 0)
t4 = AllTeams(4, "N/A", 0)
t5 = AllTeams(5, "N/A", 0)
t6 = AllTeams(6, "N/A", 0)
t7 = AllTeams(7, "N/A", 0)
t8 = AllTeams(8, "N/A", 0)
t9 = AllTeams(9, "N/A", 0)
t10 = AllTeams(10, "N/A", 0)
t11 = AllTeams(11, "N/A", 0)
t12 = AllTeams(12, "N/A", 0)
t13 = AllTeams(13, "N/A", 0)
t14 = AllTeams(14, "N/A", 0)
t15 = AllTeams(15, "N/A", 0)
t16 = AllTeams(16, "N/A", 0)
t17 = AllTeams(17, "N/A", 0)
t18 = AllTeams(18, "N/A", 0)
t19 = AllTeams(19, "N/A", 0)
t20 = AllTeams(20, "N/A", 0)#data for teams
t1.myfunc()
t2.myfunc()
t3.myfunc()
t4.myfunc()
t5.myfunc()
t6.myfunc()
t7.myfunc()
t8.myfunc()
t9.myfunc()
t10.myfunc()
t11.myfunc()
t12.myfunc()
t13.myfunc()
t14.myfunc()
t15.myfunc()
t16.myfunc()
t17.myfunc()
t18.myfunc()
t19.myfunc()
t20.myfunc()#printing the leaderboard of teams
TeamCounter=int(input('How many Teams will be in the tournament? '))
conversion=str(TeamCounter)
print('')
while TeamCounter>0:
NameOfTeam=input('Please Enter Team Name: ')
MemberCount=input('How Many Members in Team? ')
TeamCounter-=1 #need this for the loop to work
NewTeam=('t'+conversion)
print(NewTeam)
这是迄今为止所有评论的摘要。请注意,创建 20 个团队然后询问会有多少个是很愚蠢的。这只会创建他们要求的团队。另外,你没有地方放玩家数量,所以我不存储它。
class AllTeams:
def __init__(self, TeamNum, TeamName, TeamScore):
self.TeamNum = TeamNum
self.TeamName = TeamName
self.TeamScore = TeamScore
def __repr__(self):
return f'Team Number: {self.TeamNum} |-| Team Name: {self.TeamName} |-| Team Score: {self.TeamScore}'
#teams = [AllTeams(i+1, "N/A", 0) for i in range(20)]
teams = []
TeamCounter=int(input('How many Teams will be in the tournament? '))
print('')
for i in range(TeamCounter):
NameOfTeam=input(f'Please Enter Team {i+1} Name: ')
MemberCount=input('How Many Members in Team? ')
teams.append( AllTeams( i+1, NameOfTeam, 0 ) )
for t in teams:
print(t)
输出:
C:\tmp>python x.py
How many Teams will be in the tournament? 8
Please Enter Team 1 Name: abc
How Many Members in Team? 3
Please Enter Team 2 Name: def
How Many Members in Team? 3
Please Enter Team 3 Name: ghi
How Many Members in Team? 2
Please Enter Team 4 Name: jkl
How Many Members in Team? 9
Please Enter Team 5 Name: mno
How Many Members in Team? 3
Please Enter Team 6 Name: pqr
How Many Members in Team? 3
Please Enter Team 7 Name: stu
How Many Members in Team? 4
Please Enter Team 8 Name: vwx
How Many Members in Team? 3
Team Number: 1 |-| Team Name: abc |-| Team Score: 0
Team Number: 2 |-| Team Name: def |-| Team Score: 0
Team Number: 3 |-| Team Name: ghi |-| Team Score: 0
Team Number: 4 |-| Team Name: jkl |-| Team Score: 0
Team Number: 5 |-| Team Name: mno |-| Team Score: 0
Team Number: 6 |-| Team Name: pqr |-| Team Score: 0
Team Number: 7 |-| Team Name: stu |-| Team Score: 0
Team Number: 8 |-| Team Name: vwx |-| Team Score: 0
C:\tmp>
你的 class 命名不当,因为它只代表一个团队 - 所以我重命名了它。
为了便于打印,我添加了一个 repr。
队伍数量是固定的。正如其他人所说,您应该考虑询问用户他们想要多少支球队,但出于演示目的,我将其保留为固定值。
class Team:
def __init__(self, TeamNum, TeamName, TeamScore):
self.TeamNum = TeamNum
self.TeamName = TeamName
self.TeamScore = TeamScore
def __repr__(self):
return f'Team number: {self.TeamNum} |-| Team name: {self.TeamName} |-| Team score: {self.TeamScore}'
# construct a list of 20 teams
teams = [Team(n+1, 'N/A', 0) for n in range(20)]
# loop indefinitely until user inputs zero
while True:
tnum = input('Enter team number (0 to end): ')
try:
# make sure the input is a number and also within range
if (tnum := int(tnum)) == 0:
break
if tnum < 1 or tnum > len(teams):
raise ValueError
tname = input('Enter team name: ')
# assign the input team name
teams[tnum-1].TeamName = tname
# print the modified team class
print(teams[tnum-1])
except ValueError:
print(f'You need to enter a number between 1 and {len(teams)}')
# print all the teams
for team in teams:
print(team)