【目錄】
文章目錄
- 99. for循環練習題-3種方式輸出0-9
- 1. for循環和while循環的區別
- 2. 輸出 0~(n-1)的數字
- 2.1 基礎代碼
- 2.2 自定義函數代碼
- 2.3 異常處理語句代碼
【正文】
99. for循環練習題-3種方式輸出0-9
1. for循環和while循環的區別
for循環和while循環都用于重復執行特定的代碼塊。
【for循環語法】
for 迭代變量 in 迭代對象:循環體
【while循環語法】
while 條件表達式:循環體
【區別】
while循環中,只有一個循環條件,如果為真,則執行循環體代碼;否則,跳出循環。
while循環沒有明確的計數器或循環變量,需要在循環體中手動更新條件或使用break語句來跳出循環。
有明確的條件,用while循環。
不確定條件,但明確了在某個范圍之內,用fo循環。
2. 輸出 0~(n-1)的數字
【目標任務】
在同一行內
輸出 0-n 中的前 n 個數字,輸出的每個數字后跟一個空格
。
【輸入要求】
輸入一個不大于10的正整數n。
【輸出要求】
在同一行中輸出 0~(n-1) 的數字。
【示例】
輸入:3
輸出:0 1 2
【思路解析】
輸出 0~(n-1) 的數字,0~(n-1)
這是一個范圍。
在某個范圍內,我們用for
語句來實現。
2.1 基礎代碼
【代碼示例】
n = int(input("請輸入數字 n: "))for i in range(n):print(i, end=" ")
【終端輸出】
0 1 2
終端輸入3
,輸出結果為0 1 2
。
【代碼解析】
n = int(input("請輸入數字 n: "))
input
函數獲取用戶輸入的數字,注意input函數接收的數據類型為字符串類型。
用int
函數其字符串類型的數據轉換為整數類型后賦值給變量 n
。
for i in range(n):
for循環語法:
for 迭代變量 in 迭代對象:循環體
`i`` 是迭代變量。
range(n)
是迭代對象。
使用 for 循環和 range(n) 來生成一個從 0
到 n-1
的整數序列。
range(n) 函數會生成一個包含 0 到 n-1 的序列,每次循環迭代時,將當前迭代的值賦值給變量 i。
注意注意 for 循環語句后面接一個英文冒號:
,冒號后面的循環體代碼需要有4個空格
的縮進。
注意注意 range(n)是生成的序列只到n-1
,不包含n
。
print(i, end=" ")
這是是for語句要循環執行的代碼。
注意該語句前有4個空格
的縮進。
print(i, end=" ")
將每個數字打印出來,并用空格作為分隔符。
end=" "
的作用是將默認的換行符 "\n"
替換為一個空格,這樣數字就會在同一行上輸出。
print函數語法:
print(value, …, sep=' ', end='\n', file=sys.stdout, flush=False)
一個完整的print()函數有5個參數:
end
參數設定輸出語句以什么結尾,默認是換行符\n
結尾,即輸出后會重新起一行。
注意題目要求在同一行內
,且每個數字后跟一個空格
,因此這里需要添加 end=' '
。
【沒有end參數,默認 end=‘\n’】
n = 3
for i in range(n):print(i)
【終端輸出】
0
1
2
【end=" "】
n = 3
for i in range(n):print(i, end= " ")
【終端輸出】
0 1 2
【區別】
默認時,end='\n'
輸出有換行效果。
end= " "
輸出的數字以空格作為間隔。
2.2 自定義函數代碼
【代碼示例】
def print_numbers(n):for i in range(n):print(i, end=" ")n = int(input("請輸入數字 n: "))
print_numbers(n)
【終端輸出】
0 1 2
【代碼解析】
def print_numbers(n):
def 語句定義了一個名為 print_numbers 的函數,它接收一個參數 n。
def
是關鍵字。print_numbers
函數名稱,你可以根據自己的喜歡命名。( )
一對英文圓括號。n
是自定義函數接收的參數。
注意注意,如果有多個參數,參數之間使用英文逗號,
分隔。
注意注意,如果沒有參數,也必須保留一對空的英文圓括號( )
,否則程序會報錯。
for i in range(n):print(i, end=" ")
在函數內部,我們使用 for 循環和 range(n) 來生成一個從 0 到 n-1 的整數序列,并使用 print 函數將每個數字逐個打印出來。
我們使用 end=" " 參數來指定以空格作為分隔符,使得數字在同一行上輸出。
n = int(input("請輸入數字 n: "))
用input
函數從終端獲取一個數字 n 。
print_numbers(n)
調用函數語法:
函數名(參數列表)
當你定義了一個函數后,你可以通過函數名加上一對圓括號來調用它。
括號里可以包含函數需要的參數。
如果函數沒有參數,則括號可以為空。
print_numbers
是函數名。( )
一對英文圓括號。n
實際傳入給函數的值。
2.3 異常處理語句代碼
沒有學過異常處理語句的同學,請忽略該部分內容。
要加入異常處理語句,就要先確定程序可能引發的異常錯誤。
上面的代碼異常可能發生在終端輸入。
終端輸入有以下幾種情況:
- 輸入一個正整數。
- 輸入一個負整數。
- 輸入0。
- 輸入一個小數。
- 輸入的內容非數據類型。
【輸入一個正整數:3】
def print_numbers(n):for i in range(n):print(i, end=" ")n = int(input("請輸入數字 n: "))
print_numbers(n)
【終端輸出】
0 1 2
【輸入一個負整數:-3】
def print_numbers(n):for i in range(n):print(i, end=" ")n = int(input("請輸入數字 n: "))
print_numbers(n)
終端輸入-3
,程序什么也沒輸出。
【代碼解析】
print(list(range(-3)))
【終端輸出】
[]
range函數語法為:
range`(start,end,step)`
range 函數有3個參數start,end,step
。
在 range 函數中,如果傳入的 end 參數小于等于 start 參數,并且步長 step 的符號與 start - stop 的符號相同,那么生成的序列將為空。
list(range(-3))
返回的是空列表。
for i in range(-3):
沒有可以遍歷的內容,因此for循環語句沒有任何輸出。
range函數相關知識可參考下面的鏈接:
42. range函數—生成器函數-更新
【輸入0】
def print_numbers(n):for i in range(n):print(i, end=" ")n = int(input("請輸入數字 n: "))
print_numbers(n)
【代碼解析】
print(list(range(0)))
【終端輸出】
[]
range(0)
和range(-3)
一樣,都是空的,不會有內容返回。
【輸入一個小數:0.3】
def print_numbers(n):for i in range(n):print(i, end=" ")n = int(input("請輸入數字 n: "))
print_numbers(n)
【終端輸出】
ValueError: invalid literal for int() with base 10: '0.3'
range函數接收的參數必須是整數。
當輸入小數時程序報錯。
ValueError: invalid literal for int() with base 10: '0.3'
:“傳入的值錯誤:使用十進制將 ‘0.3’ 轉換為整數時出現無效字面值”。
【輸入的內容非數據類型:p】
def print_numbers(n):for i in range(n):print(i, end=" ")n = int(input("請輸入數字 n: "))
print_numbers(n)
【終端輸出】
ValueError: invalid literal for int() with base 10: 'p'
ValueError: invalid literal for int() with base 10: p'
:“傳入的值錯誤:使用十進制將 ‘p’ 轉換為整數時出現無效字面值”。
【思路解析】
輸入一個正整數 - 程序正常運行
輸入一個負整數 - 程序沒有輸出
輸入0 -程序沒有輸出
輸入一個小數- 程序報錯 - ValueError: invalid literal for int() with base 10: '0.3'
輸入的內容非數據類型-程序報錯 - ValueError: invalid literal for int() with base 10: 'p'
【解決可能出現的異常】
輸入一個負整數 - 輸入的數<0,請重新輸入
輸入0 -輸入的數=0,請重新輸入
輸入一個小數 - 用except語句拋出ValueError異常
輸入內容非數據類型 - 用except語句拋出ValueError異常
【代碼示例:99-1.py】
def print_numbers(n): for i in range(n):print(i, end=" ") try:n = int(input("請輸入數字 n: "))while n<= 0:n = int(input("輸入的數字小于等于0,請重新輸入數字 n: "))print_numbers(n)
except ValueError as e:print("您輸入的不是正整數!", e)
源代碼請到金山文檔對應文件夾下載。
【終端輸出】
【代碼解析】
def print_numbers(n):
定義了一個名為 print_numbers
的函數,該函數接受一個參數 n
。
for i in range(n):
使用 for 循環遍歷從 0 到 n-1 的數字。
print(i, end=" ")
打印每個數字 i,并以空格作為分隔符。
try:
try…except 是捕獲異常語句。
try 語句塊中的代碼會被執行。
如果執行過程中出現了異常,就會跳轉到 except 語句塊中的代碼執行。
n = int(input("請輸入數字 n: "))
提示用戶輸入一個數字,并將其轉換為整數類型,賦值給變量 n。
while n<= 0:
當輸入的數字小于等于 0 時,進入循環。
n = int(input("輸入的數字小于等于0,請重新輸入數字 n: "))
輸入的數字小于等于 0 時,提示用戶重新輸入一個數字,并將其轉換為整數類型,賦值給變量 n。
print_numbers(n)
當輸入的數字為正整數時,執行該語句。
調用函數 print_numbers,傳入參數 n,以打印從 0 到 n-1 的數字序列。
調用函數語法函數名(參數列表)
。
except ValueError as e:
當輸入的內容不是數據類型,就會執行except語句。
-
except
:關鍵字。 -
ValueError
:異常名稱。 -
as
:關鍵字。 -
e
可選參數,表示給前面的的異常指定一個別名,該別名可根據你的喜歡命名。
print("您輸入的不是正整數!", e)
打印出錯誤消息,指示用戶輸入的不是一個正整數。
有e
可以輸出該語句:ValueError: invalid literal for int() with base 10: 'p'
。
有關異常語句的相關內容可參考下面的鏈接:
95. Python基礎教程:異常處理try…except語句