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

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的区别,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • 浅析python中while循环和for循环

    while循环 只要循环条件为True(以下例子为x > y),while循环就会一直 执行下去: u, v, x, y = 0, 0, 100, 30 ⇽--- ❶ while x > y: ❷ u = u + y x = x - y if x < y + 2: v = v + x x = 0 else: v = v + y + 2 x = x - y - 2 print(u, v) 上面用到了一个简写记法,u和v被赋值为0,x被设置为100,y的 值则成为30❶.接下来是循环代码块❷

  • 对python中for、if、while的区别与比较方法

    如下所示: if应用举例: #if 若条件成立,只执行一次 #if 条件:如果条件成立,执行条件后的代码块内容,不成立,直接跳过代码块 #判断如果年龄age小于18,输出未成年 #=一个等号表示赋值的意思 ==双等号判断等号两边的值是否相等 if age==18: print('未成年') #两种情况的判断 #如果age小于18 输出未成年,否则输出成年人 #如果条件成立,执行条件后的代码块内容,条件不成立,执行else后的代码块内容,有且只会执行其中某一个代码块 if age<18: prin

  • 在Python中,不用while和for循环遍历列表的实例

    如下所示: a = [1, 2, 3, 8, 9] def printlist(l, index): if index == len(l): return else: print(l[index]) printlist(l, index + 1) printlist(a, 0) *****for和while循环底层用的是递归实现的 以上这篇在Python中,不用while和for循环遍历列表的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Python基础之循环语句用法示例【for、while循环】

    本文实例讲述了Python基础之循环语句用法.分享给大家供大家参考,具体如下: while 循环 Python中while语句的一般形式: while 判断条件:     statements 同样需要注意冒号和缩进.另外,在Python中没有do..while循环. 以下实例使用了 while 来计算 1 到 100 的总和: #!/usr/bin/env python3 n = 100 sum = 0 counter = 1 while counter <= n: sum = sum + c

  • python中while和for的区别总结

    Python中for循环和while循环本质上是没有区别的,但是在实际应用上,针对性不太一样. while循环适用于未知循环次数的循环,for循环适用于已知循环次数的循环 . for主要应用在遍历中,比如: for i in range(10): print(i) 打印结果为: 0 1 2 3 4 5 6 7 8 9 list1 = [1,2,"a"] for i in list1: print(i) #打印结果为逐步列表list1中的元素: 1 2 a 而while循环很少进行遍历使

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

    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(

  • 详解Python map函数及Python map()函数的用法

    python map函数 map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回. 例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9] 如果希望把list的每个元素都作平方,就可以用map()函数: 因此,我们只需要传入函数f(x)=x*x,就可以利用map()函数完成这个计算: def f(x): return x*x print map(f,

  • 详解Python中sorted()和sort()的使用与区别

    目录 sort()方法是什么 如何妙用sorted() 方法 总结 在 Python 中,你可以使用 sorted() 方法或 sort() 方法对数据进行排序. 在本文中,我将提供 sorted() 和 sort() 方法的代码示例,并解释两者之间的区别. sort()方法是什么 此方法接受一个列表并对其进行排序.但,请记住此方法没有返回值,即返回None. 下面例子中,我们有一个数字列表,我们可以使用 sort() 方法按升序对列表进行排序. my_list = [67, 2, 999, 1

  • 详解Python匿名函数(lambda函数)

    匿名函数lambda Python使用lambda关键字创造匿名函数.所谓匿名,意即不再使用def语句这样标准的形式定义一个函数.这种语句的目的是由于性能的原因,在调用时绕过函数的栈分配.其语法是: lambda [arg1[, arg2, ... argN]]: expression 其中,参数是可选的,如果使用参数的话,参数通常也会在表达式之中出现. 下面举例来说明lambda语句的使用方法(无参数). # 使用def定义函数的方法 def true(): return True #等价的l

  • 详解python eval函数的妙用

    python eval函数功能:将字符串str当成有效的表达式来求值并返回计算结果. 函数定义: eval(expression, globals=None, locals=None) 将字符串str当成有效的表达式来求值并返回计算结果.globals和locals参数是可选的,如果提供了globals参数,那么它必须是dictionary类型:如果提供了locals参数,那么它可以是任意的map对象. python的全局名字空间存储在一个叫globals()的dict对象中:局部名字空间存储在

  • 详解Python的函数与异常

    目录 1. 函数 1.1 自定义函数 1.2 函数与参数 1.3 函数与返回值 2. 异常处理 2.1 raise 语句 2.2 异常捕获 2.3 finally 子句 总结 1. 函数 抽象是程序能够被人理解的关键所在.程序应非常抽象,如获取用户输入构造列表,查找列表中最大的值,并进行打印: list_a = get_input() max_value = max(list_a) print(max_value) 看到这些代码,可以很容易这个程序是做什么的,至于这些操作的具体细节,将在独立的函

  • 代码详解Python的函数基础(1)

    目录 1.函数调用 2.函数定义 总结 1.函数调用 # 1.调用函数,需要知道函数的名称和参数 # 2.调用函数传入的参数需要和函数定义的参数数量和类型一致 # 如调用abs函数 print("-2的绝对值为:",abs(-2)) print("100的绝对值为:",abs(100)) # 3.函数名是指向一个函数对象的引用,可以把函数名赋给一个变量,相当于给这个函数起别名 abs1 = abs # 变量abs1指向abs函数 print("-1的绝对值

  • 代码详解Python的函数基础(2)

    目录 1.函数参数 2.递归函数 总结 1.函数参数 # 1.位置参数:调用函数时,传入的值需要按照位置顺序传入 # 实例:求x的n次方 def xPowN(x,n): # 传入的值按照x,n的位置顺序传入 s = 1 while n > 0: n = n - 1 s = s * x return s print("2的5次方的值为:",xPowN(2,5)) print("5的2次方的值为:",xPowN(5,2)) # 结果输出: # 2的5次方的值为:

  • 详解Python中 __get__和__getattr__和__getattribute__的区别

    引子 假设我们有个类A,其中a是A的实例 a.x时发生了什么?属性的lookup顺序如下: 如果重载了__getattribute__,则调用. a.__dict__, 实例中是不允许有descriptor的,所以不会遇到descriptor A.__dict__, 也即a.__class__.__dict__ .如果遇到了descriptor,优先调用descriptor. 沿着继承链搜索父类.搜索a.__class__.__bases__中的所有__dict__. 如果有多重继承且是菱形继承

  • 详解Python函数可变参数定义及其参数传递方式

    Python函数可变参数定义及其参数传递方式详解 python中 函数不定参数的定义形式如下 1. func(*args)  传入的参数为以元组形式存在args中,如: def func(*args): print args >>> func(1,2,3) (1, 2, 3) >>> func(*[1,2,3]) #这个方式可以直接将一个列表的所有元素当作不定参数 传入(1, 2, 3) 2.func( **kwargs) 传入的参数为以字典形式存在args中,如: d

随机推荐