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 ...
随机推荐
- 大公司 vs 小公司,你会选哪个?
找工作跟找对象差不多,在确立关系领证前,彼此要多些了解.在了解的基础上,你再确认是否真心喜欢对方,彼此身上有没有相互吸引的特质,两个人的性格是否互补.三观是否匹配.契合度越高,往后才能相互扶持.彼此成 ...
- 使用 Topshelf 组件一步一步创建 Windows 服务 (2) 使用Quartz.net 调度
上一篇说了如何使用 Topshelf 组件快速创建Windows服务,接下来介绍如何使用 Quartz.net 关于Quartz.net的好处,网上搜索都是一大把一大把的,我就不再多介绍. 先介绍需要 ...
- 2019-10-16:maccms10后门复现利用,解析
该文章仅供学习,利用方法来自网络文章,仅供参考 Maccms10基于php+mysql的maccms,是苹果的内容管理,方便使用,功能良好,适用范围广 后门网站下载网址,是假官网:http://www ...
- ehcache监控
引入Maven依赖 <dependency> <groupId>org.terracotta.ehcachedx.com.javabi</groupId> < ...
- Mybatis日志体系
承接上一篇关于spring 5.x的日志体系,本篇看看Mybatis的日志体系及实现,Mybatis版本基于3.x. 关于mybatis的官方文档比较友好,分门别类,各有论述,如mybatis官方文档 ...
- 利用Spring AOP的通知类型以及创建通知
写在最前端 1.SpringAOP中共有六种通知类型,只要我们自定义一个类实现对应的接口,它们全都是org.springframework.aop包中的. 2.AOP的连接点可以是方法调用.方法调用本 ...
- JavaScript的定时器是如何工作的
理解JavaScript定时器工作原理对于学习JavaScript非常重要.因为JavaScript是单线程运行的,定时器使用场合少,不是很直观.下面通过三个函数来学习JavaScript如何定义,操 ...
- auto_modify_ip Shell脚本安装
#!/bin/bash # : #This author is DKS #auto modify ip of linux ############################### IP_NAME ...
- java之--加密、解密算法
0.概述 在项目开发中,我们常需要用到加解密算法,加解密算法主要分为三大类: 1.对称加密算法,如:AES.DES.3DES 2.非对称加密算法,如:RSA.DSA.ECC 3.散列算法,如:MD5. ...
- css3学习——一列固定宽度且居中
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...