标签:交互 else int() 执行 zha 密码 ctrl 部分 反馈
#!/user/bin/python3
# -*- coding: utf-8 -*-
# @Time : 2020/6/5 11:40
# @Author :Test_zhangping
# @Email :981874735@qq.com
# @File :class_python函数.py
# 三步函数法
# 1.先用零散的代码写出功能要求
# 2.变成def 函数名()
# 3.想办法提高他的复用性 参数化
# 函数的定义!!
# 基本语法
# def get_money(): #冒号之后,是功能的实现代码。
# print("取了500万!!")
# print("我笑醒了!")
# print("不用上班了!")
# 调用 函数名称()
# get_money() # 不知道如何实现的,但是我只是使用了它
# ()准备几个坑,相当于告诉调用者,必须把坑填满,否则功能使用不了。
# 定义时,()放的形参,并不是具体的数据。形参用变量表达。形参用来接收 - 调用者实际传进来的数据。
# 形参个数由什么来决定? 需求。功能实现需要几个用户数据。
def get_money_V2(cardNum,passwd,count):
"""
函数功能说明
:param cardNum: 卡号
:param passwd: 密码
:param count: 取款金额
:return:
"""
# 卡号必须大于10位。
if len(cardNum) < 10:
print("卡号错了,再见!")
# 密码必须为6位。否则不玩了。
if len(passwd) != 6:
print("密码长度出错,再见!")
# 金额必须为100的整数倍。不然提示你金额出错。
if int(count) % 100 != 0:
print("金额不为100的整数倍!")
# pass # 我还没有想好写什么代码。不写呢,又要报错。使用pass占位。
# 调用
# 1、所有参数必须得传
# 2、位置传参。对应的位置传对应的值。
# 调用的时候,传的是具体的数据。叫做实参。
# get_money_V2("12345678900","4567","500")
get_money_V2("12345678900",4567,"500") # TypeError: object of type ‘int‘ has no len()
# print() # ctrl+B 看源码。
# 默认参数:如果你没有传对应的实参。我就默认我在定义时提供的值。
# 定义时,形参=值
# 默认参数在最后。
# 不限定个数。
def get_money_V3(cardNum,passwd="123456",count=1000):
# 卡号必须大于10位。
if len(cardNum) < 10:
print("卡号错了,再见!")
# 密码必须为6位。否则不玩了。
if len(passwd) != 6:
print("密码长度出错,再见!")
# 金额必须为100的整数倍。不然提示你金额出错。
elif int(count) % 100 != 0:
print("金额不为100的整数倍!")
else:
print(count)
# get_money_V3("123456789",) # 使用默认值。
# get_money_V3("12345678900","123000") # 部分使用默认值。
# # 调用时,关键字参数. 传参时,形参=实参。
# get_money_V3("12345678900",count=2000)
def get_money_V4(cardNum,*args,**kwargs):
# args是元组。()
# kwargs是字典。{key:value}
# 卡号必须大于10位。
if len(cardNum) < 10:
print("卡号错了,再见!")
print(args)
print(kwargs)
for item in args:
print(item)
# get_money_V4("12345678900")
# get_money_V4("12345678900",True,"123456",100)
# res = get_money_V4("12345678900",True,"123456",name="小简",city="长沙")
# get_money_V4("12345678900",True,"123456",name="小简",city="长沙")
# 位置参数(必传No1),默认参数(可传可不传)、不定长参数(支持传多个)
# 顺序(参考print):不定长参数 默认参数(可传可不传)
# *args,**kwargs
# 返回值。 礼尚往来。
# s = print(res)
# print(s)
def get_money_V5(cardNum,passwd="123456",count=1000):
# 卡号必须大于10位。
if len(cardNum) < 10:
print("卡号错了,再见!")
return cardNum # 遇到return就退出函数调用。
# 密码必须为6位。否则不玩了。
if len(passwd) != 6:
print("密码长度出错,再见!")
return
# 金额必须为100的整数倍。不然提示你金额出错。
if int(count) % 100 != 0:
print("金额不为100的整数倍!")
else:
# 三个条件 都满足了,我就给你吐钱!
print("条件满足,准备吐钱。。。")
return cardNum,count
# 接收返回值 变量 = 函数调用
# carn,money = get_money_V5("123456789000",count=2000) # 调用
# print(carn,money)
# res = get_money_V5("123456789000")
# print(res)
# tuple_my = "hello",True
# print(tuple_my)
res = get_money_V5("12345678") # 不满足其中一个分支。执行过程中当遇到了return,退出了函数调用。
print(res)
# 函数
# 函数是干嘛的吗??? 功能实现!
# 函数先定义再调用。
# 定义:def 函数名称():
# 实现功能
# 参数:与用户交互。用户输入。
# 在实现功能的时候,需要与外部交互。需要外部提供一定的数据,以实现功能。
# 由需求来决定,有没有参数,有几个参数。
# 参数的类型:位置参数、默认参数、不定长参数(*args,**kwargs)
# 调用的时候:必传位置参数,默认参数可传可不传,也可以用关键字传参(形参=实参)、不定长参数可以传多个。
# 函数在使用之后,给用户的输出。有输入有输出。有反馈。
# 返回值。return关键字实现。
# 1、函数无return,默认调用后的返回值为None
# 2、return 值 值可以是任意类型数据。
# 3、return后可以不跟值。表示返回为None
# 4、调用函数时,遇到return,则结束函数调用。
# 调用的时候,接收功能的输出:变量 = 函数调用
标签:交互 else int() 执行 zha 密码 ctrl 部分 反馈
原文地址:https://www.cnblogs.com/zhang-ping1205/p/13050538.html