日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

十一、Python第十一课——用户输入和另一种循环(While)

發布時間:2025/3/8 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 十一、Python第十一课——用户输入和另一种循环(While) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419

?

?

學了這么久的Python,大家肯定會好奇,不是說機器學習嗎?不是人機交互嗎?不是人工智能嗎?怎么我學了Python都十節課了,還沒有寫出能和電腦交互的程序?不要著急,第十一節課后,我們學習Python的內容就逐漸變難。當然,從這節課開始,我們將會寫一些要求用戶輸入的一些程序,簡稱交互式程序。

目錄

一、輸入函數input()和數據類型轉換函數int()

1、input()函數的些許知識?

2、int()函數的些許知識

?二、while循環

1、while循環講解及舉例

2、在while循環中使用標志

3、break和continue

4、用while循環處理列表和字典

A、在列表之間移動元素

B、刪除包含特定值的所有列表元素

C、使用while循環填充字典


一、輸入函數input()和數據類型轉換函數int()

函數用途
input()獲取用戶輸入的字符串
int()將用戶輸入的數值轉換為整型

1、input()函數的些許知識?

我們接下來編寫第一個交互式程序:(我輸入的是“I love Python!”(忽略綠色)電腦回復給我的也是這樣的一句話。)

# 定義一個變量,存儲用戶輸入的字符串 # input()函數括號內的話將會被打印顯示,并期待用戶的輸入。 message=input("Tell me something, and I will repeat it back to you: ") print(message)

對上面的代碼進行一個解釋:函數input()接受一個參數:即要向用戶顯示的提示或說明,讓用戶知道該如何做。在這個例子中,Python運行第一行代碼時,用戶看到提示(讓輸入一句話),程序等待用戶輸入,并在用戶按回車鍵后繼續運行。輸入的字符串存儲在變量message中,最后被print()函數輸出。

我們學習input()函數之后,就會接觸到越來越多的需要用戶輸入的程序,因此輸出一個用戶提示信息是有必要的。例如:

name = input("Please enter your name: ") print("Hello, " + name + "!" )

如果提示超過一行,可以將提示存儲在一個變量中,再將該變量傳遞給函數input()。如此一來,即便提示超過一行,input()語句也非常清楚。例如:

prompt = 'If you tell us who you are,we can personalize the messgaes you see.' prompt += '\nWhat is your first name? ' name = input(prompt) print('\nHello,' + name + '!')

上面這個例子演示了一種創建多行字符串的方式,第1行將信息的前半部分存儲在變量prompt中,在第2行中,運算符+=將“What is your first name ? ”追加到prompt中?

2、int()函數的些許知識

這里我們使用一個例子來引出int()函數:

age = input("How old are you? ") # 提示用戶輸入用戶的年齡 age += 2 # 將用戶輸入的年齡增加2 print(age) # 輸出現在的age

?

為什么會報錯呢?就寫了三行代碼就報錯了?21 + 2 = 23,直接輸出23不就好了嗎?這就是我文章開頭說到的input()函數會將用戶輸入的內容以字符串的形式保存起來,字符串+2=?,所以編譯器會報錯。那為了解決這個問題,我們可以用int()函數來進行對用戶年齡的獲取。改正代碼如下所示:

age = input("How old are you? ") # 提示用戶輸入用戶的年齡 age = int(age) # 將用戶輸入的年齡字符串轉換為整形 age = age + 2 print(age) #輸出現在的age

除此以外,我們還有其他眾多的轉換函數,例如float(),我后期也會介紹。在第一節的最后,以求模運算符結束?!?”就是求模運算符,它將兩個數相除并返回余數。所以當一個數可被另一個數整除時,余數就為0了,所以我們可以利用%來判斷一個數是奇數還是偶數,下面的代碼我們就使用了int()函數將用戶輸入的數值字符串轉換為整形,在輸出時,我們又使用str()將int型轉換為字符串類型,用于輸出:

number = input("Enter a number, and I will tell you if it is even or odd: ") # 提示用戶輸入一個數字,并獲取用戶的輸入 number = int(number) # 將用戶的輸入轉換為數字,整形 if number % 2 == 0: # 判斷數字是否為偶數,是的話就輸出下面一條語句print("\nThe number " + str(number) + " is even.") else: # 數字為奇數print("\nThe number " + str(number) + " is odd.")


二、while循環

1、while循環講解及舉例

一看到循環,就想起了之前學過的for循環,那while循環和for循環有什么區別呢?for循環習慣用于遍歷集合中的每個元素,而while循環不斷地運行,直到不滿足指定的條件為止。先舉個例子:

number = 1 # 給number初始值 while number <= 5: # 循環語句:number不大于5別想從循環出來 print(number)number += 1

上述代碼預先設置了循環的結束條件,那么我們是否可以先讓程序運行起來,通過檢查用戶的輸入來決定程序是否要繼續?答案是肯定的,要不然我們開始游戲后,如何退出游戲呢?

prompt ="\nTell me something, and I will reapt it back to you: " prompt += "\nEnter 'quit' to end the program. " # 以上代碼就是多行提示輸出的又一例子 message = "" # 將message設置為空的字符串,讓編譯器首次檢驗的時候有可供檢查的東西 while message != 'quit':message = input(prompt)print(message)

上述2個示例代碼在使用while循環時,都使用了條件判斷,第一個是number不大于5就一直循環,第二個是只要用戶不輸入“quit”,程序就一直運行。那之前學的if條件語句中的檢驗多個條件的方法在這里還是否適用呢?我們改寫一下第二個示例代碼,讓用戶在輸入quit和exit中的任何一個時才退出程序:

prompt ="\nTell me something, and I will reapt it back to you: " prompt += "\nEnter 'quit' or 'exit' to end the program. " # 以上代碼就是多行提示輸出的又一例子 message = "" # 將message設置為空的字符串,讓編譯器首次檢驗的時候有可供檢查的東西 while (message != 'quit' and message != 'exit'):# 加不加括號都一樣message = input(prompt)print(message)

細心的同學可能就發現了,誰退出游戲時,點了退出還會顯示“退出游戲”四個字。我們可以使用if條件語句,如果輸入的是“quit”或者“exit”就打印了。

2、在while循環中使用標志

?

上述讓程序是否繼續的條件有兩個,那么有多個時,我們將會如何組織代碼,使其更加簡約易讀呢?那就是使用標志。在要求很多條件同時滿足才能繼續運行的程序中,我們可以定義一個變量,用于判斷整個程序是否還處于活動狀態。這個變量被稱為標志,也就是這個程序的信號燈:可以讓程序在標志為True時繼續運行,并在任何事件導致標志的值為False時讓程序停止運行。如此一來,在while語句中就只需要檢查一個條件,把全部測試放在其他地方,進而達到代碼美觀、易讀、功能還完整的目的。我們還以輸入“quit”結束的那個程序為例:

prompt ="\nTell me something, and I will reapt it back to you: " prompt += "\nEnter 'quit' or 'exit' to end the program. " # 以上代碼就是多行提示輸出的又一例子active = True while active: # 表示當active為True時,就循環message = input(prompt) # 讓用戶輸入字符串if message == 'quit': # 如果用戶輸入quitactive = False # 改變標志的狀態else: # 否則還是輸出messageprint(message)

假設,我們把“如果用戶輸入的是exit,也退出程序”轉變為代碼加進去,只需要在if語句下增添elif語句即可。由此可見,這段程序的可擴展性還是比較強的。

3、break和continue

Python里的break和continue與C語言里的break和continue是一樣的:

break:要立即退出while循環,不再運行循環中余下的代碼,也不管條件測試的結果如何,可使用break語句。

continue:返回到循環開頭,并根據條件測試結果決定是否繼續執行循環,可使用continue語句。舉例如下:

prompt = "\nPlease enter the name of a city you have visited: " prompt += "\n(Enter 'quit' when you are finished.)"while True:city = input(prompt)if city == 'quit':breakelse:print("I would love to go to " + city.title() + "!")

?

注:在任何Python循環中都可使用break語句。例如可以使用break語句來退出遍歷列表或字典的for循環。

current_number = 0 while current_number < 10:current_number += 1if current_number % 2 ==0:continueprint(current_number)

建議:每寫一個循環語句都要格外注意,避免死循環、避免縮進問題。如果不小心掉進了死循環,那么可以使用“Ctrl+C”或關掉終端窗口來結束死循環的程序。

4、用while循環處理列表和字典

?我們之前學過使用for循環對列表、字典進行增刪改查,現學的while同樣也可以完成上述操作。for循環是一種遍歷列表的有效方式,但在for循環中不應修改列表,否則將導致Python難以跟蹤其中的元素。要在遍歷列表的同時對其進行修改,可使用while循環。通過將while循環同列表和字典結合起來使用,可收集、存儲并組織大量輸入,供以后查看和顯示。

A、在列表之間移動元素

問題情景:A列表包含新注冊但還未驗證的網站用戶,驗證這些用戶后,將他們移到另一個已驗證用戶列表中:

# 首先創建一個待驗證用戶列表以及一個用于存儲已驗證用戶的空列表 unconfirmed_users = ['alice','brian','candace'] confirmed_users = [] # 使用while循環驗證每個未驗證的用戶,直到沒有為止 # 驗證一個用戶之后立馬將其追加到已驗證用戶的列表里 while unconfirmed_users:current_user = unconfirmed_users.pop()print("Verifying user: " + current_user.title())confirmed_users.append(current_user) # 顯示所有已驗證的用戶 print("\nThe following users have been confirmed:") for confirmed_user in confirmed_users:print(confirmed_user)

?

?細心觀察,三個人的名字在兩個列表間實現了移動,他們之間的相對位置也發生了變化,這是因為使用了pop()方法(從第一個列表的末尾開始刪除用戶,append()方法增加用戶時又將剛剛彈出的用戶增加到列表的第一個位置)

B、刪除包含特定值的所有列表元素

?在前面的課程中,我們學習了remove()方法來刪除列表中的特定值,這種方法只適合待刪除元素在列表中只出現一次的情況。如果待刪除元素在列表中出現多次,那么就得借助while循環語句。例如:

要刪除列表中所有的“cat”

pets = ['dog','cat','dog','goldfish','cat','rabbit','cat'] print(pets) while 'cat' in pets:pets.remove('cat') print(pets)

?有人就說用一個for循環代替while循環也能實現。實現是絕對沒問題的,但是具體過程還是有很大區別的:while循環是只要發現列表里還有“cat”(發現的過程似乎是遍歷一次列表),就繼續循環,執行remove(),也就是說針對上面代碼舉的例子,while循環代碼至少遍歷列表三次(因為有三個cat);而for循環是按照列表中的元素一個一個找過去,是“cat”就刪掉,不是就繼續循環,直到列表末尾。(for循環只遍歷了一次列表)(以上是我個人看法,歡迎指正)

C、使用while循環填充字典

for循環可以對字典進行“增”,while循環也不甘示弱。例如下面一段調查信息的程序:

responses = {}# 設置一個標志,指出調查是否繼續 polling_active = Truewhile polling_active:#提示輸入被調查者的名字和回答name = input("\nWhat is your name? ")response = input("which moutain would you like to climb someday? ")# 將答卷存儲在字典中responses[name] = response# 看看是否還有人要參加調查repeat = input("Would you like to let another person respond?(yes/ no) ")if repeat == 'no':polling_active = False # 調查結果,顯示結果 print("\n--- Poll Results ---") for name,response in responses.items():print(name + " would like to climb " + response + ".")

如果忘記了字典的增刪改查,就復習一下,尤其是items(),容易被遺忘。

?

總結

以上是生活随笔為你收集整理的十一、Python第十一课——用户输入和另一种循环(While)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩欧美黄 | 爆操巨乳 | 在线免费观看的av | 黑人玩弄人妻一区二区三区免费看 | 清冷男神被c的合不拢腿男男 | 黄色一级视频免费 | 日本不卡一区二区三区 | 久久精品一区二区在线观看 | 荔枝视频污 | 亚洲偷| 性插动态视频 | 国内精品久久久久久久久久久 | 在线色图| 国产精品久久久网站 | 国产乱论视频 | 成人交性视频免费看 | 人妻一区在线 | 麻豆md0077饥渴少妇 | 少女与动物高清版在线观看 | 日产精品久久久久 | 国产jk精品白丝av在线观看 | av片手机在线观看 | 亚洲va在线∨a天堂va欧美va | 99热热 | 国内一区二区 | 毛片看看| 国产美女网站 | 国产精品传媒 | 卡一卡二av | 国产人妻一区二区三区四区五区六 | 国产高清精品一区二区三区 | 欧美天堂| 精品无码一区二区三区的天堂 | 少妇一级淫片免费看 | 亚洲黄色精品 | 色五夜 | 欧美久久久 | 黄色的网站免费观看 | 日本夫妻性生活视频 | 名人明星三级videos | 国产又粗又猛又爽又黄91 | 干欧美 | 无码国产精品高潮久久99 | 九九九在线 | 毛片2| 国产精品视频一二三 | 婷婷色中文字幕 | 天天操夜夜操夜夜操 | 欧美成人精品一区二区免费看片 | 国产精品福利小视频 | 帮我拍拍漫画全集免费观看 | 97超级碰碰人妻中文字幕 | 久久99精品久久久水蜜桃 | 极品人妻一区二区三区 | 成人精品一区二区三区电影黑人 | 免费看色 | 美女视频免费在线观看 | 自拍啪啪 | 午夜香蕉视频 | 一本一道av无码中文字幕 | 最新久久久 | av鲁丝一区鲁丝二区鲁丝三区 | 色中文| jizzjizz中国精品麻豆 | 国产一区二区三区视频免费观看 | 中日韩精品视频 | 伊人影视久久 | 久久精品国产亚洲a | 在线视频网站 | 国产精品999| 黄色成人在线网站 | 久草资源在线 | 亚洲av永久无码精品 | 国产女人18毛片水18精 | 欧美成人免费播放 | 美日韩在线观看 | 国产成人av在线 | 国产日韩一区二区 | wwwww国产 | 99热在线播放 | 久久视频精品在线 | 操比网站 | 台湾佬中文字幕 | 一区二区三区四区在线视频 | 国内一区二区视频 | 一级片播放 | 人妻一区二区三区在线 | 成人av一区 | 91狠狠操| 久久中文娱乐网 | 91插插插永久免费 | 免费看美女隐私网站 | 最好看的2019年中文视频 | 国产高清成人久久 | 涩涩视屏| 婷婷导航 | 色狠久| 国产男同gay网站 | 九九夜 |