Python 常用函数

一、自定义函数

1、使用 def 关键字定义函数

def 函数名([参数名...]):
    函数体(代码块)
  return 表达式
函数名()

  注意:函数须先定义,后使用

  没有 return 语句的函数定义,Python 都会在末尾加上 return None

 

二、系统函数

print(var1,var2,sep='分隔符',end='结束符')   # 打印
len(string) # 字符长度,py3不区分中英文
type(var) # 查看数据类型
input('msg') # 提示用户输入信息

 

三、变量作用域

  1、全局作用域(函数外的变量)

  2、局部作用域(函数内的变量,可以调用全局变量

1、局部变量不能在全局作用域内使用
2、局部作用域不能使用其他局部作用域内的变量
3、全局变量可以在局部作用域中读取
4、名称相同的局部变量和全局变量(尽量避免相同)

  3、使用 global 关键字来声明调用的是全局变量

有 4 条法则,区分变量是局部还是局作用域:
1.变量在全局作用域中使用,全局变量。
2.函数中,变量使用 global 语句,全局变量。
3.函数内变量没有用在赋值语句中,全局变量。
4.否则,变量用于函数中的赋值语句,局部变量。

  

四、异常处理

try:
    rst = 10 / 5
except ZeroDivisionError:
    print('Error: Invalid argument.')

 

五、案例

1、Collatz 序列

  分析条件:编写一个名为 collate()的函数,它有一个名为 number 的参数。如果参数是偶数,那么 collate()就打印出 number // 2,并返回该值。如果 number 是奇数,collate()就打印并返回 3 * number + 1。然后编写一个程序,让用户输入一个整数,并不断对这个数调用 collate(),直到函数返回值1(令人惊奇的是,这个序列对于任何整数都有效,利用这个序列,你迟早会得到 1!既使数学家也不能确定为什么。你的程序在研究所谓的“collate序列”,它有时候被称为“最简单的、不可能的数学问题”)。

  

def collate(number):
    rst = number % 2
    if rst == 0:
        print('number // 2 = ' + str(number // 2))
        return number // 2
    else:
        print( '3 * number + 1 ' + str(3 * number + 1))
        return 3 * number + 1

num = int(input('Number:'))
i = 0
while True:
    num = collate(num)
    if 1 == num:
        break
    i += 1

print('循环次数:'+str(i))

  

2、验证用户输入的是否是整数

isNumber = input('Number:')

try:
    number = int(isNumber)
    print(number)
except ValueError:
    print('类型不正确')

  

 

posted @ 2018-04-11 10:17  lampjia  阅读(210)  评论(0编辑  收藏  举报