侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

详解python while 函数及while和for的区别

Python  /  管理员 发布于 7年前   162

1.while循环(只有在条件表达式成立的时候才会进入while循环)

while 条件表达式:
  pass

while 条件表达式:
  pass
else:
  pass

不知道循环次数,但确定循环条件的时候用while

# 如果说年利率是6%,存入1000到第几年本钱翻倍  money = 10000 year = 0 while money < 20000:   money = money*(1+0.06)   year += 1 print('第 {0} 年本钱翻倍了,总共有 {1} 元'.format(year,money))

1.函数 :一个函数实现一个功能

规则:def  函数名([形参]):
          pass
命名规则:注意不要使用大驼峰,默认小驼峰,大驼峰命名只用于类的命名

  1.函数的参数与返回值        返回值:函数执行的结果1.函数参数的定义与使用

def hello(name):  print("你好吗,{}".format(name))  return "函数中止执行,后面不管有多少句代码都不会被执行"  print("这句话不会被执行")person = 'Tom'hello(person)rst = hello("John") #函数也可以这么调用,如果有返回值会将返回值赋值给变量

函数的返回值

  表示函数执行的结果,如果函数中没有return系统自动返回None,函数一旦执行return语句,则无条件返回,意味着return下面的语句将不再执行,只要遇到return,函数自动中止执行。
参数详解:普通参数 默认参数 收集参数 关键字参数
  - 普通参数:定义的时候直接定义变量名,平时用的最多的参数
                  def 函数名(参数1, 参数2, ....):
              调用: 函数名(参数1, 参数2, ...)
  - 默认参数: 函数中默认给定义好的参数,参数有默认值
                  def 函数名(value1, canshu = value2):  其中的canshu = value2 就是默认参数,典型的例子就是 print(value1, value2, ...,sep=" ", end= '\n',..)

   调用的时候,如果没有特殊要求 ,默认参数可以不用进行传值

def hello(name, gender = 'boy'):  if gender = 'boy':    print("welcome,{0},you are a good {1}".format(name, gender))  else:    print("welcome,{0},you are a good {1}".format(name, gender))hello('Tom')hello('Siri', 'girl') - 关键字参数:注意与默认参数区分,好处就是实参与形参位置可以不用一一对应        def fun(p1=v1, p2=v2, ...):pass       fun(p1=value1, p2=value2, ....)def student(name=None, age=None, gender=None):  print("我是一个学生,我的名字是 {0}, 我今年 {1} 岁, 我是个 {3}生")name = 'Tom'age = 12gender = '男'student(age=age, gender=gender, name=name)           - 收集参数:   把没有位置,不能和定义时的参数位置相对应的参数,放入一个特定的数据结构中   def fun(*args):     pass  调用:fun(p1, p2, p3, ...)参数名可以不用 args,但推荐这么用,约定俗成. 注意前面的 " * " 不能省略, 调用的时候可以不传入参数值收集参数传参的时候不能直接传入关键字参数,例如 fun(name='Tom'Z)def stu( *args ):  print("大家好, 简单自我介绍一下:")  for i in args:    print(i, end='=>')stu("小明", 18, "山东省")stu('小红')        - 收集参数之关键字收集参数把关键字参数以字典的形式放入收集参数, 访问kwargs需要用访问字典的方式    def fun( **kwargs ):      pass #调用  fun(p1=v1, p2=v2, ....)          

2.各种类型参数混合使用的顺序问题:

 使用的规则一般是:普通参数 关键字参数优先 

定义的时候一般找普通参数 , 收集参数(args),关键字参数, 收集参数(kwargs)

def stu(name, age, *args, hobby='没有', **kwargs):  print('大家好')  print("我叫 {0}, 我今年 {1} 大了.".format(name, age))  if hobby == '没有':    print('我没有爱好')  else:    print("我的爱好是{0}".format(hobby))  for i in args:    print(i)  for k, v in kwargs.items():    print(k, ' ------', v)name = 'tom'age = 19stu(name, age, '王晓静', '小红', hobby='sing', addr='beijing', phone='123213')def stu(**kwargs):    print(大家好,我先自我介绍一下)    # 对于字典的访问,Python2 与 Python3 有区别    for k,v in kwargs.items():      print(k,'--------', v)stu(name='wangxiaojjing', age=10, addr='北京')  收集参数的解包问题(unpack) - 把参数放入list或者dict中,直接把list/dict中的值放入收集参数中 def stu(*args):   for i in args:    print(i) l = list() l.append('aafd') # 在列表的最后插入值 l.append(1321) stu(l) # 打印的结果是['aafd', 1321] 不是理想中的结果 stu(*l) # 解包符号 * 加上以后就是理想中的结果对于dict类型的收集参数一样可以解包,但是需要加两个 *,## 返回值函数和过程的区别就是: 有无返回值,如果函数中没有显式返回值,即return value 则默认返回None例如: def func1():  print('aaa')  return 1def func2():  print('a')f1 = func1() # 结果是 1f2 = func2() # 结果是 None建议所有的函数不管有没有返回值在最后都加上一个return # 函数文档 - 用来解释函数的作用以及利用方式- 文档的写法:  在函数内部开始的第一行使用三引号括起来 一般具有特定格式 例如   def stu(name, age):      '''这是       文档      '''      print(name, age)      return None - 查看文档的方式: 使用help(函数名)         使用 函数名._doc_ 

下面看下Python中while和for的区别

在c、c++、Java、C#等语言中,while和for的用法是基本一致的,但是在Python中,这两个循环还是存在一定的差别的

当遍历序列或数组时, 只能用for,while用来遍历会出现死循环

总结

以上所述是小编给大家介绍的python while 函数及while和for的区别,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对站的支持!


  • 上一条:
    Python多进程池 multiprocessing Pool用法示例
    下一条:
    python 3.6.4 安装配置方法图文教程
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在python语言中Flask框架的学习及简单功能示例(0个评论)
    • 在Python语言中实现GUI全屏倒计时代码示例(0个评论)
    • Python + zipfile库实现zip文件解压自动化脚本示例(0个评论)
    • python爬虫BeautifulSoup快速抓取网站图片(1个评论)
    • vscode 配置 python3开发环境的方法(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2018-04
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2022-01
    • 2023-07
    • 2023-10
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客