亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有哪些選項可以縮短重復的 Python 代碼?

有哪些選項可以縮短重復的 Python 代碼?

千萬里不及你 2021-11-16 10:58:55
因此,有多個重復的代碼,例如while塊和塊中的條件if-elif。我在網上閱讀和觀看了教程,其中大多數都提到重復代碼是一種不好的做法。為了提高我的編程技能,有沒有辦法縮短下面的代碼?下面的代碼基本上是獲取用戶輸入的兩種原色,并打印出混合顏色的結果。PRIMARY_COLORS = ["red", "blue", "yellow"]mixed_color = ""while True:    primary_color_1 = input("Enter the first primary color in lower case letters: ")    primary_color_1 = primary_color_1.lower()    if primary_color_1 in PRIMARY_COLORS:        break    else:        print("Error: the color entered is not a primary color.")while True:    primary_color_2 = input("Enter the second primary color in lower case letters: ")    primary_color_2 = primary_color_2.lower()    if primary_color_2 in PRIMARY_COLORS:        break    else:        print("Error: the color entered is not a primary color.")if primary_color_1 == primary_color_2:    print("Error: The two colors you entered are the same.")    exit(1)elif ((primary_color_1 == PRIMARY_COLORS[0]) and (primary_color_2 == PRIMARY_COLORS[1])) or ((primary_color_2 == PRIMARY_COLORS[0]) and (primary_color_1 == PRIMARY_COLORS[1])):    mixed_color = "purple"elif ((primary_color_1 == PRIMARY_COLORS[0]) and (primary_color_2 == PRIMARY_COLORS[2])) or ((primary_color_2 == PRIMARY_COLORS[0]) and (primary_color_1 == PRIMARY_COLORS[2])):    mixed_color = "orange"elif ((primary_color_1 == PRIMARY_COLORS[1]) and (primary_color_2 == PRIMARY_COLORS[2])) or ((primary_color_2 == PRIMARY_COLORS[1]) and (primary_color_1 == PRIMARY_COLORS[2])):    mixed_color = "green"print(f"When you mix {primary_color_1} and {primary_color_2}, you get {mixed_color}.")
查看完整描述

1 回答

?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

您可以通過使用函數來減少重復(例如用于輸入顏色) 您可以通過使用以一對顏色作為鍵和混合顏色作為值的字典來簡化顏色混合。

為避免必須處理兩種顏色排列,請使用數組來存儲它們并對數組進行排序。這允許您的字典鍵僅關注按字母順序排列的顏色對。


下面是一個例子:


PRIMARY_COLORS = ["red", "blue", "yellow"]

mixes = { ("blue","red"):"purple", ("red","yellow"):"orange", ("blue","yellow"):"green" }


def inputColor(rank):

    while True:

        color = input("Enter the "+rank+" primary color in lower case letters: ").lower()

        if color in PRIMARY_COLORS: return color

        print("Error: the color entered is not a primary color.")


colors = tuple(sorted([inputColor("first"),inputColor("second")]))

if colors[0] == colors[1]:

    print("Error: The two colors you entered are the same.")

elif colors in mixes:

    print(f"When you mix {colors[0]} and {colors[1]}, you get {mixes[colors]}.")


查看完整回答
反對 回復 2021-11-16
  • 1 回答
  • 0 關注
  • 227 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號