python学习-def1
# 4、可变参数\return
# 可变参数:参数个数不固定 。调用的时候来确定有几个参数。
# 第一种:*args 在函数内部,是以元组的形式来表示。
def my_args(*args): # 放在位置参数,默认参数之后。#arguments
print(args)
# my_args(12,34,True,False,[1,2])
# my_args("hello",True)
# my_args()
# 第二种:**kwargs 在函数内部,是以字典的形式来表达。
def my_kwargs(**kwargs):
print(kwargs)
# my_kwargs(name="xj") # key=value
# my_kwargs(name="xj",sex="female",city="changsha")
# 一个函数的定义当中,都有*args,**kwargs.先*args,再**kwargs
def my_all_args(num, *args, **kwargs):
print(num, args, kwargs)
if "my_class" in kwargs:
if kwargs["my_class"] == "python17":
print("正确!")
# my_all_args(12,23,34,45,hello="world",my_class="python17")
#
# # 解包 *元组 *(23,34,45) = 23,34,45
# my_all_args(12,*(23,34,45),hello="world",my_class="python17")
# return 函数返回
# 取钱ATM
# 取钱功能(ATM) == 吐出来==返回
# 输入数据:银行卡(8)、密码(6)、金额(3000)
# 输出数据:人民币、卡、凭证
# 有进有出
# return
# 1、代表函数返回数据
# 2、终止函数调用 。
# 在执行函数内部代码的时候,如果遇到了return关键字,意味着函数调用结束。不管后面还有没有逻辑处理。
# def get_money_from_atm(cardNo,passwd,count):
# # 判断数据是否符合要求,如果不符合,不能取钱。
# if len(cardNo) == 8 and len(passwd) == 6 and 100 < count < 3000:
# print("可以取钱,取钱金额为{}".format(count))
# return count # return 返回值
# 3、return 后面可以不用跟任何的数据。实际上代表的是返回的None 。return None
def get_money_from_atm(cardNo,passwd,count):
# 判断数据是否符合要求,如果不符合,不能取钱。直接退出函数调用
if len(cardNo) != 8 or len(passwd) != 6 or (count > 3000 or count < 100):
return
# print("可以取钱,取钱金额为{}".format(count))
# 符合取钱的条件下,返回取款金额
return count,cardNo
# 4、调用函数的时候,如果函数有返回值,要主动用变量接收函数的返回值。
# 5、return 任意类型的数据。
# 6、定义函数的时候,没有用到return.请问调用函数,有返回值?有,为None
# money = get_money_from_atm("12345678","123456",500)
# print(money)
# money,cardNo = get_money_from_atm("12345678","123456",500)
# print(money,cardNo)
# money = get_money_from_atm("123456","123456",500)
# print(money)
def buy_somethings(price,money): #price是物品的价格。money是你的钱。
if money >= price:
print("可以买!")
else:
print("买不起!!")
# 调用函数。
# buy_somethings(600,money)
# buy_somethings(200,money)
# buy_somethings(1000,money)
# def get_maxNum_in_list(num_lists):
# for index in range(len(num_lists) - 1):
# if num_lists[index] > num_lists[index + 1]:
# num_lists[index], num_lists[index + 1] = num_lists[index + 1], num_lists[index]
# print(num_lists[-1])
#
#
# list_b = [88,96,12,108,33]
# res = get_maxNum_in_list(list_b)
# print("1111111111111111111111111111111111")
# print(res)
def get_money_from_atm_v2(cardNo,passwd,count):
# 判断数据是否符合要求,如果不符合,不能取钱。直接退出函数调用
if len(cardNo) != 8 or len(passwd) != 6 or (count > 3000 or count < 100):
return
# print("可以取钱,取钱金额为{}".format(count))
# 符合取钱的条件下,返回取款金额
return count,cardNo
def buy_somethings_v2(price, money): #price是物品的价格。money是你的钱。
if money >= price:
print("可以买!")
else:
print("买不起!!")
cardNo = input("卡号:")
passwd = input("密码:")
gkd = input("取钱金额:")
price = input("物品价格为:")
# 1、取钱
res = get_money_from_atm_v2(cardNo, passwd, int(gkd))
print(res)
if res is not None:
# 2、拿着你取的钱,去买东西
buy_somethings_v2(int(price), res[0])
python学习-def1的更多相关文章
- Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
- Python学习--01入门
Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...
- Python 学习小结
python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...
- Python学习路径及练手项目合集
Python学习路径及练手项目合集 https://zhuanlan.zhihu.com/p/23561159
- python学习笔记-python程序运行
小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...
- Python学习记录day6
title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...
- Python学习记录day5
title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...
- [Python] 学习资料汇总
Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大且完善的通用型语言,已经有十多年的发展历史,成熟且稳定.Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用 ...
- Python学习之路【目录】
本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! 目录: Python学习[第一篇]python简介 Python学习[第二篇]p ...
随机推荐
- ZeroC ICE的远程调用框架 ThreadPool
ThreadPool提供Reactor/Proactor服务,并且强偶合了Reactor(反应器)/Proactor(前摄器).不同于Reactor/Proactor使用线程池 进行事件处理的设计.如 ...
- mysql定时任务(event事件)
1.event事件 事件(event)是MySQL在相应的时刻调用的过程式数据库对象.一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器” 事件和触发器类似,都 ...
- php设置随机ip访问
当我们请求一个站点的时候,http报文头会携带一些ip信息,我们通过伪造这些信息,就可以形成不同ip访问请求的效果. header的头部CLIENT-IP和X-FORWARDED-FOR我们都设置为想 ...
- 2019-9-11:渗透测试,基础学习,vim编辑器,笔记
Linux快捷路径符号说明. 代表当前目录.. 上级目录- 代表前一个工作目录~ 表示当前用户的家目录 vmware tools 用来虚拟机和宿主机之间移动数据 vim/vi编辑器vim编辑器三种模式 ...
- CSP2019,RP+=150。
csp2019游记 第一题水死了,2分钟过! 第二题被卡住了,才得了30分. 第三题背包DP,可惜了,出了考场才知道... 第四题骗到20分,也算心满意足了.. 150,省二左右,辣鸡... 反正就是 ...
- [UWP]UIElement.Clip虽然残废,但它还可以这样玩
1. 复习一下WPF的UIElement.Clip 用了很久很久的WPF,但几乎没有主动用过它的Clip属性,我只记得它很灵活,可以裁剪出多种形状.在官方文档复习了一下,大致用法和效果如下: < ...
- fastjson自定义序列化竟然有这么多姿势?
本文介绍下fastjson自定义序列化的各种操作. 一.什么是fastjson? fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSO ...
- Fragment事务管理源码分析
转载请标明出处:http://blog.csdn.net/shensky711/article/details/53132952 本文出自: [HansChen的博客] 概述 在Fragment使用中 ...
- 12-kubernetes Dashboard 认证及分级授权
目录 部署 dashboard 查看 开放访问 配置dashboard用户 1. token 令牌认证 创建一个 serviceAccount dashboard-admin 绑定 clusterbi ...
- Spring IOC容器装配Bean_基于XML配置方式
开发所需jar包 实例化Bean的四种方式 1.无参数构造器 (最常用) <?xml version="1.0" encoding="UTF-8"?> ...