Python 编写一个允许用户输入播放器的程序';改变他们的名字和薪水

Python 编写一个允许用户输入播放器的程序';改变他们的名字和薪水,python,python-3.3,Python,Python 3.3,这是我在这方面取得的进展,但我不确定如何再次调用该过程: Chelsea_Salaries_2014 = {'Jose Mourinho':[53, 163500, 'Unknown']} Chelsea_Salaries_2014['Eden Hazard']=[22, 185000, 'June 2017'] Chelsea_Salaries_2014['Fernando Torres']=[29, 175000, 'June 2016'] Chelsea_Salaries_2014['Jo

这是我在这方面取得的进展,但我不确定如何再次调用该过程:

Chelsea_Salaries_2014 = {'Jose Mourinho':[53, 163500, 'Unknown']}
Chelsea_Salaries_2014['Eden Hazard']=[22, 185000, 'June 2017']
Chelsea_Salaries_2014['Fernando Torres']=[29, 175000, 'June 2016']
Chelsea_Salaries_2014['John Terry']=[32, 175000, 'June 2015']
Chelsea_Salaries_2014['Frank Lampard']=[35, 125000, 'June 2014']
Chelsea_Salaries_2014['Ashley Cole']=[32, 120000, 'June 2014']
Chelsea_Salaries_2014['Petr Cech']=[31, 100000, 'June 2016']
Chelsea_Salaries_2014['Gary Cahill']=[27, 80000, 'June 2017']
Chelsea_Salaries_2014['David Luiz']=[26, 75000, 'June 2017']
Chelsea_Salaries_2014['John Obi Mikel']=[26, 75000, 'June 2017']
Chelsea_Salaries_2014['Nemanja Matic']=[25, 75000, 'June 2019']
Chelsea_Salaries_2014['Marco Van Ginkel']=[20, 30000, 'June 2018']
Chelsea_Salaries_2014['Ramires']=[26, 60000, 'June 2017']
Chelsea_Salaries_2014['Oscar']=[21, 67500, 'June 2017']
Chelsea_Salaries_2014['Lucas Piazon']=[19, 15000, 'June 2017']
Chelsea_Salaries_2014['Ryan Bertrand']=[23, 35000, 'June 2017']
Chelsea_Salaries_2014['Marko Marin']=[27, 35000, 'June 2017']
Chelsea_Salaries_2014['Cesar Azpilicueta']=[23, 55000, 'June 2017']
Chelsea_Salaries_2014['Branislav Ivanovic']=[29, 67500, 'June 2016']
Chelsea_Salaries_2014['Ross Turnbull']=[22, 17000, 'June 2017']
Chelsea_Salaries_2014['Demba Ba']=[28, 65000, 'June 2016']
Chelsea_Salaries_2014['Oriol Romeu']=[22, 15000, 'June 2015']

search_input = input('Welcome Jose. What player would you like to search for? ')
print('His Current Salary is £' + str(Chelsea_Salaries_2014[search_input][1]))
print()
new_salary = input('What would you like to change his salary to? ')

 if new_salary is 200000:
    print('Salary has been changed to £' + new_salary)
 else:
    if new_salary == >100000:
       print('This salary is ridiculous!')
试试这个:

search_input = input('Welcome Jose. What player would you like to search for? ')
print('His Current Salary is £' + str(Chelsea_Salaries_2014[search_input][1]))
print()
new_salary = int(input('What would you like to change his salary to? '))

if new_salary < 200000:
    print('Salary has been changed to £' + new_salary)
else:
    print('This salary is ridiculous!')
search\u input=input('Welcome Jose.您想搜索哪位玩家?'))
打印('他目前的工资是.'+str(切尔西工资2014[搜索输入][1]))
打印()
new_salary=int(输入('您希望将他的薪资更改为什么?'))
如果新员工工资<200000:
打印('薪资已更改为“+”新薪资)
其他:
打印(‘这工资太荒谬了!’
一些评论:

  • new_salary is 200000
    检查身份(两个对象是否相同)不相等(两个对象是否具有相同的值);你想要
    新的工资==200000
  • 这仍然是行不通的,因为
    new\u-salary
    ,就像你从
    input
    获得的一切一样,都是一个字符串;您可以使用
    new\u salary=int(输入(…)
    解决此问题
  • 您的代码实际上并没有改变字典中的工资
    Chelsea_Salories_2014
    ;为此,将新值分配回字典
    Chelsea_Salaries_2014[search_input][1]=new_Salaries

  • 您正在检查哪些值?如果新值小于或等于200000英镑,是否应更新该值?如果你被警告这是荒谬的,它应该被更新吗?你需要更仔细地思考逻辑是什么。例如,我认为您的第一个检查应该是
    请阅读。只需将代码包含在一个循环中。。。do-例如,在按下一个特定键或写下一个保留名称之前,如果new_salary是200000:
    不太可能做你想做的事-
    new_salary
    是一个字符串,在解释器中尝试
    (100000*2)是200000
    。@RodXavier,您应该已经推荐了本教程的内容。虽然例如添加
    int
    很有用,但您不需要复制整个代码来显示这一点(事实上,这样做会使发现更改变得更困难),并且说出您所做的事情会很有用。此外,这实际上并没有回答OP的问题(如何再次调用该过程)。200000是最大值。下面的任何内容都可以。谢谢这是一个真正的帮助
    def change_salary(salaries):
        search_input = input('Welcome Jose. What player would you like to search for? ')
        print('His Current Salary is £{0:,}'.format(salaries[search_input][1]))
        new_salary = int(input('What would you like to change his salary to? '))
        if new_salary <= 200000:
            salaries[search_input][1] = new_salary
            print('Salary has been changed to £{0:,}'.format(new_salary))
        else:
            print('This salary is ridiculous!')
    
    while True:
        change_salary(Chelsea_Salaries_2014)
        choice = input("Go again? y/n ")
        if choice.lower() in ('n', 'no'):
            break