详解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使用pyhook监控键盘并实现切换歌曲的功能
Jul 18 Python
python实现文件快照加密保护的方法
Jun 30 Python
Python 中 list 的各项操作技巧
Apr 13 Python
python一键去抖音视频水印工具
Sep 14 Python
Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算
Dec 28 Python
python查询文件夹下excel的sheet名代码实例
Apr 02 Python
Django logging配置及使用详解
Jul 23 Python
解决Django响应JsonResponse返回json格式数据报错问题
Aug 09 Python
详解python tkinter 图片插入问题
Sep 03 Python
python和C++共享内存传输图像的示例
Oct 27 Python
Selenium浏览器自动化如何上传文件
Apr 06 Python
解决IDEA翻译插件Translation报错更新TTK失败不能使用
Apr 24 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中的unset究竟会不会释放内存
2013/07/18 PHP
PHP list() 将数组中的值赋给变量的简单实例
2016/06/13 PHP
thinkPHP框架实现的短信接口验证码功能示例
2018/06/20 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
jQuery 位置插件
2008/12/25 Javascript
Javascript 读取操作Sql中的Xml字段
2014/10/09 Javascript
node.js中watch机制详解
2014/11/17 Javascript
你有必要知道的25个JavaScript面试题
2015/12/29 Javascript
JS+Canvas绘制时钟效果
2020/08/20 Javascript
angularjs使用directive实现分页组件的示例
2017/02/07 Javascript
如何编写一个完整的Angular4 FormText 组件
2017/11/18 Javascript
微信小程序登录换取token的教程
2018/05/31 Javascript
总结4个方面优化Vue项目
2019/02/11 Javascript
浅析vue中的MVVM实现原理
2019/03/04 Javascript
使用webpack4编译并压缩ES6代码的方法示例
2019/04/24 Javascript
vue单页应用的内存泄露定位和修复问题小结
2019/08/02 Javascript
python中正则表达式 re.findall 用法
2018/10/23 Python
Pandas之Dropna滤除缺失数据的实现方法
2019/06/25 Python
解决Pytorch 加载训练好的模型 遇到的error问题
2020/01/10 Python
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
No7 Beauty美国官网:英国国民护肤品牌
2019/10/31 全球购物
盖尔斯工厂店:GUESS Factory
2020/01/21 全球购物
英国婴儿产品专家:Samuel Johnston
2020/04/20 全球购物
如何将整数int转换成字串String
2014/03/21 面试题
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
2014年3.15团委活动总结
2014/03/16 职场文书
《独坐敬亭山》教学反思
2014/04/08 职场文书
竞选演讲稿范文大全
2014/05/12 职场文书
书法兴趣小组活动总结
2014/07/07 职场文书
党校毕业心得体会
2014/09/13 职场文书
学习雷锋精神倡议书
2015/04/27 职场文书
有关三国演义的读书笔记
2015/06/25 职场文书
浅谈如何写好演讲稿?
2019/06/12 职场文书
学会掌握自己命运的十条黄金法则:
2019/08/08 职场文书
留学文书中的个人陈述,应该注意哪些问题?
2019/08/23 职场文书