python函數


1.什么是函數?函數有什么作用? 

什么是函數?
具有獨立功能的代碼塊 組織為一個小模塊,在需要的時候 調用
函數有什么作用?
提高編寫的效率、代碼的重用
讓程序更小、模塊化
 
2.函數有哪幾種參數類型,分別有什么特點? 
 
位置參數
       形參與實參一一對應
關鍵字參數
       為參數指定名稱
默認參數 
       為參數指定默認值
       將常見的值設置為參數的缺省值,從而簡化函數的調用
可變參數
       一個函數能夠處理的參數個數 是不確定的
       參數名前增加 一個 * 可以接收 元組
       參數名前增加 兩個 * 可以接收 字典
 
3.在函數調用時,位置參數和關鍵字參數的順序 

位置參數在前,關鍵字參數在后
 
4.函數的可變參數是什么?有哪幾種?為什么要使用可變參數?

一個函數能夠處理的參數個數是不確定的
參數名前增加 一個 * 可以接收 元組
參數名前增加 兩個 * 可以接收 字典
 
5.將兩個變量的值進行交換(a = 100, b = 200)
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之間,則繼續提示輸入
 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
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.請使用函數來實現
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)
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.使用函數來封裝
# 方法一:
# 定義隨機出拳
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)

 

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM