第 5 章 if 文

5-1条件付きテスト: 一連の条件付きテストを作成し、各テストをその結果の予測結果と実際の結果とともに印刷します。作成するコードは次のようになります。

car = ‘subaru’
print(“Is car == ‘subaru’? I predict True.)
print(car == ‘subaru’)
print("\nIs car == ‘audi’? I predict False.")
print(car == ‘audi’)

実際の結果が True または False である理由が理解できるまで、詳細に調べてください。少なくとも 10 個のテストを作成し、そのうち少なくとも 5 個が True と False であることを確認します。

car = 'subaru'
print("Is car == 'subaru'? I predict True.")
print(car == 'subaru')
print("\nIs car == 'audi'? I predict False.")
print(car == 'audi')
print("\nIs car == 'bwm'? I predict False.")
print(car == 'bwm')

food = 'rice'
print("\nis food == 'rice'? I predict True")
print(food == 'rice')
print("\nis food == 'beef'? I predict False")
print(food == 'beef')
print("\nis food == 'egg'? I predict False")
print(food == 'egg')

happy = 'much_money'
print("\nis happy == 'much_money'? I predict True")
print(happy == 'much_money')
print("\nis happy == 'some_money'? I predict False")
print(happy == 'some_money')
print("\nis happy == 'little_money'? I predict False")
print(happy == 'little_money')

work = 'have_money'
print("\n is work == 'have_money'? I predict True")
print(work == 'have_money')
print("\n is work == 'no_money'? I predict False")
print(work == 'no_money')
print("\n is work == 'big_house'? I predict False")
print(work == 'big_house')

5-2追加の条件付きテスト: テストを 10 個だけ作成する必要はありません。さらに比較を試したい場合は、さらにいくつかのテストを作成し、conditional_tests.py に追加できます。以下にリストされている各ケースについて、True と False と評価されるテストを少なくとも 2 つ作成します。

  1. 2 つの文字列が等しいか等しくないかをチェックします。
  2. lower() メソッドを使用したテスト。
  3. 等価、不平等、以上、未満、以上、以下を含む数値テスト。
  4. キーワード and および or を使用してテストします。
  5. 特定の値がリストに含まれているかどうかをテストします。
  6. 特定の値がリストに含まれていないかどうかをテストします。
# 检查两个字符串相等和不等。
animal = 'summer worm'
landscape = 'ice'
print("Is animal == landscape? I predict False.")
print(animal == landscape)
phone_brand = 'apple'
computer_brand = 'apple'
print("Is phone_brand == computer_brand? I predict True.")
print(phone_brand == computer_brand)

# 使用方法lower() 的测试。
poem = "How much sorrow can you have, like a river flowing eastward in spring"
print(poem.lower())

# 涉及相等、不等、大于、小于、大于等于和小于等于的数值测试。
number = 6
print("Is number == 6? I predict True.")
print(number == 6)
print("Is number != 6? I predict False.")
print(number != 6)
print("Is number > 1? I predict True.")
print(number > 1)
print("Is number < 1? I predict False.")
print(number < 1)
print("Is number >= 7? I predict False.")
print(number >= 7)
print("Is number <= 8? I predict True.")
print(number <= 8)

# 使用关键字and 和or 的测试。
print("Is number > 0 and number == 0? False.")
print(number > 0 and number == 0)
print("Is number > 0 or number == 0? True.")
print(number > 0 or number == 0)
print("Is number < 0 and number == 0? False.")
print(number < 0 and number == 0)
print("Is number < 0 or number == 0, True.")
print(number < 0 or number == 0)
# 测试特定的值是否包含在列表中。
restaurant_food = ['yogurt', 'tomato', 'meat']
my_favorite_food = 'yogurt'
if my_favorite_food in restaurant_food:
    print(f"I'd like a cup of {
      
      my_favorite_food}")
# 测试特定的值是否未包含在列表中。
friend_favorite_food = 'coffe'
if friend_favorite_food not in restaurant_food:
    print(f"sorry, {
      
      friend_favorite_food} is not included in the menu")

5-3エイリアンの色 #1 : ゲーム内でエイリアンを撃ったと仮定して、alien_color という変数を作成し、それに「緑」、「黄」、「赤」の値を割り当てます。

  1. エイリアンが緑色かどうかを確認する if ステートメントを作成します。その場合、プレーヤーが 5 ポイントを獲得したことを示すメッセージを出力します。
  2. このプログラムの 2 つのバージョンを作成します。1 つは上記のテストに合格するバージョン、もう 1 つは失敗するバージョンです (テストが失敗した場合は出力はありません)。
alien_color = 'green'
if alien_color == 'green':
    print("You get 5 points")
    
alien_color = 'yellow'
if alien_color == 'green':
    print("You get 5 points")

5-4エイリアンカラー #2 : 演習 5-3 と同様にエイリアンカラーを設定し、if-else 構造を記述します。

  1. エイリアンが緑色の場合、プレーヤーがエイリアンを撃ったことで 5 ポイントを獲得したことを示すメッセージを出力します。
  2. エイリアンが緑色でない場合は、プレーヤーが 10 点を獲得したことを示すメッセージを出力します。
  3. このプログラムの 2 つのバージョンを作成します。1 つは if ブロックを実行し、もう 1 つは else ブロックを実行します。
alien_color = 'green'
if alien_color == 'green':
    print("You get 5 points")
else:
    print("You get 10 points")

alien_color = 'red'
if alien_color == 'green':
    print("You get 5 points")
else:
    print("You get 10 points")
You get 5 points
You get 10 points

5-5 Alien Colors #3 : 演習 5-4 の if-else 構造を if-elif-else 構造に変更します。

  1. エイリアンが緑色の場合、プレーヤーが 5 ポイントを獲得したことを示すメッセージを出力します。
  2. エイリアンが黄色の場合、プレーヤーが 10 ポイントを獲得したことを示すメッセージを出力します。
  3. エイリアンが赤の場合、プレーヤーが 15 ポイントを獲得したことを示すメッセージを出力します。
  4. エイリアンが緑、黄、赤の場合にメッセージを出力する、このプログラムの 3 つのバージョンを作成します。
alien_color = 'green'
if alien_color == 'green':
    print("You get 5 points")
elif alien_color == 'yellow':
    print("You get 10 points")
else:
    print("You get 15 points")

5-6人生のさまざまな段階: 変数 age の値を設定し、年齢の値に基づいて人生のどの段階にあるかを判断するための if-elif-else 構造を作成します。
5. 年齢が 2 歳未満の場合は、赤ちゃんであることを示すメッセージを印刷します。
6. 年齢が 2 歳以上 4 歳以下の場合は、その人が幼児であることを示すメッセージを印刷します。
7. 年齢が 4 歳以上 13 歳以下の場合は、その人が子供であることを示すメッセージを印刷します。
8. 年齢が 13 歳から 20 歳までの場合、その人が 10 代であることを示すメッセージを印刷します。
9. 年齢が 20 歳以上 65 歳以下の場合は、その人が成人であることを示すメッセージを印刷します。
10. 年齢が 65 歳以上の場合は、その人が高齢者であることを示すメッセージを印刷します。

age = 27
if age < 2:
    print("这个人是婴儿")
elif age < 4:
    print("这个人是幼儿")
elif age < 12:
    print("这个人是儿童")
elif age < 20:
    print("这个人是青少年")
elif age < 65:
    print("这个人是成年人")
else:
    print("这个人是老年人")
这个人是成年人

5-7お気に入りの果物: お気に入りの果物を含むリストを作成し、特定の果物がリストに含まれているかどうかを確認する一連の個別の if ステートメントを作成します。
11. リストに favourite_fruits という名前を付け、その中に 3 つのフルーツを含めます。
12. 5 つの if ステートメントを作成します。各ステートメントは、特定の果物がリストに含まれているかどうかを確認します。「はい」の場合、メッセージを出力します。例を次に示します。本当にバナナが好きなんですね!

favorite_fruits = ['apples', 'bananas', 'pears', 'oranges', 'mangos']
if 'apple' in favorite_fruits:
    print("You really like apples!")
if 'bananas' in favorite_fruits:
    print("You really like bananas!")
if 'pear' in favorite_fruits:
    print("You really like pears!")
if 'orange' in favorite_fruits:
    print("You really like oranges!")
if 'mango' in favorite_fruits:
    print("You really like mangos!")
You really like apples!
You really like bananas!
You really like pears!
You really like oranges!
You really like mangos!

5-8特別な方法で管理者に挨拶する: 少なくとも 5 つのユーザー名のリストを作成し、そのうちの 1 つは「admin」です。各ユーザーがサイトにログインした後に挨拶メッセージを出力するコードを作成したいと想像してください。ユーザー名のリストを反復処理し、各ユーザーに挨拶メッセージを出力します。
ユーザー名が「admin」の場合は、以下に示すような特別な挨拶メッセージを出力します。
こんにちは、管理者様、ステータス レポートをご覧になりますか?
それ以外の場合は、以下に示すような一般的な挨拶メッセージを出力します。
こんにちは、ジェイデン、再度ログインしていただきありがとうございます。

users = ['tom', 'jack', 'admin', 'jaden', 'helen']
for user in users:
    if user == 'admin':
        print(f"Hello {
      
      user}, would you like to see a status report?")
    else:
        print(f"Hello {
      
      user.title()}, thank you for logging in again.")
Hello Tom, thank you for logging in again.
Hello Jack, thank you for logging in again.
Hello admin, would you like to see a status report?
Hello Jaden, thank you for logging in again.
Hello Helen, thank you for logging in again.

5-9ユーザーがいない場合の処理​​ : 演習 5-8 で作成したプログラムに、ユーザー名のリストが空かどうかを確認する if ステートメントを追加します。

  1. 空の場合は、次のメッセージを出力します。何人かのユーザーを見つける必要があります!
  2. リスト内のすべてのユーザー名を削除します。「OK」をクリックすると、正しいメッセージが表示されます。
users = ['tom', 'jack', 'admin', 'jaden', 'helen']
if users:  # 列表中包含一个元素时返回True,列表为空时返回False
    for user in users:
        if user == 'admin':
            print(f"Hello {
      
      user}, would you like to see a status report?")
        else:
            print(f"Hello {
      
      user.title()}, thank you for logging in again.")
else:
    print("We need to find some users!")

users = []
if users:  # 列表中包含一个元素时返回True,列表为空时返回False
    for user in users:
        if user == 'admin':
            print(f"Hello {
      
      user}, would you like to see a status report?")
        else:
            print(f"Hello {
      
      user.title()}, thank you for logging in again.")
else:
    print("We need to find some users!")
Hello Tom, thank you for logging in again.
Hello Jack, thank you for logging in again.
Hello admin, would you like to see a status report?
Hello Jaden, thank you for logging in again.
Hello Helen, thank you for logging in again.
We need to find some users!

5-10ユーザー名の確認: 以下の手順に従って、Web サイトが各ユーザーのユーザー名が一意であることを確認する方法をシミュレートするプログラムを作成します。

  1. 少なくとも 5 つのユーザー名のリストを作成し、current_users という名前を付けます。
  2. 5 人のユーザー名のリストをもう 1 つ作成し、これを new_users と呼び、そのうちの 1 つまたは 2 つがリスト current_users にも含まれていることを確認します。
  3. リスト new_users を反復処理し、その中のユーザー名ごとに、それがすでに使用されているかどうかを確認します。その場合は、別のユーザー名を入力する必要があることを示すメッセージを出力し、それ以外の場合は、このユーザー名が使用されていないことを示すメッセージを出力します。
  4. 比較では大文字と小文字が区別されないようにしてください。つまり、ユーザー名「John」がすでに使用されている場合は、ユーザー名「JOHN」を拒否する必要があります。(これを行うには、現在のすべてのユーザー名の小文字バージョンを含むリスト current_users のコピーを作成する必要があります。
current_users = ['tom', 'jack', 'admin', 'Jaden', 'helen']
new_users = ['amili', 'Grace', 'admin', 'jaden', 'juli']
current_users_lower = []
for current_user in current_users:
    current_users_lower.append(current_user.lower())
for new_user in new_users:
    if new_user in current_users_lower:
        print(f"{
      
      new_user}, please change this username.")
    else:
        print(f"{
      
      new_user}, you can use this username.")

5-11序数: 序数は1位、2位などの位置を表します。1、2、3 を除き、ほとんどの序数は th で終わります。

  1. 1 ~ 9 の数字をリストに保存します。
  2. このリストを繰り返し処理します。
  3. ループ内で if-elif-else 構造体を使用して、各数値に対応する序数を出力します。出力は「1st 2nd 3rd 4th 5th 6th 7th 8th 9th」になりますが、それぞれの序数が個別の行に表示されます。
numbers = list(range(1, 10))  # list()函数可以将任何可迭代数据转换为列表类型
# numbers = [number for number in range(1, 10)]  # 使用列表解析生成一个列表
print(numbers)
for number in numbers:
    if number == 1:
        print("1st")
    elif number == 2:
        print("2nd")
    elif number == 3:
        print("3rd")
    else:
        print(f"{
      
      number}th")
[1, 2, 3, 4, 5, 6, 7, 8, 9]
1st
2nd
3rd
4th
5th
6th
7th
8th
9th

おすすめ

転載: blog.csdn.net/lijiahao1212/article/details/130406879