python实例1.1:编写一个程序来计算并打印用户输入的数字列表的平均值(详解及其知识点拓展)

目录

一、主程序详细讲解

二、strip()和float()函数详细用法

三、try...except详细用法

四、列表用法及append使用方法详解

append() 方法

语法:

实例:


一、主程序详细讲解

下面是一个简单的Python程序,它可以接收用户输入的数字列表,然后计算出这些数字的平均值:

python

# 从用户那里获取数字字符串,使用逗号分隔
numbers_str = input("请输入一系列以逗号分隔的数字: ")# 将字符串分割成列表
numbers_str_list = numbers_str.split(',')# 初始化数字列表
numbers = []# 遍历字符串列表,将每个元素转换为整数,并将其添加到数字列表中
try:for number_str in numbers_str_list:numbers.append(float(number_str.strip()))  # strip()移除空白字符,float转换为浮点数# 计算数字列表的平均值average = sum(numbers) / len(numbers)# 打印平均值print("输入数字的平均值是:", average)# 如果在转换时遇到错误(如非数字字符),则捕获异常并打印错误信息
except ValueError as e:print("请输入正确的数字,确保是以逗号分隔的。错误信息:", str(e))

要使用这个程序,你可以直接拷贝到一个.py文件中,然后运行这个脚本,或者在一个交互式的Python环境里(例如 IPython 或者一个Python shell)中执行。程序会提示你输入一系列以逗号分隔的数字,输入完成后按回车即可看到计算出的平均值。

二、strip()float()函数详细用法

在这段代码中,strip()float()函数用于处理和转换用户输入的内容。

1.strip() 功能:

strip() 是一个字符串方法,用于移除字符串两侧的特定字符,默认情况下会移除空白符,包括空格、制表符(\t)、换行符(\n)等。这在处理用户输入时很有用,因为用户可能会在输入数字之前或之后不小心输入额外的空白字符。

例如:

python

   input_string = " 42 "clean_string = input_string.strip()print(clean_string) # 输出 "42",两边的空格被移除了

在这个程序中,strip()函数确保每次从用户输入的字符串中提取出的数字字符串两侧没有多余的空白符,这样可以准确地将其转换为数字。

2.float() 功能:

float() 是一个内置函数,它将一个合法的字符串或数字转换成浮点数。在处理数字时,使用float()可以接受整数和小数,这为用户提供了更多的灵活性。

例如:

python

   num_str = "3.14"num_float = float(num_str)print(num_float) # 输出 3.14

在这个程序里,输入的数字可能是整数也可能是小数,所以使用float()来处理字符串,将其转化为浮点数,从而可以进行数学计算。

try块中,strip()float()的组合允许我们接受用户输入的字符串,清理它(移除可能的空白符),然后将其转换为浮点数以便计算平均值。如果float()函数在尝试转换非数字字符串时抛出ValueError异常,通过try...except捕获这个异常并向用户提示错误信息,确保程序不会因为意外的输入而崩溃。

三、try...except详细用法

在编程中,try...except语句是一种错误和异常处理机制,它使得程序能够优雅地处理运行时可能出现的错误。异常是一个事件,它在程序执行过程中发生,可以打断程序的正常流程。通过try...except语句,程序可以在发生异常时继续执行,而不是完全停止。

下面是try...except块的基本用法:

python

try:# 尝试执行的代码块# 可能会发生错误的代码pass
except SomeException as e:# 当上面的try部分的代码发生特定异常时执行的代码块# e是捕获到的异常对象pass

  • try子句:在try子句中编写可能会引发异常的代码。如果在try块中的代码执行时没有出现错误,则继续执行try块后面的代码;如果出现了异常,则立刻停止try块中剩余代码的执行,跳转到except块。

  • except子句:except子句用于捕获try块中发生的异常。在这个子句中,你可以指定想要捕获的异常类型。例如ValueErrorTypeError, 或者是通用的Exception,它会捕获几乎所有的异常情况。在except子句中,你可以定义当捕获异常后程序应当怎样响应——可能是打印一个错误信息,可能是进行一些修正措施,或者是重新抛出异常让上层代码处理。

  • as e语法:使用as e(其中e可以是任何变量名)可以将捕获的异常实例绑定到一个变量上。e通常包含了异常的描述信息,可以用来获取错误详情并展示给用户,或者记录到日志中。

这是一个使用try...except结构的简单示例:

python

try:number = int(input("请输入一个整数: "))print("输入的数字是:", number)
except ValueError as e:print("发生了一个错误:", e)print("这不是一个有效的整数。")

在这个例子中,如果用户输入了非整数的字符串,int()函数会引发一个ValueError异常。由于这个错误是在try块中发生的,所以控制流程马上转到相应的except ValueError块,程序不会崩溃,而是打印出一个错误信息,并提示用户输入了无效的整数。

try...except结构非常强大,能够帮助程序处理各种意外情况,使程序更加健壮和用户友好。

四、列表用法及append使用方法详解

在Python中,列表(list)是一种基本的数据结构,它可以容纳多个元素,并且这些元素可以是不同的数据类型。列表是可变的,这意味着你可以添加、移除或改变列表中的元素。

列表的常规操作和函数有:

  • 创建列表:直接用方括号 [] 或使用 list() 函数。
  • 访问元素:使用索引来访问列表中的元素,索引从0开始。
  • 修改元素:通过指定索引来修改元素的值。
  • 添加元素:使用 append()extend() 或 insert() 方法。
  • 删除元素:使用 pop()remove() 或 del 语句。
  • 列表切片:使用切片操作来获取列表的部分元素。
  • 遍历列表:使用for循环来访问列表中的每个元素。

append() 方法

列表的 append() 方法用于在列表末尾添加一个元素。这是个很常用的操作,因为它不仅效率高,而且编码简单。

语法:

python

list.append(element)

  • list 是你要添加元素的那个列表对象。
  • element 是你将添加到列表末尾的对象。

实例:

python

# 初始化一个空列表
fruits = []# 使用 append() 方法向列表添加元素
fruits.append("apple")
fruits.append("banana")
fruits.append("cherry")# 打印添加元素后的列表
print(fruits)  # 输出: ['apple', 'banana', 'cherry']

在这个例子中,我们首先创建了一个空列表 fruits,然后通过调用 fruits.append() 方法三次,分别添加了 'apple''banana' 和 'cherry' 这三个字符串作为列表元素。在每次调用 append() 方法后,新元素都会被添加到列表的末尾。

append() 方法每次只能添加一个元素。如果你想一次性添加多个元素,应该使用 extend() 方法或者 + 操作符将两个列表拼接起来。当你要添加的不是一个列表,而是一个元素时,继续使用 append() 是最佳选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/799845.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Rust---模式(Pattern)匹配

目录 模式是什么它用来做什么模式匹配和赋值为什么会有模式匹配模式匹配用在什么地方match 表达式if let表达式while let表达式for 循环let 语句函数参数不可驳模式匹配和可驳模式匹配模式是什么 在Rust中,模式(Pattern)是一种用于匹配和解构数据的语法结构。模式匹配中常用…

Mac运行不畅?一招教你轻松清理缓存,恢复流畅体验!

在日常使用Mac电脑时,面对系统运行速度下降或频繁卡顿的问题,不仅影响工作效率,用户体验也随之大打折扣。探究 Mac 运行变慢的背后原因,涵盖了一系列潜在因素,诸如存储空间接近极限、系统资源紧张、启动加载项过多等。…

LeetCode刷题--- 让字符串成为回文串的最少插入次数

让字符串成为回文串的最少插入次数 题目链接:让字符串成为回文串的最少插入次数 题目 给你一个字符串 s ,每一次操作你都可以在字符串的任意位置插入任意字符。 请你返回让 s 成为回文串的 最少操作次数 。 「回文串」是正读和反读都相同的字符串。…

EN 14246:2006 吊顶石膏板检测

石膏板是建筑领域使用的一种主要产品,具有重量轻,强度较高,厚度较薄,易加工,绝热隔音和防火等性能,是目前市场上较为流行的轻型板材之一;主要用于墙板,吊顶,检修口等领域…

Java设计模式详解:抽象工厂模式

Java设计模式详解:抽象工厂模式 文章目录 Java设计模式详解:抽象工厂模式前言一、原理二、案例实战:打造一款汽车生产流水线三、使用场景四、与工厂模式的区别总结 前言 对于初学者来说,设计模式可能显得有些抽象和复杂&#xff…

1.4 掌握Scala运算符

大家好,今天我们将一起探讨Scala中的运算符。在Scala中,运算符实际上就是方法的一种特殊形式。这意味着我们可以像调用方法一样使用运算符。 首先,让我们了解一下Scala中的运算符种类。Scala支持多种类型的运算符,包括算术运算符…

IT廉连看——SpringBoot——SpringBoot快速入门

IT廉连看——SpringBoot——SpringBoot快速入门 1、idea创建工程 &#xff08;1&#xff09;普通Maven工程创建 工程名spring-boot-test 2、添加依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/PO…

windows7安装高版本Node

项目需要安装高版本得node&#xff0c;windows7最高支持到v13&#xff0c;需要手动下载zip安装包进行解压&#xff0c;配置环境变量&#xff0c;添加路径到path&#xff0c;如果安装了nvm需要卸载&#xff0c;否则配置得高版本node可能不生效&#xff0c;成功后如下&#xff1a…

LeetCode 24.两两交换链表中的节点

给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4] 输出&#xff1a;[2,1,4…

Mysql语句(更新)

查询框架 执行顺序select 查询列表 7from 表 1[join type] join 表2 2 on 连接条件 3where 筛选条件 4group by 分组条件 5having 分组后筛选 6or…

机器学习(Machine Learning)知识点

机器学习Machine Learning知识点 机器学习1. 常用的数据处理的库有哪些2. 常用的机器学习的库有哪些3. 过拟合问题的特点4. 过拟合问题的解决方法&#xff1a;5. 说一下广度优先遍历和深度优先遍历&#xff1f;6. 什么是线性回归?7. 机器学习中&#xff0c;有哪些损失函数&…

Java常用API_正则表达式_字符串的替换和截取方法——小练习

我将通过一个练习题来展示这两个方法 练习题&#xff1a; 有一段字符串&#xff1a;小张qwertyuiop123小李asdfghjkl456小王 要求1&#xff1a;把字符串中三个姓名之间的字母替换成vs 要求2&#xff1a;把字符串中的三个姓名切割出来 编写代码&#xff1a; public class Tes…

js,uniapp,vue,小写数字转化为大写

应用场景&#xff1a; 把1、2、3&#xff0c;转为一、二、三 方法&#xff1a; retBigSrt(num) {const changeNum [零, 一, 二, 三, 四, 五, 六, 七, 八, 九]const unit [, 十, 百]num parseInt(num)const getWan (temp) > {const strArr temp.toString().split().re…

day12 函数基础(三)

一.迭代器(了解) 迭代:更新换代 迭代特点:每一次迭代得到的值,就是下一个迭代的初始值 可迭代对象: 字符串 列表 元组 字典 集合 ...... 迭代器的语法格式: ```python 变量名 = iter(可迭代对象) 变量名 = 可迭代对象._iter_ # 迭代取值格式 迭代器名._next_() next(迭代器…

马斯克推出Grok-1.5,接近GPT-4级别的性能

定于下周发布的Grok-1.5带来了增强的推理和解决问题的能力&#xff0c;并接近于已知的开源和闭源的LLM的性能&#xff0c;包括OpenAI的GPT-4和Anthropic的Claude 3。 马斯克指出&#xff0c;Grok-1.5将为xAI在X平台上的ChatGPT挑战者聊天机器人提供支持&#xff0c;而Grok-2(新…

2024.3.26力扣每日一题——设计可以求最短路径的图类

2024.3.26 题目来源我的题解方法一 Dijkstra算法求最短路径方法二 Floyd算法求最短路径 题目来源 力扣每日一题&#xff1b;题序&#xff1a;2642 我的题解 方法一 Dijkstra算法求最短路径 图使用邻接表存储&#xff0c;添加边只需要更新邻接表就行。 求两个节点的路径最小代…

交易要想成功澳福总结几点

100%使用基本面分析的投资者能保证每次交易都能成功吗&#xff1f;100%使用技术分析的投资者能保证每次交易都能成功吗&#xff1f;在fpmarkets澳福看来无论是基本面分析还是技术分析都不能保证100%交易成功。 投资者不能只依赖一种分析进行投资交易。在fpmarkets澳福看来成功的…

GD32F470_US-016 模拟电压输出 双量程 模拟量 超声波测距模块 高精度

2.18 US-016电压式超声波测距传感器 US-016是市场上唯有的一款模拟量输出的超声波测距模块&#xff0c;输出的模拟电压和距离值成正比&#xff0c;可以方便的和其他系统相连&#xff0c;US-016工作稳定可靠。 US-016超声波测距模块可实现2cm~3m的非接触测距功能&#xff0c;供…

掌握Go语言:Go语言错误处理,从基础到高级,让你的代码更健壮!(33)

Go 语言的错误处理机制非常灵活&#xff0c;它通过错误值&#xff08;error&#xff09;来表示可能发生的错误&#xff0c;并提供了多种处理错误的方法和技巧。除了基本的错误处理方式外&#xff0c;还有一些高级用法可以进一步提升代码的健壮性和可读性。 Go 语言的错误处理基…

【LeetCode热题100】74. 搜索二维矩阵(二分)

一.题目要求 给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a; 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &#xff0c;如果 target 在矩阵中&#xff0c;返回 true &#xff1b;否则&#xff0c;…