while 循环

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

  

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

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

while ... else... 循环

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

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

benqian =
year =
while benqian <:
benqian = benqian * (+0.067)
year +=
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
#调用1
func_name() #调用2
value1 =
value2 =
fuunc_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",,)
reg("xiaojing",,"female") 结果:
mingyue is and he is good student
xiaojing is 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 =
addr = "我家"
#普通参数,只能按照位置传递,容易出错
stu(name,age,addr)

换成关键字参数

def stu_key(name="No name",age=,addr="No addr"):
print("I am a stident")
print("我叫{0},我今年{1}岁了,我住{2}".format(name,age,addr)) n = "jingjing"
a =
addr = "我家"
#关键字参数,位置发生变化,不会出错
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",,"北京朝阳区","wangxiaojing","dansheng")
stu("zhoudashen")
stu() #可以为空 结果:
Hello 大家好
liuyang 北京朝阳区
wangxiaojing
dansheng
Hello 大家好
zhoudashen
Hello 大家好

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

  • 把关键字参数按字典格式存入收集参数
  • 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=,addr="北京朝阳区")
print("*" * )
stu(name="zhangsan") 结果:
Hello 大家好
name : wanglan
age :
addr : 北京朝阳区
********************
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("=" * )
for i in args:
print(i)
print("=" * )
for k,v in kwargs.items():
print(k,"=",v)
name = "liuyang"
age =
stu(name,age)
stu(name,age,hobby="游泳")
stu(name,age,"王晓静","刘石头",hobby="游泳",hobby2="吃饭") 结果:

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

ha

while 、函数、参数的更多相关文章

  1. Delphi_08_Delphi_Object_Pascal_基本语法_06_函数参数

    发现Delphi中关于函数参数部分的内容还是比较多的,暂时说到这篇随笔为止吧,以后再继续讨论一下函数的参数部分的内容. 一 工程文件 program DefaultParameter; {$APPTY ...

  2. 深入理解javascript函数参数与闭包(一)

    在看此文章,希望先阅读关于函数基础内容 函数定义与函数作用域 的章节,因为这篇文章或多或少会涉及函数基础的内容,而基础内容,我放在函数定义函数作用域 章节. 本文直接赘述函数参数与闭包,若涉及相关知识 ...

  3. php与js中函数参数的默认值设置

    php函数参数默认值设置: <?phpfunction test($val=3){   echo $val."<br/>";}test(11);test();?& ...

  4. JS中的函数(二):函数参数(你可能不知道的参数传递)

    前言: 函数分为有参有返回值,有参无返回值,无参无返回值,无参有返回值:那么对于无参数的函数你想使用函数的调用怎么办呢?如果你想封装一个代码,实现多种功能,但是形参大于实参或者实参大于形参又该如何?本 ...

  5. Python函数参数学习笔记

    1.Python中函数参数类型可分为五种: f(x):x为位置参数: f(x,n=2):n为默认参数,调用时可以省略参数n,如f(5); f(*args):*args表示把args这个list或tup ...

  6. C语言指针变量作为函数参数

    0x01 指针变量作为函数参数的作用是:将一个变量的地址传送到另一个函数中. 0x02 简单的例子:虽然都能实现功能,但意义不同. 正确的写法: #include <stdio.h> vo ...

  7. 深入理解javascript函数系列第二篇——函数参数

    × 目录 [1]arguments [2]内部属性 [3]函数重载[4]参数传递 前面的话 javascript函数的参数与大多数其他语言的函数的参数有所不同.函数不介意传递进来多少个参数,也不在乎传 ...

  8. Python函数参数默认值的陷阱和原理深究"

    本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...

  9. 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数

    [源码下载] 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函 ...

  10. java函数参数默认值

    java函数参数默认值 今天,需要设定java函数参数的默认值,发现按照其它语言中的方法行不通 java中似乎只能通过函数的重载来实现 函数参数默认代码

随机推荐

  1. springboot系列十、springboot整合redis、多redis数据源配置

    一.简介 Redis 的数据库的整合在 java 里面提供的官方工具包:jedis,所以即便你现在使用的是 SpringBoot,那么也继续使用此开发包. 二.redidTemplate操作 在 Sp ...

  2. mysql系列十三、mysql中replace into和duplicate key的使用区

    一.创建测试表 1.创建唯一索引"b" CREATE TABLE `test2` ( `id` int(10) NOT NULL AUTO_INCREMENT, `a` varch ...

  3. 记录entityframework生成的sql语句

    Interceptors (EF6.1 Onwards) Starting with EF6.1 you can register interceptors in the config file. I ...

  4. GBDT学习

    白话GBDT: https://blog.csdn.net/qq_26598445/article/details/80853873 优点: 预测精度高 适合低维数据 能处理非线性数据,该版本GBDT ...

  5. 基于MFC的ActiveX控件开发教程------------浏览器插件之ActiveX开发

    浏览器插件之ActiveX开发(一) 一般的Web应用对于浏览器插件能不使用的建议尽量不使用,因为其涉及到安全问题以及影响用户安装(或自动下载注册安装)体验问题.在有特殊需求(如涉及数据安全的金融业务 ...

  6. MyEclipse2014安装插件的几种方式(适用于Eclipse或MyEclipse其他版本)

    农历 乙未 羊年 十一月初九 周六 2015年12月19日 14:29 编辑者:刘军 标题: 服务器的搭建请参考该文:<Win7 x64 svn 服务器搭建> ============== ...

  7. python之鸭子类型

    python不支持多态,也不用支持多态,python是一种多态语言,崇尚鸭子类型. 在程序设计中,鸭子类型是动态类型的一种风格,不是由继承特定的类或实现特定的接口,而是当前的方法和属性的集合决定,鸭子 ...

  8. ZOJ 3229 Shoot the Bullet(有源汇上下界最大流)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3442 题目大意: 一个屌丝给m个女神拍照,计划拍照n天,每一天屌丝给 ...

  9. 双线程 线性dp 传纸条

    /* 两种做法:一是暴力dp[i][j][k][l] 二是以走的步数k作为阶段, dp[k][i][j]表示走到第k步,第一个人横坐标走到i,第二个人横坐标走到j 可以以此推出第第一个人的坐标为[i, ...

  10. Python进行MySQL数据库操作

    最近开始玩Python,慢慢开始喜欢上它了,以前都是用shell来实现一些自动化或者监控的操作,现在用Python来实现,感觉更棒,Python是一门很强大的面向对象语言,所以作为一个运维DBA或者运 ...