1.什么是函數?函數有什么作用?
什么是函數?
具有獨立功能的代碼塊 組織為一個小模塊,在需要的時候 調用
函數有什么作用?
提高編寫的效率、代碼的重用
讓程序更小、模塊化
2.函數有哪幾種參數類型,分別有什么特點?
位置參數
形參與實參一一對應
關鍵字參數
為參數指定名稱
默認參數
為參數指定默認值
將常見的值設置為參數的缺省值,從而簡化函數的調用
可變參數
一個函數能夠處理的參數個數 是不確定的
參數名前增加 一個 * 可以接收 元組
參數名前增加 兩個 * 可以接收 字典
3.在函數調用時,位置參數和關鍵字參數的順序
位置參數在前,關鍵字參數在后
4.函數的可變參數是什么?有哪幾種?為什么要使用可變參數?
一個函數能夠處理的參數個數是不確定的
一個函數能夠處理的參數個數是不確定的
參數名前增加 一個 * 可以接收 元組
參數名前增加 兩個 * 可以接收 字典
5.將兩個變量的值進行交換(a = 100, b = 200)
a.交換之后,a = 200, b = 100
b.使用你能想到的所有方法來實現
a.交換之后,a = 200, b = 100
b.使用你能想到的所有方法來實現
a ,b = 100,200 # 方法一: a, b = b, a # 方法二: temp = a a = b b = temp # 方法三: a = a + b # a = 100 + 200 b = a - b # b = 100 + 200 - 200 a = a - b # a = 100 + 200 - 100 # 方法四: a = a * b # a = 100 * 200 b = a // b # b = 100 * 200 // 200 a = a // b # a = 100 * 200 // 100 # 方法五: a = a ^ b b = a ^ b a = a ^ b # 方法六: a ^= b b ^= a a ^= b print(a,b)
6.編寫如下程序
輸入鍵盤數字鍵(0~9),返回數字鍵上方字符
a.定義如下字典 num_str_dic = {'1': '!', '2': '@', '3': '#', '4': '$','5': '%', '6': '^', '7': '&', '8': '*', '9': '(', '0': ')'}
b.例如:鍵盤輸入5,程序輸出%
c.鍵盤輸入0~9之間的數字,程序正常輸出字符之后,退出程序
d.如果輸入的內容不在0~9之間,則繼續提示輸入
輸入鍵盤數字鍵(0~9),返回數字鍵上方字符
a.定義如下字典 num_str_dic = {'1': '!', '2': '@', '3': '#', '4': '$','5': '%', '6': '^', '7': '&', '8': '*', '9': '(', '0': ')'}
b.例如:鍵盤輸入5,程序輸出%
c.鍵盤輸入0~9之間的數字,程序正常輸出字符之后,退出程序
d.如果輸入的內容不在0~9之間,則繼續提示輸入
num_dict = {'1': '!', '2': '@', '3': '#', '4': '$', '5': '%', '6': '^', '7': '&', '8': '*', '9': '(', '0': ')'}
# 方法一: while True: user_input = input("請輸入要轉換的數字鍵(0~9): ") if user_input in num_dict: values = num_dict[user_input] print("{} 上方的符號為 {}".format(user_input, values)) break else: print("你輸入的{},不在0~9范圍內!".format(user_input)) # 方法二: user_input = input("請輸入要轉換的數字鍵(0~9): ") while not num_dict.get(user_input): print("你輸入的{},不在0~9范圍內!".format(user_input)) user_input = input("請輸入要轉換的數字鍵(0~9): ") print("{} 上方的符號為 {}".format(user_input, num_dict[user_input]))
7.編寫如下程序
從鍵盤輸入一個用戶名和密碼,判斷是否正確,如果正確則打印登錄系統成功,否則顯示 用戶名或密碼錯誤。
a.定義一個函數,接收用戶輸入的用戶名和密碼作為參數
b.正確的賬號,用戶名為 xcc,密碼為 88888888
從鍵盤輸入一個用戶名和密碼,判斷是否正確,如果正確則打印登錄系統成功,否則顯示 用戶名或密碼錯誤。
a.定義一個函數,接收用戶輸入的用戶名和密碼作為參數
b.正確的賬號,用戶名為 xcc,密碼為 88888888
def login(name, pwd): """ 用戶登錄 """ if name == "xcc" and pwd == "88888888": print("恭喜你,登錄成功!") else: print("用戶名或密碼不正確!") username = input("請輸入你的用戶名:") password = input("請輸入你的密碼:") login(username, password)
8.編寫如下程序
將用戶輸入的所有數字相乘之后對20取余數
a.用戶輸入的數字個數不確定
b.用戶輸入的每個數字之間以逗號分隔,例如:10,1,2,13,20
b.請使用函數來實現
將用戶輸入的所有數字相乘之后對20取余數
a.用戶輸入的數字個數不確定
b.用戶輸入的每個數字之間以逗號分隔,例如:10,1,2,13,20
b.請使用函數來實現
def num_count(*args): """ 將用戶輸入的所有數字相乘之后對20取余數 :param args: :return: """ num = 1 for value in args: num *= value print("計算結果為:{}".format(num % 20)) # 方法一: num = input("請輸入需要計算的數字(以逗號分隔): ") list_num = num.split(",") # 將用戶輸入的所有數字使用逗號進行分割 new_list_num = [] for item in list_num: new_list_num.append(int(item)) num_count(*new_list_num) # 調用函數,將列表拆包 # 方法二: num = input("請輸入需要計算的數字(以逗號分隔): ") list_num = num.split(",") # 將用戶輸入的所有數字使用逗號進行分割 new_list_num = [] for item in list_num: item = item.strip() if item.replace(".", "", 1).isdigit(): new_list_num.append(float(item)) else: print("輸入的{}參數有誤,忽略此參數的計算!".format(item)) num_count(*new_list_num) # 調用函數,將列表拆包
9.編寫如下程序
求圓的面積
a.傳入一個圓的半徑,將其面積返回
b.函數中的Π,可以導入import math,通過math.pi來獲取(也可以直接使用3.14)
求圓的面積
a.傳入一個圓的半徑,將其面積返回
b.函數中的Π,可以導入import math,通過math.pi來獲取(也可以直接使用3.14)
import math def circle_area(r): """ 計算圓的面積 :param r: 半徑 :return: """ area = math.pi * (r ** 2) # 計算圓的面積 area = round(area, 3) # 四舍五入,保留三位小數 print("半徑為{}的圓,面積為{}".format(r, area)) circle_radius_str = input("請輸入圓的半徑:") circle_radius_flt = float(circle_radius_str) # 將字符串轉化為浮點類型 circle_area(circle_radius_flt)
10.完成剪刀石頭布游戲
提示:
a.提示用戶輸入要出的拳 —— 石頭(1)/剪刀(2)/布(3)
b.電腦隨機出拳
c.比較勝負,顯示用戶勝、負還是平局
d.使用函數來封裝
提示:
a.提示用戶輸入要出的拳 —— 石頭(1)/剪刀(2)/布(3)
b.電腦隨機出拳
c.比較勝負,顯示用戶勝、負還是平局
d.使用函數來封裝
# 方法一: # 定義隨機出拳 import random def game(user_player, computer_player): # 用戶勝的情況: # 用戶出石頭(1),電腦出剪刀(2) # 用戶出剪刀(2),電腦出布(3) # 用戶出布(3),電腦出石頭(1) if (user_player == 1 and computer_player == 2) or (user_player == 2 and computer_player == 3) or (user_player == 3 and computer_player == 1): print("歐耶!電腦弱爆了!!!") elif computer_player == user_player: # 用戶平局的情況: # 用戶出石頭(1),電腦出石頭(1) # 用戶出剪刀(2),電腦出剪刀(2) # 用戶出布(3),電腦出布(3) print("心有靈犀,要不咋再來一盤!") else: print("不行,我要和你決戰到天亮!") computer = random.randint(1, 3) user = int(input("請輸入你要出的拳:\n石頭(1)/剪刀(2)/布(3) ")) game(user, computer) # 方法二: # 定義隨機出拳 import random def game(user_player, computer_player): # 用戶勝的情況: # 用戶出石頭(1),電腦出剪刀(2) # 用戶出剪刀(2),電腦出布(3) # 用戶出布(3),電腦出石頭(1) user_win_tup = ((1, 2), (2, 3), (3, 1)) if (user_player, computer_player) in user_win_tup: print("歐耶!電腦弱爆了!!!") elif computer_player == user_player: print("心有靈犀,要不咋再來一盤!") else: print("不行,我要和你決戰到天亮!") computer = random.randint(1, 3) user = int(input("請輸入你要出的拳:\n石頭(1)/剪刀(2)/布(3) ")) game(user, computer)