最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

Python * 号操作符的用法

Python 少儿编程 1570浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

Python * 号操作符的用法

Python中星号 * 操作符

问题:

我们有一个数学考试成绩序列,但是不知道有多少个成绩,现在需要去掉一个最大值和一个最小值,求平均分。

解决方法:

使用星号(*)表达式

首先看一下序列赋值的基本用法:

>>> a,b,c=(1,2,3)

>>> a

1

>>> b

2

>>> c

3

下面看星号(*)表达式的基本用法:

用法1:

>>> a,*b=(1,2,3)

>>> a

1

>>> b

[2, 3]

用法2:

>>> *a,b=[1,2,3]

>>> a

[1, 2]

>>> b

3

用法3:

>>> a,*b,c=’123′

>>> a

’1′

>>> b

['2']

>>> c

’3′

用法4:

>>> a,*b,c=(1,2)

>>> a

1

>>> b

[]

>>> c

2

有一点需要特别注意在赋值语句中使用星号(*)表达式获取序列值之后,其一定是一个列表,无论有没有获取到元素。

再看不在赋值语句中使用*号:

>>> a=(1,2,3,4)

>>> print(a)

(1, 2, 3, 4)

>>> print(*a)

1 2 3 4

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

1 2 3 4

在这里,星号的作用就是将一个序列分解成多个独立的元素。

再看一个例子:

>>> a=['abc']

>>> print(a)

['abc']

>>> print(*a)

abc

>>> >>> print(‘abc’)

abc

介绍到这里,下面来看一下我们开头的问题,如何解决:

代码如下:

def myAvg(records):

try:

records=sorted(records)

first,*middle,last=records

avg=(sum(middle))/len(middle)

return avg

except:

return -1

if __name__==’__main__’:

a=[]

b=[78]

c=[80,90]

d=[3,2,1]

e=[10,20,30,40,50]

recs=(a,b,c,d,e)

for rec in recs:

print(myAvg(rec))

输出结果如下:

-1

-1

-1

2.0

30.0

>>>

喜欢文章,欢迎大家转发!!!

 

您必须 登录 才能发表评论!