zoukankan      html  css  js  c++  java
  • python基础总结(4)

    一、函数的定义。

    def fun(x):
        return x

    def passtest(y):
        pass # pass保证此处不写代码也能正确运行文件,if后面同样可以使用,此时这个是空函数

    def go():
        return 10,20 #返回两个值,其实就是返回一个元组。还是一个值

    print(fun(10))
    print(passtest(10)) #结果为None
    print(go())

    二、函数的参数。

    def calc(*number): #参数数目可变
       
    print(number)

    def calc1(one,two,**three) : #参数可变数目,两个星号既是dict
       
    print('one :', one , 'two :' , two ,"three :", three ) #加号不适用

    calc1('1 ','2',city='beijing',name='xiaoming') #调用关键字参数

    def test1(one, two, *, three, four,**key) :#命名关键字,后面两个没有默认,必须要写。这样就是规定必须要写的键值对
       
    print("成功调用");

    test1(1,2,three='aa',four='bb')#调用的时候,key的对应可以不写。

    #递归函数的调用
    def fact(n):
        if n == 1 :
            return 1;
        else:
            return n+fact(n-1)

    print(fact(5))
    三、      python的高级特性。
    1,切片。
    对于一个list,我们要寻找他之中的几个数,需要用循环来实现,但是这样写十分繁琐,于是我们有更好的办法,如下,
    L = ['a','b','c','d','e','f','g']
    print(L[1:4]) #切出1到4输出。
    print(L[:3]) #前3个
    print(L[-3:]) #后3个
    print(L[::3]) #所有的每3个输出一个
    print(L[:6:2]) #前6个每2个输出一个
    2,列表的生成,平时创建部分列表比较繁琐,可以简化该代码。
    L = ['a','b','c','d','e','f','g']
    print(L[1:4]) #切出1到4输出。
    print(L[:3]) #前3个
    print(L[-3:]) #后3个
    print(L[::3]) #所有的每3个输出一个
    print(L[:6:2]) #前6个每2个输出一个

    l = range(10) #生成10以内的列表
    l = [x*y for x in range(10) for y in range(10) if x % 2 ==0 ] #通过循环生成列表
    l = L[::2] #通过切片生成列表
    3,生成器。
         列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator。
    g = (x for x in range(20) if x % 2 == 0) #改成括号就变成了生成器

    for i in range(4):  #迭代4个值
       
    print(next(g))

    def fib(max):
        n,a,b=0,0,1 #赋值
       
    while n < max:
            yield b #每次生成器返回的结果
           
    a,b = b,a+b
            n = n + 1

    a = fib(20) # 这里得到一个生成器
    for i in range(4):
        print(next(a)) #读取生成器之中的值
    4,最后再记住一句话吧!
        凡是可作用于for循环的对象都是Iterable类型;凡是可作用于next()函数的对象都是Iterator类型。
  • 相关阅读:
    Action直接访问Servlet API
    Struts2与Struts1的对比
    参入github上的开源项目的步骤
    TortoiseSVN中图标的含义
    eclipse 快捷键
    base(function strchr)
    1
    Java 关于路径
    java初阶
    关于C++中计时的方法
  • 原文地址:https://www.cnblogs.com/luohuayu/p/8846002.html
Copyright © 2011-2022 走看看