码迷,mamicode.com
首页 > 编程语言 > 详细

python函数

时间:2019-07-10 18:38:29      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:oat   user   参数   amp   形参与实参   错误   val   转化   用户名   

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,密码为 best
 
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)

python函数

标签:oat   user   参数   amp   形参与实参   错误   val   转化   用户名   

原文地址:https://www.cnblogs.com/xcc-/p/11165499.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!