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

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

Python,從輸入的元組中返回整數

Python,從輸入的元組中返回整數

郎朗坤 2022-11-01 15:48:02
我正在嘗試簡化輸入命令,我不知道我是否可以解釋這一點,但它就在這里。    out = input()    planOne = int(out)    planet = listplanets[planOne]    print(planet)元組也是如此listplanets,如果我輸入一個數字,例如 0,它會返回Mercury,我如何制作它以便我可以輸入mercury并且它會返回Mercury。我想保留元組格式,并且還需要 say 中元組項的整數值var1。如果有人可以幫助我,將不勝感激。PS我知道,我是個大菜鳥XD。編輯:這就是我的元組的制作方式listplanets = ("Mercury"), (0.378), ("Venus"), (0.907), ("Mars"), (0.377), ("Io"), (0.1835), ("Europa"), (0.1335), ("Ganymede"), (0.1448), ("Callisto"), (0.1264)編輯:我現在正在使用字典,正如你們善良的人所建議的那樣。    listplanets = {        "Mercury": "Mercury",        "Mercury2": 0.378,        "Venus": "Venus",        "Venus2": 0.907,        "Mars": "Mars",        "Mars2": 0.377,        "Io": "Io",        "Io2": 0.1835,        "Europa": "Europa",        "Europa2": 0.1335,        "Ganymede": "Ganymede",        "Ganymede2": 0.1448,        "Callisto": "Callisto",        "Callisto2": 0.1264}我以這種方式構建它的原因是為了打印目的,我把它復雜化了!我不確定問另一個問題是否違反規則,但它確實與這篇文章有關。我現在正在嘗試擁有它,因此當您輸入mercury它時會輸出On the planet of Mercury,下面的代碼對我不起作用,將不勝感激更多幫助!    out = input().capitalize()    if out == listplanets:        print("On the planet of", listplanets[out])    else:        print("That was an incorrect format! Try again.")        planets()對于任何好奇的人,這是我的代碼(為什么它不是文本的原因是因為這是我的作業,反抄襲工具會說我正在復制我自己的代碼!XD):--------------------------------------前一部分沒有清楚顯示,這就是為什么那里有圖像
查看完整描述

3 回答

?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

您不能直接listplanets[out]在字典上使用切片運算符。


而且您不必一遍又一遍地重復同樣的事情"mercury": "Mercury"。將此格式用于您的字典,


listplanets = {"Mercury": 0.378, "Venus": 0.907, "Mars": 0.377, "Io": 0.1835, "Europa": 0.1335, "Ganymede": 0.1448, "Call

試試這個


out = input()

if out.isdigit():    #check if the input is digit

    print(list(listplanets.keys())[int(out)])    #gets all key values to a list and so slicing can done 

else:

    print(listplanets[out.capitalize()])    #capitalize first letter


查看完整回答
反對 回復 2022-11-01
?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

如果您需要保持元組格式,則必須像這樣遍歷數據:


# Data is given like this. First name and then value related to it.

listplanets = ("Mercury"), (0.378), ("Venus"), (0.907), ("Mars"), (0.377), ("Io"), (0.1835), ("Europa"), (0.1335), ("Ganymede"), (0.1448), ("Callisto"), (0.1264)



out = input("Planet: ")

for i in range(len(listplanets)):

    if isinstance(listplanets[i], float):

        # Skip values

        continue

    if out.lower() == listplanets[i].lower():

        print ("{}: {}".format(listplanets[i], listplanets[i+1]))

但是正如評論中提到的,使用字典要好得多。


查看完整回答
反對 回復 2022-11-01
?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

這段代碼怎么樣?


# listplanets = ('Mercury', 'Earth')



In [19]: new_listplanets = [(index, {planet.lower(): planet}) for index, planet in enumerate(listplanets)]

# [(0, {'mercury': 'Mercury'}), (1, {'earth': 'Earth'})]


In [20]: new_listplanets[0][0]

Out[20]: 0


In [21]: new_listplanets[0][1]['mercury']

Out[21]: 'Mercury'


查看完整回答
反對 回復 2022-11-01
  • 3 回答
  • 0 關注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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