博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
while 、函数、参数
阅读量:4517 次
发布时间:2019-06-08

本文共 4177 字,大约阅读时间需要 13 分钟。

while 循环

  • 一个循环语句
  • 表示当某个条件成立时就循环
  • 不知道具体循环次数,但能确定循环的成立条件的时候用while循环
while 条件表达式:    语句块

  

例1 :如果年利率为6.7%,本利是每年翻滚,则多少年后本钱会翻倍

benqian = 10000year = 0while benqian <20000:    benqian = benqian * (1+0.067)    year +=1    print("第{0}年拿了{1}快钱".format(year,benqian))

 

while ... else... 循环

while 条件表达式:    语句1else:    语句2

如例1,当钱翻倍时,用print打印出此时的心情

benqian = 10000year = 0while benqian <20000:    benqian = benqian * (1+0.067)    year +=1    print("第{0}年拿了{1}快钱".format(year,benqian))else:    print("大爷的,钱终于翻倍了")

 

函数

  • 代码的一种组织形式
  • 一个函数一般完成一项特定的功能
  • 函数使用 
    • 函数需要先定义
    • 使用函数,俗称调用

定义一个函数,只是定义的话不会执行,

  1. def 为关键字
  2. 函数名自己定义
  3. 后面括号和冒号不能省略,括号内可以有参数
  4. 函数内所有代码缩进
def func():    print("我是第一个函数")    print("我要完成一定的功能")    print("我要结束了")

函数调用:直接函数名后面跟括号

def func(): #定义函数     print("我是第一个函数") #函数用缩进分割    print("我要完成一定的功能")print("我要结束了") #这行不属于函数    func() #调用函数

函数的参数和返回值

  • 参数:负责给函数传递一些必要的数据或者信息 。形参(形式参数):在函数定义的时候用到的参数内有具体值,只是一个占位符号,成为形参 ;   实参 (实际参数):在调用函数的时候输入的值          
  • 返回值:函数的执行结果,使用return关键字,如果没有return,返回一个None,函数一旦执行return语句,则无条件返回,即结束函数的执行
#参数lisi只是一个符号,代表的是调用的时候的某一个数据 #调用的时候,会用 p 的值代替函数中所有的 lisi
def hello(lisi):     print("{0},你好".format(lisi))     print("我很好")     return '我已经和{0}打过招呼了,{0}不理我'.format(lisi) p = "张三" rst= hello(p) print(rst) 运行结果:

   张三,你好

   我很好
   我已经和张三打过招呼了,张三不理我

return 例2
def hello(lisi):    print("{0},你好".format(lisi))    return "提前结束了"    print("我很好")    return '我已经和{0}打过招呼了,{0}不理我'.format(lisi)p = "张三"rst= hello(p)print(rst) 运行结果:

  张三,你好

  提前结束了

参数

参考:

https://www.cnblogs.com/bingabcd/p/6671368.htm

参数分类:

  • 普通参数
  • 默认参数
  • 关键字参数
  • 收集参数

 

普通参数:定义的时候直接定义变量名,调用的时候直接把变量或者值放入指定位置

 

def  函数名 (参数1 ,参数2,,,)    函数体调用函数名(value1,value2,。。。。)调用的时候,具体值参考的是位置,按位置赋值

 

默认参数

  • 形参拥有默认值
  • 调用的时候,如果没有对相应形参赋值,则使用默认值
def func_name(p1=v1,p2=v2.....):      func_block#调用1func_name()#调用2 value1 = 100value2 = 200fuunc_name(value1,valve2)

练习

def reg(name,age,gender="male"):    if gender == "male":        print("{0} is {1} and he is good student ".format(name,age))    else:        print("{0} is {1} and she is a good student".format(name,age))reg("mingyue",21,)reg("xiaojing",23,"female")结果:mingyue is 21 and he is good student xiaojing is 23 and she is a good student

 

关键字参数

def  func(p1=v1,p2=v2,,,,,):    func_booy调用函数:func(p1=valve1,p2=vale2,,,,,,,)

例1:

def stu(name,age,addr):    print("I am a stident")    print("我叫{0},我今年{1}岁了,我住{2}".format(name,age,addr))n = "jingjing"a = 18addr = "我家"#普通参数,只能按照位置传递,容易出错stu(name,age,addr)

换成关键字参数

def stu_key(name="No name",age=0,addr="No addr"):    print("I am a stident")    print("我叫{0},我今年{1}岁了,我住{2}".format(name,age,addr))n = "jingjing"a = 18addr = "我家"#关键字参数,位置发生变化,不会出错stu_key(age=a,name=n,addr=addr)

 

收集参数

  • 把没有位置,不能和定义时的参数位置相对应的参数,放入一个特定的数据结构中
def func(*args):    func_boby    按照list使用方式访问安args得到传入的参数调用func(p1,p2,p3,......)
  • 参数args不是必须这样写,但是,我们推荐直接用args,约定俗成
  • 收集参数可以和其他参数共存
  • 参数args前需要由星号 *

例1:模拟一个学生进行自我介绍,但具体内容不清楚

def stu(*args):    print("Hello 大家好")    for itme in args:        print(itme)stu("liuyang",18,"北京朝阳区","wangxiaojing","dansheng")stu("zhoudashen")stu() #可以为空结果:Hello 大家好liuyang18北京朝阳区wangxiaojingdanshengHello 大家好zhoudashenHello 大家好

 

收集参数之关键字收集参数

  • 把关键字参数按字典格式存入收集参数
  • kwargs一般约定俗成
  • 调用的时候,把多余的关键字参数放入kwagrs
  • 访问kwagrs需要按字典格式访问
def func(**kwargs):    func_booy调用:func(p1=v1,p2=v2.......)

例1

def stu(**kwargs):    print("Hello 大家好")    for k,v in kwargs.items():        print(k,":",v)stu(name="wanglan",age=18,addr="北京朝阳区")print("*" * 20)stu(name="zhangsan")结果:Hello 大家好name : wanglanage : 18addr : 北京朝阳区********************Hello 大家好name : zhangsan

**kwargs 类型为字典,调用时要用items函数

def stu(name,age,*args,hobby="没有",**kwargs):    print("大家好")    print("我叫{0},今年{1}岁了".format(name,age))    if hobby == "没有":        print("我没有爱好")    else:        print("我的爱好是{0}".format(hobby))    print("=" *  20)    for i in args:        print(i)    print("=" * 20)    for k,v in kwargs.items():        print(k,"=",v)name = "liuyang"age = 19stu(name,age)stu(name,age,hobby="游泳")stu(name,age,"王晓静","刘石头",hobby="游泳",hobby2="吃饭") 结果:

大家好

我叫liuyang,今年19岁了
我没有爱好
====================
====================
大家好
我叫liuyang,今年19岁了
我的爱好是游泳
====================
====================
大家好
我叫liuyang,今年19岁了
我的爱好是游泳
====================
王晓静
刘石头
====================
hobby2 = 吃饭

 ha

转载于:https://www.cnblogs.com/wanglan/p/9242373.html

你可能感兴趣的文章
有关排序的贪心策略的一种证明思想
查看>>
异常继承限制
查看>>
POJ 1083 Moving Tables
查看>>
用Android-X86和VirtualBox打造高性能Android开发环境
查看>>
【机器学习】粗糙集属性约简算法与mRMR算法的本质区别
查看>>
【Luogu4921】情侣?给我烧了!(组合计数)
查看>>
关于html中对换行的处理
查看>>
Influence Maximazation
查看>>
二叉查找树
查看>>
screen乱码问题
查看>>
Java HashSet的元素内容变化导致的问题
查看>>
pymysql模块
查看>>
jgGrid pivot reload重新加载及刷新数据
查看>>
C# 根据空格数截取
查看>>
清爽配色16种
查看>>
海量数据 & 网站中用户积分排名问题
查看>>
MySQL 5.7.25 在Windows 7中安装的记录
查看>>
原型以及原型链的学习随笔
查看>>
2-3树
查看>>
OSI模型图文说明
查看>>