零基础 学 python开发 (Genius套餐A) 二十三

夜光序言:

 

 

 

世界上,最公平和最不公平的,都是时间。

别人偷不走它,而你却也留不住它。你拥有了它,却不能改变它。

 

 

 

 

零基础 学 python开发 (Genius套餐A) 二十三

正文:

 

4.4 元组类型

4.4.1 目标

在程序中求一组值的最大值或者最小值时常用的操作,例如:

def max(a,b):

return a if a>b else b

可以计算两个值的最大值,但是三个参数的最大值就无法计算,能不能设计一个 max 函数计算任意多个数的最大值呢?

 

目标是掌握元祖的使用,最后设计一个这样的通用的最大值函数,在调用时可以指 定任意多个数,都能找出这些数的最大值。

 

 


4.4.2 元组类型

元组也是 Python 中常用的一种数据类型,它是 tuple 类的类型,与列表 list 几乎相似, 区别在于:

(1) 元组数据使用圆括号()来表示,例如 t=('a','b','c');

(2) 元组数据的元素不能改变,只能读取;

因此可以简单理解元组就是只读的列表,除了不能改变外其它特性与列表完全一样。

 

 


4-4-1:元组的使用

s=(1,3,2,3,4,5)

print(s)

prnt(type(s))

结果:

(1, 3, 2, 3, 4, 5)

<class 'tuple'>

 

 


例:4-4-2: 建立一个代表星期的元组表,输入一个 0-6 的整数,输出对应的星期名 称。

week=("日","一","二","三","四","五","六")

print(week)

w=input("Enter an integer: ")

w=int(w)

if w>=0 and w<=6:

print("星期"+week[w])

else:

print("错误输入")

结果:

('日', '一', '二', '三', '四', '五', '六')

Enter an integer: 3

星期三

如果在函数参数的末尾使用"*"参数,那么这个参数是可以变化的,一般标注为*args 参 数,在函数中成为一个元组,注意这样的*args 的参数必须放在函数参数的末尾。

 

 

 


 

4-4-3 元组可变参数的函数

def fun(x,y,*args):

print(x,y)

print(args)

fun(1,2)

fun(1,2,3)

fun(1,2,3,4)

结果:

1 2

()

1 2

(3,)

1 2

(3, 4)

其中 args 就是一个可变参数,它根据实践的调用成一个元组,fun(1,2)时 x=1,y=2,而 args=(),但是 fun(1,2,3)时 x=1,y=2,args=(3,)。

显然不能设计成 def fun(x,*args,y),或者 def fun(*args,x,y),不然 fun(1,2,3)时到底 args 应该是多少个参数的元组。

 

 

 


4.4.3 【案例】通用的最大值函数

1、案例描述

设计一个通用的最大值函数 max,它可以计算出任意个数的最大值。

2、案例分析

函数设计成带任意参数*args 的形式:

def max(*args)

那么就可以带任意参数调用了,例如:

print(max(1,2))

print(max(1,2,3,4))

3、案例代码

def max(*args):

print(args)

m=args[0]

for i in range(len(args)):

if m<args[i]:

m=args[i]

return m

print(max(1,2))

print(max(1,2,0,3))

结果:

(1, 2)2

(1, 2, 0, 3)

3

由此可见在调用 max(1,2)时 1,2 都传递给 args 参数,args=(1,2)成为一个元组,同样 max(1,2,0,3)是 args=(1,2,0,3)成一个元组。

 

上一篇:零基础 学 python开发 (Genius套餐A)十九


下一篇:零基础 学 python开发 (Genius套餐A) 二十五