pyCarm oj 习题 元组的统计,及元组相关知识

元组的统计

Problem Description

编写程序,求一个元祖中元素个数、最大值、最小值、元素之和、平均值.

Input Description

在一行中输入数字,以英文逗号分隔

Output Description

输出该元祖及元祖中元素个数、最大值、最小值、元素之和、平均值(保留2位小数).

Sample Input

9,7,8,3,2,1,55,6

Sample Output

(9, 7, 8, 3, 2, 1, 55, 6)
length=8,max=55,min=1,sum=91,average=11.38

代码如下:

# 从用户那里获取逗号分隔的字符串输入,并转换成整数类型的元组  
yuan = tuple(map(int, input().split(',')))  
  
# 打印输入的元组  
print(yuan)  
  
# 打印元组的长度  
print("length=%d" % (len(yuan)), end=',')  
  
# 找出元组中的最大值并打印  
print("max=%d" % max(yuan), end=',')  
  
# 找出元组中的最小值并打印  
print("min=%d" % min(yuan), end=',')  
  
# 计算元组中所有元素的和并打印  
print("sum=%d" % sum(yuan), end=',')  
  
# 计算元组的平均数  
average = sum(yuan) / len(yuan)  
  
# 打印平均数,保留两位小数  
print("average=%.2f" % average)

代码解释:

  1. input().split(','):从用户那里获取一行输入,并使用逗号,作为分隔符将字符串分割成一个列表。
  2. map(int, ...):使用map函数将分割后列表中的每个元素转换成整数类型。
  3. tuple(...):将转换后的整数列表转换成元组。
  4. print(yuan):打印输入的元组。
  5. print("length=%d" % (len(yuan)), end=','):计算并打印元组的长度,end=','表示打印后不换行,而是添加逗号。
  6. print("max=%d" % max(yuan), end=','):找出并打印元组中的最大值。
  7. print("min=%d" % min(yuan), end=','):找出并打印元组中的最小值。
  8. print("sum=%d" % sum(yuan), end=','):计算并打印元组中所有元素的和。
  9. average = sum(yuan) / len(yuan):计算元组的平均数。
  10. print("average=%.2f" % average):打印平均数,%.2f表示保留两位小数。

 

注意:代码使用了%格式化字符串的语法,这是Python 2.x中常见的字符串格式化方式。在Python 3.x中,更推荐使用str.format()方法或f-string(格式化字符串字面量)来进行字符串格式化。

如果希望使用更现代、更易读的格式化方式,可以将上述print语句中的格式化部分替换为str.format()或f-string,如下所示(以f-string为例):

print(f"length={len(yuan)},")  
print(f"max={max(yuan)},")  
print(f"min={min(yuan)},")  
print(f"sum={sum(yuan)},")  
print(f"average={average:.2f}")

这种方式更直观且易于维护。

元组的相关基础知识

在Python中,元组(Tuple)是一个不可变序列类型,通常用于存储一组相关的值。以下是关于元组的一些基本知识和常见操作:

1. 创建元组

  • 元组可以使用圆括号 () 来创建,元素之间用逗号 , 分隔。
  • 如果只有一个元素,需要在该元素后面加上一个逗号 ,,否则它会被视为一个括号表达式而非元组。

示例:

python复制代码

# 创建一个包含多个元素的元组
my_tuple = (1, 2, 3, 4)
# 创建一个只包含一个元素的元组
single_element_tuple = (5,) # 注意逗号

2. 访问元组元素

  • 使用索引来访问元组中的元素,索引从0开始。
  • 可以使用切片来获取元组的一个子序列。

示例:

python复制代码

# 访问元组中的元素
print(my_tuple[0]) # 输出: 1
# 使用切片获取子序列
sub_tuple = my_tuple[1:3] # 输出: (2, 3)

3. 元组是不可变的

  • 一旦创建,元组中的元素不能被修改。
  • 如果尝试修改元组中的元素,Python会抛出TypeError异常。

示例:

python复制代码

# 尝试修改元组中的元素(这是不允许的)
my_tuple[0] = 10 # TypeError: 'tuple' object does not support item assignment

4. 元组常用操作

  • len(tuple): 获取元组的长度。
  • tuple.count(value): 返回元组中某个值出现的次数。
  • tuple.index(value): 返回元组中某个值第一次出现的索引,如果值不存在则抛出ValueError。

示例:

python复制代码

# 获取元组长度
length = len(my_tuple) # 输出: 4
# 计算元素出现的次数
count = my_tuple.count(3) # 输出: 1
# 获取元素的索引
index = my_tuple.index(2) # 输出: 1

5. 元组的解包

  • 可以将元组中的元素解包到变量中。

示例:

python复制代码

a, b, c, d = my_tuple # 解包元组到变量a, b, c, d中

6. 元组与列表的转换

  • 可以使用 list() 函数将元组转换为列表,列表是可变的。
  • 可以使用 tuple() 函数将列表转换为元组。

示例:

python复制代码

# 元组转列表
list_from_tuple = list(my_tuple)
# 列表转元组
tuple_from_list = tuple([5, 6, 7])

7. 元组的应用场景

  • 当需要存储一组不可变的、相关的值时,可以使用元组。
  • 元组通常用于表示点的坐标、函数的多个返回值等。
  • 由于元组是不可变的,所以它们可以用作字典的键或集合的元素。

8. 命名元组(NamedTuples)

  • collections.namedtuple 可以用来创建一个具有字段名的元组子类。
  • 命名元组提供了更具描述性的方式来表示元组中的数据。

示例:

python复制代码

from collections import namedtuple
# 创建一个命名元组类型
Point = namedtuple('Point', ['x', 'y'])
# 创建命名元组实例
p = Point(1, 2)
print(p.x) # 输出: 1
print(p.y) # 输出: 2

元组因其不可变性而在许多情况下都很有用,特别是在需要保证数据不被意外修改时。

以上是Python中元组的基本知识和常见操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值