Python基础day02 作业解析【6道 if 判断题、9道 循环题】
- 視頻、源碼、課件、軟件、筆記:超全面Python基礎入門教程【十天課程】博客筆記匯總表【黑馬程序員】
-
Python基礎day02【if結構、if elif 結構、while循環、for循環、Break和continue、Debug 調試、三目運算、循環 else 結構】
目錄
if
題目1 [加強訓練]
題干
訓練目標
訓練提示
參考方案
操作步驟
參考答案
題目2 [加強訓練]
題干
訓練目標
訓練提示
參考方案
操作步驟
參考答案
題目3 [加強訓練]
題干
訓練目標
訓練提示
參考方案
操作步驟
參考答案
題目4 [加強訓練]
題干
訓練目標
訓練提示
參考方案
操作步驟
參考答案
題目5 [加強訓練]
題干
訓練目標
訓練提示
參考方案
操作步驟
參考答案
題目6 [綜合訓練]
題干
訓練目標
訓練提示
參考方案
操作步驟
參考答案
循環
題目1 [加強訓練]
題干
訓練目標
訓練提示
參考方案
操作步驟
參考答案
題目2 [加強訓練]
題干
訓練目標
訓練提示
參考方案
操作步驟
參考答案
題目3 [加強訓練]
題干
訓練目標
訓練提示
參考方案
操作步驟
參考答案
題目 4 [加強訓練]
題干
訓練目標
訓練提示
參考方案
操作步驟
參考答案
題目 5 [加強訓練]
題干
訓練目標
訓練提示
參考方案
操作步驟
參考答案
題目 6 [加強訓練]
題干
訓練目標
訓練提示
參考方案
操作步驟
參考答案
題目 7 [加強訓練]
題干
訓練目標
訓練提示
參考方案
操作步驟
參考答案
題目 8 [加強訓練]
題干
訓練目標
訓練提示
參考方案
操作步驟
參考答案
題目 9 [綜合訓練]
題干
訓練目標
訓練提示
參考方案
操作步驟
參考答案
if
題目1 [加強訓練]
題干
用戶輸入年齡,如果年齡超過60歲,輸出:可以退休了。
訓練目標
if語句基礎語法的使用;
比較運算符的使用。
訓練提示
用戶輸入年齡,Python語言中,如何接收用戶輸入的數據?接收到的數據的數據類型是什么?
超過60歲,用哪種運算符?
年齡超過60歲是題目中唯一的一種情況,使用哪種if語句完成邏輯判斷?
參考方案
input()接收用戶輸入的年齡,需要注意這里接收到的數據的數據類型是str;
超過60歲,使用比較運算符中的>或>=。
操作步驟
input()接收用戶輸入的年齡,并轉換數據類型為int;
如果年齡大于60條件成立,則輸出:可以退休了。
參考答案
??
# input()接收用戶輸入的年齡數據,并轉換數據類型為int age = int(input('請輸入年齡:'))# 條件判斷:如果年齡大于60,則輸出可以退休了 if age > 60:print('可以退休了')題目2 [加強訓練]
題干
用戶輸入年齡,如果年齡超過60歲,輸出:"可以退休了", 否則,輸出:"小伙子,加油干!"
訓練目標
if…else語法
訓練提示
題目描述了2種情況(年齡超過60歲和不超過60歲),涉及到2中情況需要判斷的時候,使用哪種if語句格式?
參考方案
在Python中,能夠判斷兩種情況的時候需要使用if…else…語句。
操作步驟
input()接收用戶輸入的年齡,并轉換數據類型為int;
如果用戶輸入的年齡大于60,則輸出"可以退休了"; 條件不成立則輸出:小伙子,加油干!
參考答案
age = int(input('請輸入年齡:'))if age >= 60:print('可以退休了') else:print('小伙子,加油干!')題目3 [加強訓練]
題干
用戶輸入年齡,按照如下標準書寫程序,判斷用戶處于哪個年齡階段,并提示:您的年齡是xx: 青少年/青年/中年/老年。
年齡段劃分標準:0-17歲為青少年;18-35歲為青年;36-59為中年,60-99歲為老年。
訓練目標
elif多重判斷寫法;
邏輯運算符的使用方法。
訓練提示
本題中年齡段分為青少年、青年、中年、老年四種情況需要判斷,在Python中,判斷多種情況需要使用哪種if語句格式?
每個年齡段有最低和最高年齡限制,使用哪種運算符能完成對最低和最高年齡同時判斷?
參考方案
在Python中,判斷多種情況需要使用elif多重判斷寫法;
對每個年齡段的最低和最高年齡同時限制,需要使用邏輯運算符中的and。
操作步驟
input()接收用戶輸入的年齡,并轉換數據類型為int;
if…elif對不同的年齡段進行判斷。
參考答案
??
age = int(input("請輸入您的年齡:"))if (age >= 0) and (age < 17):print(f'您的年齡是{age}: 青少年') elif (age >= 18) and (age < 35):print(f'您的年齡是{age}: 青年') elif (age >= 35) and (age < 59):print(f'您的年齡是{age}: 中年') elif (age >= 59) and (age < 99):print(f'您的年齡是{age}: 老年')題目4 [加強訓練]
題干
坐公交:假設坐公交需要買票上車,書寫程序要求如下:
如果有票則可以上車,否則不能上車
上車后,如果有座位可以坐下,否則不能坐下。
已有程序如下,請補全程序:
# ticket取值為1表示有票,取值為0表示無票 ticket = 1# seat取值為1表示有座位,取值為0表示無座位 seat = 1訓練目標
if嵌套書寫方法
訓練提示
本題判斷流程如下:判斷能上車后,才能判斷是否能坐下,如何書寫程序完成這種判斷流程?
參考方案
當ticket == 1條件成立的時候才判斷是否能坐下,所以這里是if嵌套的寫法。
操作步驟
書寫ticket是否和1相等,如果條件成立表示可以上車;否則不能上車;
當ticket == 1條件成立的時候,書寫判斷能否坐下的if語句。
參考答案
ticket = 1 seat = 1# 待補全的程序如下 if ticket == 1:print('有票,請上車')if seat == 1:print('有空座,坐下睡覺')else:print('沒座位,站著睡') else:print('沒票,補票后才能上車')題目5 [加強訓練]
題干
用戶登錄輸入驗證碼,已知驗證碼是axyz, 驗證碼正確可以登錄,否則輸出:驗證碼錯誤。
訓練目標
比較運算符==的使用方法
訓練提示
如何判斷用戶輸入的驗證碼和axyz相同?
參考方案
判斷相等使用比較運算符==。
操作步驟
用戶輸入驗證;
if…else...判斷用戶輸入的驗證碼是否和axyz相等。
參考答案
??
sys_code = 'axyz'user_code = input('請輸入驗證碼:')if user_code == sys_code:print('驗證碼正確,可以登錄') else:print('驗證碼錯誤,不能登錄')題目6 [綜合訓練]
題干
制作用戶登錄系統:已知A用戶注冊的用戶名為aaa,密碼是123456。具體要求如下:
登錄時需要驗證用戶名、密碼、驗證碼(固定驗證碼為qwer)。
提示:系統先驗證驗證碼是否正確,正確后再驗證用戶名和密碼。
訓練目標
if…else語句格式
比較運算符== 和 邏輯運算符
if嵌套語句格式
訓練提示
如何書寫程序可以先驗證驗證碼的正確性,驗證碼正確后再驗證用戶名和密碼?
如何判斷用戶輸入的驗證碼的正確性?
如何判斷用戶名和密碼的正確性?
參考方案
先判斷驗證碼的正確性,再驗證用戶名和密碼,需要使用if嵌套寫法;
判斷用戶輸入的驗證碼/用戶名/密碼的正確性要使用到比較運算符==。
登錄功能要求用戶名和密碼必須同時正確,所以這里要使用到邏輯運算符and。
操作步驟
準備用戶名、密碼、驗證碼等數據;
用戶輸入用戶名、密碼、驗證碼;
判斷驗證碼是否為qwer;
如果驗證碼為qwer,再驗證用戶名和密碼的正確性。
參考答案
# 用戶名、密碼、驗證碼數據 sys_name = 'aaa' sys_pwd = '123456' sys_code = 'qwer'# 用戶輸入用戶名、密碼、驗證碼 user_name = input('請輸入用戶名:') user_pwd = input('請輸入密碼:') user_code = input('請輸入驗證碼:')if user_code == sys_code:print('驗證碼正確')if user_name == sys_name and user_pwd == sys_pwd:print('恭喜您,登錄成功')else:print('用戶名或密碼錯誤,請重新輸入') else:print('驗證碼錯誤,請重新輸入')代碼按照以下方式書寫,也可以:
# 用戶名、密碼、驗證碼數據 sys_name = 'aaa' sys_pwd = '123456' sys_code = 'qwer'# 用戶輸入用戶名、密碼、驗證碼 user_code = input('請輸入驗證碼:')# 先驗證驗證碼,如果正確,再輸入用戶名、密碼 if user_code == sys_code:print('驗證碼正確')user_name = input('請輸入用戶名:')user_pwd = input('請輸入密碼:')if user_name == sys_name and user_pwd == sys_pwd:print('恭喜您,登錄成功')else:print('用戶名或密碼錯誤,請重新輸入') else:print('驗證碼錯誤,請重新輸入')循環
題目1 [加強訓練]
題干
設計"過7 游戲” 程序,即在 1- 99 之間的數字中,如果數字 包含 7 或者是 7 的倍數,則輸出"過...", 否則輸出 具體的數字.
訓練目標
-
while 循環的使用
-
運算符的使用
訓練提示
-
如何取得 1-99 之間的數字
-
如何判斷一個數是7的倍數
-
如何判斷一個數是否包含 數字 7
參考方案
-
使用循環獲取 1-99 之間的數字
-
判斷一個數是否是 7 的倍數,即能否被 7 整除,在 python 可以使用% 運算符
-
判斷一個數字是否包含 7,可能個位是 7,也可能是十位數字是 7
-
判斷個位 ,使用 num % 10 == 7
-
判斷十位,使用 num // 10 == 7
-
操作步驟
-
使用循環得到 1 - 100 之間的數字
-
判斷是否是 7 的倍數和包含 7
參考答案
??
i = 1 # 使用循環得到 1-100 之間的數字 while i < 100:# 判斷是否是 7 的倍數和包含 7 , 兩者之間是或的關系,滿足一個即輸出過if (i % 7 == 0) or (i % 10 == 7) or (i // 10 == 7):print('過...')else:# 不是 7 的倍數,也沒有包含 7,直接輸出數字print(i)# 一個數字判斷結束之后,改變 i 的值i += 1for i in range(1, 100):if (i % 7 == 0) or (i % 10 == 7) or (i // 10 == 7):print('過.')else:print(i)題目2 [加強訓練]
題干
編寫代碼模擬用戶登陸。要求:用戶名為 python,密碼 123456,如果輸入正確,打印“歡迎光臨”,程序結束,如果輸入錯誤,提示用戶輸入錯誤并重新輸入
訓練目標
- while中的break的使用
訓練提示
-
定義變量,用戶名和密碼采用什么格式存儲
-
循環沒有次數限制,那么我們使用while循環的時候條件是什么?
-
判斷用戶名和密碼是否相同,我們的條件采用“or"還是“and”?
-
break的作用是什么
參考方案
-
首先我們要自己定義用戶名和密碼保存
-
如果用戶錯誤那么就需要重新循環,我們就需要采用什么方式進行循環?
-
提示用戶輸入信息
-
判斷輸入信息,根據不同的結果進行不同的執行方式
操作步驟
-
定義名戶名和密碼分別為name = "python",pwd = "123456"
-
使用循環,循環條件是True
-
提示用戶輸入用戶名和密碼
-
判斷用戶名和密碼是否正確
-
如果正確跳出循環,不正確提示輸入錯誤
參考答案
??
name = "python" pwd = "123456" while True:user_name = input("請輸入用戶名:")user_pwd = input("請輸入密碼:")if user_name == name and user_pwd == pwd:print("歡迎光臨")breakelse:print("用戶輸入錯誤!")題目3 [加強訓練]
題干
猜數字游戲:電腦產生(1-100)的隨機數,用戶進行猜測,直到猜中為止。
如果猜中,輸出:恭喜你猜中了,數字是 xx。
如果猜的數字大,輸出:猜測的數字太大了,繼續加油
如果猜測的數字小,輸出:猜測的數字有點小,再來一次
訓練目標
while 語法的使用
break 的使用
continue 的使用
訓練提示
電腦產生隨機數,Python 中使用什么函數呢?
如何接收用戶輸入的數據呢?接收到的數據類型是什么呢?
如何判斷用戶輸入的數據和電腦產生的數據大小關系呢?
如何重復的進行判斷呢?那些部分需要重復呢?
結果判斷后,該怎么操作呢?
參考方案
使用random.randint()產生隨機數
input()`接收用戶輸入的年齡,需要注意這里接收到的數據的數據類型是str;
判斷數據大小,使用 ==、>、<。
重復即循環,循環可以使用 while, 用戶的輸入和判斷需要重復,電腦產生的隨機不需要
如果相等,直接輸出,并 break, 其余的情況輸出相應的內容,并 continue。
操作步驟
通過 import random導入隨機數模塊,使用random.randint()產生隨機數。
input()`接收用戶輸入的數字,并轉換數據類型為int;
判斷用戶的輸入和電腦產生的數字之間的關系,即:相等、大于和小于。
用戶的輸入和判斷,輸出重復執行的代碼,需要放在循環中
參考答案
import random# 電腦產生隨機數 num = random.randint(1, 100)while True:# 提示讓用戶輸入my_num = int(input("請輸入1-100之間的整數:"))if my_num == num:print("恭喜你猜中了,數字是%d" % num)breakelif my_num > num:print("猜測的數字太大了,繼續加油")continue # 本代碼中可以不寫else:print("猜測的數字有點小,再來一次")題目 4 [加強訓練]
題干
猜數字游戲:電腦產生(1-100)的隨機數,用戶進行猜測。
如果猜中,輸出:恭喜你猜中了,數字是 xx,猜測了xx次。
如果猜的數字大,輸出:猜測的數字太大了,繼續加油
如果猜測的數字小,輸出:猜測的數字有點小,再來一次
如果猜測5 次,還沒有猜測出來,輸出:太弱了,測試5次還沒猜出來,不和你玩了
訓練目標
while 語法的使用
break 的使用
continue 的使用
while else 的使用
訓練提示
電腦產生隨機數,Python 中使用什么函數呢?
如何接收用戶輸入的數據呢?接收到的數據類型是什么呢?
如何判斷用戶輸入的數據和電腦產生的數據大小關系呢?
如何重復的進行判斷呢?那些部分需要重復呢?
結果判斷后,該怎么操作呢?
如何記錄用戶輸入了幾次?
循環沒有被 break 結束,想要輸出內容怎么操作?
參考方案
使用random.randint()產生隨機數
input()`接收用戶輸入的年齡,需要注意這里接收到的數據的數據類型是str;
判斷數據大小,使用 ==、>、<。
重復即循環,循環可以使用 while, 用戶的輸入和判斷需要重復,電腦產生的隨機不需要
如果相等,直接輸出,并 break, 其余的情況輸出相應的內容,并 continue。
定義變量記錄猜測的次數
達到猜測的次數后,沒有猜到使用 while else結構輸出內容
操作步驟
通過 import random導入隨機數模塊,使用random.randint()產生隨機數。
input()`接收用戶輸入的數字,并轉換數據類型為int;
判斷用戶的輸入和電腦產生的數字之間的關系,即:相等、大于和小于。
用戶的輸入和判斷,輸出重復執行的代碼,需要放在循環中
書寫 else 的內容
參考答案
??
import random# 電腦產生隨機數 num = random.randint(1, 100) # 記錄用戶輸入的次數 count = 0while count < 5:# 提示讓用戶輸入my_num = int(input("請輸入1-100之間的整數:"))count += 1if my_num == num:print("恭喜你猜中了,數字是%d, 猜測了%d次" % (num, count))breakelif my_num > num:print("猜測的數字太大了,繼續加油")continue # 本代碼中可以不寫else:print("猜測的數字有點小,再來一次") else:print("太弱了,猜測5次還沒猜出來,不和你玩了")題目 5 [加強訓練]
題干
請用戶輸入一個數,使用while計算是否為素數(素數只能被 1 和本身整除)。
訓練目標
- while...else的使用
訓練提示
-
什么是素數?
-
如何判斷?
-
什么情況下執行“else”語句
參考方案
-
需要將輸入的數字從2開始判斷一直到本身
-
除了1和本身如果可以被整除,那么就不是素數,直接跳出循環
-
如果不能全部整除,那么執行else語句
操作步驟
-
接收一個變量“num”,并且轉型為“int”類型,用于計算
-
定義變量 “i = 2”用來計算
-
使用while循環取值2~num
-
判斷是否為素數,如果可以整除那么就不是素數,直接退出循環,如果不能整除,那么繼續判斷下一個數
-
如果全部判斷完成則執行“else”輸出當前輸入的“num”是一個素數
參考答案
??
num = int(input("請輸入一個數字:")) if num == 1 or num == 0:print("%d 不是素數也不是合數" % num) else:i = 2while i < num:if num % i == 0:print("%d不是素數" % num)breaki += 1else:print("%d是素數" % num)??
# 素數,一個數字 若只能被1和本身整除,這個數字就是素數。 # 如何判斷一個數字是不是素數呢?讓這個數字從2開始整除,到數字減1結束,如果都不能被整除,則是素數 num = int(input("請輸入用來判斷的數字:")) i = 2 while i < num:if num % i == 0:# 如果出現一個數字,能整除,則說明不是素數print(f"{num} 不是素數")breaki += 1 else:print("是素數")題目 6 [加強訓練]
題干
要求用戶輸入一個字符串,遍歷當前字符串并打印,如果遇見“q”,則跳出循環。如果遇見“ ”(空格)則跳過當前輸出。
訓練目標
-
for循環的基本使用
-
break的作用
-
continue的作用
訓練提示
-
for 循環的基本語法是什么
-
for循環的作用是什么
-
break的作用?
-
continue的作用?
參考方案
-
使用for循環遍歷當前字符串
-
判斷每一字符是什么進行操作
操作步驟
-
提示用戶輸入字符串
-
便利當前字符串
-
如果是“q”則退出,如果是“ ”(空格)則跳過本次循環
-
打印字符
參考答案
??
input_str = input("請輸入一個字符串:") for i in input_str:if i == "q":breakelif i == " ":continueprint(i)題目 7 [加強訓練]
題干
使用for循環計算1 - 100 之間的累加和。
訓練目標
range()的使用
訓練提示
-
range()方法的作用
-
for循環如何使用
-
累加重新輔助
參考方案
-
使用for尋遍遍歷0~100
-
進行累加重新賦值
操作步驟
-
定義變量sum,初始化sum=0
-
遍歷0~100的所有的值
-
進行累加和
參考答案
sum = 0 for i in range(101):sum += i print(sum)題目 8 [加強訓練]
題干
請用戶輸入一個數,使用for循環計算是否為素數(素數只能被 1 和本身整除)。
訓練目標
for...else是使用
訓練提示
-
range生成2~num的可迭代對象
-
for...else的使用場景,什么時候執行else
參考方案
-
使用for循環
-
range生成2~num的可迭代對象
-
判斷是否為素數
操作步驟
-
定義變量,接收一個數字
-
定義初始循環的值為2
-
判斷是否是素數如果可以整除那么就不是素數,直接退出循環,如果不能整除,那么繼續判斷下一個數
-
如果全部判斷完成則執行“else”輸出當前輸入的“num”是一個素數
參考答案
??
num = int(input("請輸入一個數字:")) if num == 1 or num == 0:print("%d 不是素數也不是合數" % num) else:for i in range(2, num):if num % i == 0:print("%d不是素數" % num)breakelse:print("%d是素數" % num) # # 素數,一個數字 若只能被1和本身整除,這個數字就是素數。 # # 如何判斷一個數字是不是素數呢?讓這個數字從2開始整除,到數字減1結束,如果都不能被整除,則是素數 # num = int(input("請輸入用來判斷的數字:")) # i = 2 # while i < num: # if num % i == 0: # # 如果出現一個數字,能整除,則說明不是素數 # print(f"{num} 不是素數") # break # i += 1 # else: # print("是素數")# 素數,一個數字 若只能被1和本身整除,這個數字就是素數。 # 如何判斷一個數字是不是素數呢?讓這個數字從2開始整除,到數字減1結束,如果都不能被整除,則是素數 # num = int(input("請輸入用來判斷的數字:")) num = 100 while num <= 200:i = 2while i < num:if num % i == 0:# 如果出現一個數字,能整除,則說明不是素數# print(f"{num} 不是素數")breaki += 1else:print(num, end=" ")num += 1題目 9 [綜合訓練]
題干
分別使用for循環和while循環,求100~200的所有素數。
訓練目標
-
循環嵌套的使用
-
if條件判斷
-
while...else for...else的使用場景
訓練提示
-
題目8和題目5分別使用for和while循環判斷一個值是否為素數
-
增加外層循環
參考方案
-
采用循環嵌套形式判斷每一個值
-
參考題目10和題目7
操作步驟
-
確定循環次數
-
內層循環判斷里面的每一個數是否為素數
-
如果不是break跳出本次循環,如果是那么都判斷完成后執行else語句
-
while循環注意自增問題
參考答案
# 定義初始值 num = 100 # 外層循環控制100 到 200 的值 while num <= 200:# 判斷一個數據是否是素數,從2開始整除到數據值-1為止,如果可以整除,則不是素數i = 2# 內層循環控制除數while i < num:# 判斷是否可以被整除if num % i == 0:# 可以被整除,則不是素數print("%d不是素數" % num)# 裝置內層循環,不需要再判斷break# 改變i 的值i = i + 1else:# 內層循環結束,沒有被break終止,則說明是素數print("%d是素數" % num)# 內層循環結束,當前數據判斷結束,繼續下一個數據判斷num = num + 1 # 外層循環控制100 到 200 的值 for num in range(100, 201):# 判斷一個數據是否是素數,從2開始整除到數據值-1為止,如果可以整除,則不是素數# 內層循環控制除數for i in range(2, num):# 判斷是否可以被整除if num % i == 0:# 可以被整除,則不是素數print("%d不是素數" % num)# 裝置內層循環,不需要再判斷breakelse:# 內層循環結束,沒有被break終止,則說明是素數print("%d是素數" % num)欲不可縱,縱欲成災。樂不可極,樂極生哀,可謂知養生矣。——明·萬全《萬全養生四要》
總結
以上是生活随笔為你收集整理的Python基础day02 作业解析【6道 if 判断题、9道 循环题】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL学习笔记02【SQL基本概念与
- 下一篇: Python基础day03【字符串(定义