添加值 SET python

我开始自学 Python,我用谷歌搜索,但找不到解决方案,


这是彩票代码的实践,我想问用户几个问题。它还在练习。


我尝试构建“add_players()”部分。


所以,我的代码现在


user_players = set()


lottery_numbers = {13, 21, 22, 5, 8}


def menu():

    user_input = input("ADD,SHOW,ROLL or QUIT  ")

    user_input=user_input.upper()


    while user_input != 'QUIT':

        if user_input == 'ADD':

            add_players()

        #elif user_input == 'SHOW':

        #   show_players()

        elif user_input == 'ROLL':

            roll()

        else:

            print('Done bye')

        user_input = input("ADD,SHOW,ROLL or QUIT ")



def add_players():

    name_input = input('Name?: ')

    numbers_input = int(input('number?: '))


    new_users = user_players.add(

        {

            'name': name_input,

            'numbers': numbers_input

        }

    )

def roll():

    for i in new_users:

        Matched1 = i['numbers'].intersection(lottery_numbers)

        print("{} matched {} ".format(i['name'], Matched1))


menu()

所以当用户选择“添加”时,


我想为我的 SET 添加值


这是这个逻辑


def add_players():

        name_input = input('Name?: ')

        numbers_input = int(input('number?: '))


        new_users = user_players.add(

            {

                'name': name_input,

                'numbers': numbers_input

            }

        )

例如,


约翰福音 1,2,3,4,5


我知道我应该使用 add 函数,但是


我错过了这部分


 new_users = user_players.add(

                {

                    'name': name_input,

                    'numbers': numbers_input

                }

            )

如何更改我的代码以添加玩家及其号码?所以当用户选择“滚动”时,它显示为“约翰匹配 5”


慕丝7291255
浏览 172回答 1
1回答

杨__羊羊

{    'name': name_input,    'numbers': numbers_input}不能添加到集合中,因为 dict 不可散列。尝试使用像元组这样可散列的数据结构来适应您的情况。例如,new_users = user_players.add((name_input, numbers_input))同样对于您的滚动功能,您可以参考new_users该功能中无法访问的功能。new_users您在add_players函数中声明的仅存在于该函数中。所以你想在其他地方声明它,比如user_players在顶部的下面,并在你去的函数中添加它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python