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

前言

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

正文

py世界中的操做。函数

操做

if:学习

在学习任何一门语言中,关系if,要关系另一件事,那就是if是否只能判断bool,仍是能够判断其余的,好比说1或者0。code

if 1:
    print("good");

输出:good.blog

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

再来看:string

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

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

if None:
    print("none");

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

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

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 类和模块

相关文章
相关标签/搜索