• 重走py 之路 ——普通操作与函数(三)


    前言

    本节主要介绍函数,但是函数是由操作组成的。那么就分为两部,一部分为操作一部分为函数。

    正文

    py世界中的操作。

    操作

    if:

    在学习任何一门语言中,关系if,要关系另外一件事,那就是if是否只能判断bool,还是可以判断其他的,比如说1或者0。

    if 1:
        print("good");
    

    输出:good.

    看了py 中if是对bool进行扩展了。

    再来看:

    if "":
        print("good");
    if "123":
        print("123good");
    

    输出:"123good"
    看了其对空字符的是一个false状态

    if None:
        print("none");
    

    没有任何输出,那么其对None 是false状态,在这里说明一下py中没有Null,只有None。

    那么看下其对列表和集合的态度是怎么样的。

    list=[]
    a={};
    if list:
        print("not none");
    else:
        print("none")
    if a:
        print("not none");
    else:
        print("none")
    

    返回两个none,说明其还会根据len来做判断,非常友好的一个东西。

    那么在if中或和且是否是我们原来熟悉的&&还有||呢?

    在这里说明一下,py的语义化太好了,直接使用and 和or 来说明。

    比如说:

    list=[]
    if 'good' in list:
        print("have good");
    elif ('not good' in list or 'sleep' in list) and 'name' in list:
         print("not good");
    

    上面可以看出else if 用elif来替代。list是否包含某个字符,可以直接用in来操作。

    输入:

    在前面和上续中,有很多print,也就是输出,那么如何输入呢?

    name = input("please say your name:");
    print(name);
    

    输入和输出:

    please say your name:11
    11
    

    在这里说明一点,就是上面name的等于号,一定要有空格,这个py的规范,否则将会出现异常。

    其他一些操作:
    while 和其他语言一样,但是得记得while后面加:,例如:

    while true:
      pass
    

    函数

    在很多语言中,函数都是非常关键的东西,因为你不可能一行写到尾。

    def printName(firstName,lastName):
       print("firstName:"+firstName+"lastName:"+lastName);
    printName("firstName","lastName");
    

    输出:firstName:firstNamelastName:lastName

    那么学了这么多语言,要思考的问题是py到底能不能设置参数默认值,或者能不能显示传参。

    def printName(firstName,lastName):
       print("firstName:"+firstName+"lastName:"+lastName);
    printName(firstName="firstName",lastName="lastName");
    

    事实证明是可以显示传参的,同样也是可以有默认值的。

    def printName(firstName,lastName="tom"):
       print("firstName:"+firstName+"lastName:"+lastName);
    printName(firstName="firstName");
    

    这样就可以。现在我们发现一个问题,那就是printName 在调用的时候没有信息,那么我们需要加上注释:

    def printName(firstName,lastName="tom"):
       """
       printName 输出名字
       args:
         firstName string  
         lastName string
       return:
          none
       """
       print("firstName:"+firstName+"lastName:"+lastName);
    printName(firstName="firstName");
    

    那么看下什么效果:

    是的,这样对于团队协作来说好太多了。

    同样函数值得关注的还有是否可以传递任意数量的实参。

    def printName(*name):
       """
       printName say name
       args:
         firstName string  
         lastName string
       return:
          none
       """
       print("firstName:"+name[0]+"lastName:"+name[1]);
    printName("firstName","lastname");
    

    这样似乎就可以了,*name,表示建立一个元组,传递任意的参数将会组成一个元组。

    那么任意数量的实参是不是只能是数组呢?如果你在加一个*的话,那么你可以传递字典。

    def printName(**name):
       """
       printName say name
       args:
         firstName string  
         lastName string
       return:
          none
       """
       print(name);
    printName(firstName="firstName",lastname="lastname");
    

    输出:{'lastname': 'lastname', 'firstName': 'firstName'}

    next 类和模块

  • 相关阅读:
    HTML+JSP的登录界面数据库链接
    链式前向星模板
    【洛谷【模板】最小生成树】
    【洛谷P1090 合并果子】
    Dijkstra【迪杰斯特拉算法】
    Bellman-Ford&&SPFA
    【一本通1248:Dungeon Master&&洛谷UVA532 Dungeon Master】
    【一本通1329:【例8.2】细胞&&洛谷P1451 求细胞数量】
    Floyed-Warshall【弗洛伊德算法】
    广搜
  • 原文地址:https://www.cnblogs.com/aoximin/p/14091858.html
Copyright © 2020-2023  润新知