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


Posted in Python onSeptember 07, 2018

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 = 12
gender = '男'
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 = 19
stu(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 1
def func2():
  print('a')
f1 = func1() # 结果是 1
f2 = 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 while 函数及while和for的区别,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
测试、预发布后用python检测网页是否有日常链接
Jun 03 Python
python中self原理实例分析
Apr 30 Python
浅析Python中将单词首字母大写的capitalize()方法
May 18 Python
利用Python找出序列中出现最多的元素示例代码
Dec 08 Python
PyQt5每天必学之布局管理
Apr 19 Python
Python 读取图片文件为矩阵和保存矩阵为图片的方法
Apr 27 Python
Python 爬虫之Beautiful Soup模块使用指南
Jul 05 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
Oct 22 Python
Python常用模块os.path之文件及路径操作方法
Dec 03 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
Jan 16 Python
Python中使用socks5设置全局代理的方法示例
Apr 15 Python
Python OpenCV实现图形检测示例详解
Apr 08 Python
使用TensorFlow实现SVM
Sep 06 #Python
使用Python制作自动推送微信消息提醒的备忘录功能
Sep 06 #Python
python实现机器学习之多元线性回归
Sep 06 #Python
python实现机器学习之元线性回归
Sep 06 #Python
Python import与from import使用及区别介绍
Sep 06 #Python
用python实现k近邻算法的示例代码
Sep 06 #Python
python K近邻算法的kd树实现
Sep 06 #Python
You might like
php实现常见图片格式的水印和缩略图制作(面向对象)
2016/06/15 PHP
PHP实现打包下载文件的方法示例
2017/10/07 PHP
网站被黑的假象--ARP欺骗之页面中加入一段js
2007/05/16 Javascript
javascript EXCEL 操作类代码
2009/07/30 Javascript
Javascript实现的类似Google的Div拖动效果代码
2011/08/09 Javascript
原生JavaScript+LESS实现瀑布流
2014/12/12 Javascript
js的回调函数详解
2015/01/05 Javascript
JS实现网页上随机产生超链接地址的方法
2015/11/09 Javascript
jQuery实现的自适应焦点图效果完整实例
2016/08/24 Javascript
JS验证图片格式和大小并预览的简单实例
2016/10/11 Javascript
JSP防止网页刷新重复提交数据的几种方法
2016/11/19 Javascript
基于JavaScript实现的折半查找算法示例
2017/04/14 Javascript
Javasript设计模式之链式调用详解
2018/04/26 Javascript
20个最常见的jQuery面试问题及答案
2018/05/23 jQuery
layDate日期控件使用方法详解
2018/11/15 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
2019/07/15 Javascript
微信小程序与公众号卡券/会员打通的问题
2019/07/25 Javascript
js中console在一行内打印字符串和对象的方法
2019/09/10 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
2020/02/12 Javascript
Vue中使用wangeditor富文本编辑的问题
2021/02/07 Vue.js
json跨域调用python的方法详解
2017/01/11 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
2020/01/10 Python
django之从html页面表单获取输入的数据实例
2020/03/16 Python
Python批量获取并保存手机号归属地和运营商的示例
2020/10/09 Python
Django Auth用户认证组件实现代码
2020/10/13 Python
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
美国香薰蜡烛品牌:PADDYWAX
2018/10/06 全球购物
Swanson中国官网:美国斯旺森健康产品公司
2021/03/01 全球购物
师范应届生求职信
2013/11/15 职场文书
书法培训心得体会
2014/01/05 职场文书
早餐连锁店计划书
2014/01/08 职场文书
2015年大班保育员工作总结
2015/05/18 职场文书
阿凡达观后感
2015/06/10 职场文书
公司开业致辞
2015/07/29 职场文书
2019毕业典礼主持词!
2019/07/05 职场文书