Python学習-3週目の授業の宿題


5-8管理者に特別な方法で挨拶します.少なくとも5人のユーザー名を含むリストを作成し、そのうちの1人のユーザー名は「admin」です.コードを作成し、ユーザー一人一人がウェブサイトにログインした後、挨拶メッセージを印刷することを想像してください.ユーザー名のリストを巡り、各ユーザーに挨拶メッセージを印刷します.
  • ユーザー名が「admin」の場合、「Hello admin,would you like to see a status report?」という特殊な挨拶メッセージが印刷されます.
  • それ以外の場合、「Hello Eric,thank you for logging in again」などの一般的な挨拶メッセージが印刷されます.
  • >>> staff = ['Commander', 'Hiei', 'Atago', 'Shokaku', 'Zuikaku']
    >>> for u in staff:
    ...     if u == 'Commander':
    ...             print("Hello " + u + ", would you like to see a status report?")
    ...     else:
    ...             print("Hello " + u + ", thank you for logging in again")
    ...
    Hello Commander, would you like to see a status report?
    Hello Hiei, thank you for logging in again
    Hello Atago, thank you for logging in again
    Hello Shokaku, thank you for logging in again
    Hello Zuikaku, thank you for logging in again

    5-10ユーザー名のチェック:以下の説明に従ってプログラムを作成し、Webサイトをシミュレートして、各ユーザーのユーザー名がユニークであることを確認します.
  • 少なくとも5人のユーザー名を含むリストを作成し、current_と名前を付けます.users .
  • さらに5人のユーザー名を含むリストを作成し、new_と名前を付けます.usersを使用して、リストcurrent_に1つまたは2つのユーザー名が含まれていることを確認します.usersで.
  • 遍歴リストnew_usersは、各ユーザー名について、使用されているかどうかを確認します.そうであれば、別のユーザー名を入力する必要があることを示すメッセージを印刷します.そうでなければ、このユーザー名が使用されていないことを示すメッセージが印刷されます.
  • 比較時に大きなメッセージを区別しないことを確保する.言い換えれば、ユーザ名「John」が既に使用されている場合、ユーザ名「JOHN」は拒否されるべきである.
  • >>> current_users = staff[:]
    >>> new_users = ['Mogami', 'ATAGO', 'Yukikze', 'commander', 'Agano']
    >>> for new_user in new_users:
    ...     if new_user.upper() in [u.upper() for u in current_users]:
    ...             print("Error! Username '" + new_user + "' has been used!")
    ...     else:
    ...             print("OK, username '" + new_user + "' hasn't been used.")
    ...
    OK, username 'Mogami' hasn't been used.
    Error! Username 'ATAGO' has been used!
    OK, username 'Yukikze' hasn't been used.
    Error! Username 'commander' has been used!
    OK, username 'Agano' hasn't been used.

    5-11シーケンス:シーケンス数は、1 stおよび2 ndのような位置を表す.ほとんどのシーケンスはthで終わり、1、2、3の例外しかありません.-1つのリストに数字1~9を格納する.-このリストを巡ります.-サイクルでif-elif-else構造を使用して、各数値に対応するシーケンス数を印刷します.出力内容は1 st,2 nd,3 rd,4 th,5 th,6 th,7 th,8 th,9 thであるべきであるが,各シーケンスは1行を独占する.
    >>> arr = [i for i in range(1,10)]
    >>> for i in arr:
    ...     if i == 1:
    ...             print("1st")
    ...     elif i == 2:
    ...             print("2nd")
    ...     elif i == 3:
    ...             print("3rd")
    ...     else:
    ...             print(str(i) + "th")
    ...
    1st
    2nd
    3rd
    4th
    5th
    6th
    7th
    8th
    9th

    6-12拡張:この章の例は十分に複雑で、多くの方法で拡張できます.この章の例を拡張してください.キーと値を追加したり、プログラムが解決する問題を調整したり、出力のフォーマットを改善したりします.
  • は複数の辞書を作成し、各辞書にはあるゲームのオリジナル価格と各DLCの価格
  • が格納されている.
  • さらに辞書を1つ作成し、以上の辞書をゲーム名に1つずつ対応する
  • .
  • 辞書を巡り、価格表
  • を作成します.
  • 価格表には、各ゲームの名前と、このゲームの原版が7割引、DLCが5割引された総価格
  • が含まれています.
    >>> fallout4 = {'origin': 99,
        'Far Harbor': 79,
        'Vault-Tec Workshop': 18,
        'Contraptions Workshop': 18,
        'Nuka-World': 79,
        'Wasteland Workshop': 18,
        'Automatron': 39}
    >>> witcher3 = {'origin': 127,
        'Hearts of Stone': 36,
        'Blood and Wine': 72}
    >>> division = {'origin': 208,
        'Underground': 68,
        'Survival': 68,
        'Last Stand': 68}
    >>> games = {'Fallout 4': fallout4,
        'The Witcher 3: Wild Hunt': witcher3,
        'Tom Clancy’s The Division': division}
    >>> price_list = {}
    >>> for game_name, game_info in games.items():
        total_price = 0
        for game in game_info.keys():
            if game == 'origin':
                total_price += 0.7 * game_info['origin']
            else:
                total_price += 0.5 * game_info[game]
        price_list[game_name] = total_price
    
    >>> print(price_list)
    {'Fallout 4': 194.8, 'The Witcher 3: Wild Hunt': 142.89999999999998, 'Tom Clancy’s The Division': 247.6}