掌握Python3输入输出:轻松实现用户交互、日志记录与数据处理
Python 是一门简洁且强大的编程语言,广泛应用于各个领域。在 Python 编程中,输入和输出是基本而重要的操作。无论是进行用户交互、记录日志信息,还是将计算结果输出到控制台或文件,掌握这些操作都是编写高效 Python 程序的关键。本文将深入探讨 Python3 中的输入和输出,从基础语法到实际应用,带您全面掌握这一重要技能。
基本语法
输入
Python3 中使用 input()
函数获取用户输入。input()
会将所有输入作为字符串处理,返回用户输入的内容。
name = input("Enter your name: ")
print("Hello, " + name + "!")
输出
Python3 使用 print()
函数来输出信息。print()
可以输出多个值,值之间用逗号分隔,默认情况下会以空格分隔这些值。
print("Hello, world!")
print("The answer is", 42)
命令
输入命令
input(prompt)
:显示提示信息并等待用户输入,返回字符串形式的用户输入。
输出命令
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
:输出对象到文本流文件(默认为标准输出 sys.stdout),参数包括:*objects
:要打印的对象,可以是多个,以逗号分隔。sep
:对象间的分隔符,默认为空格。end
:行末尾的字符,默认为换行符。file
:写入的文件对象,默认为 sys.stdout。flush
:是否强制刷新文件流。
示例
输入示例
age = input("Enter your age: ")
print("Your age is " + age)
输出示例
print("Hello, world!")
print("The sum of 1 and 2 is", 1 + 2)
格式化输出
Python 提供了多种格式化字符串的方法,包括 %
操作符、str.format()
方法以及 f-strings(格式化字符串字面值)。
%
操作符
name = "Alice"
age = 30
print("Name: %s, Age: %d" % (name, age))
str.format()
方法
name = "Alice"
age = 30
print("Name: {}, Age: {}".format(name, age))
- f-strings (Python 3.6+)
name = "Alice"
age = 30
print(f"Name: {name}, Age: {age}")
应用场景
1. 用户交互
用户交互是通过 input()
函数获取用户输入,并通过 print()
函数给出反馈。input()
函数会暂停程序的执行,等待用户输入,然后将输入的内容作为字符串返回。print()
函数则可以输出信息到控制台,帮助用户了解程序的状态或输出结果。
示例代码
# 用户交互示例:简单的问答游戏
name = input("Enter your name: ") # 获取用户输入的名字
print("Hello, " + name + "! Welcome to the game.") # 打印欢迎信息age = input("Enter your age: ") # 获取用户输入的年龄
print("You are " + age + " years old.") # 打印年龄信息# 获取两个数字并计算其和
num1 = input("Enter the first number: ")
num2 = input("Enter the second number: ")
sum_result = int(num1) + int(num2) # 将输入的字符串转换为整数并计算和
print("The sum of " + num1 + " and " + num2 + " is " + str(sum_result) + ".") # 打印计算结果
2. 日志记录
在开发和调试过程中,记录日志信息是非常重要的。日志可以帮助开发者了解程序的运行状态、跟踪变量值和错误信息。虽然在实际项目中通常会使用专门的日志库(如 logging
),但在简单场景下也可以使用 print()
函数来输出日志信息。
示例代码
# 日志记录示例:简单的日志输出
def add_numbers(a, b):print(f"INFO: Adding {a} and {b}") # 打印日志信息return a + bdef main():x = 10y = 20print("DEBUG: x =", x, "y =", y) # 打印调试信息result = add_numbers(x, y)print("INFO: Result of addition is", result) # 打印结果信息main()
3. 数据输出
将计算结果或数据处理结果输出到控制台或文件。使用 print()
函数可以将结果输出到控制台,而使用文件操作函数可以将结果写入文件中。
示例代码
# 数据输出示例:将结果输出到控制台和文件# 输出到控制台
def calculate_square(number):square = number * numberprint("The square of", number, "is", square) # 输出结果到控制台return squarenumber = 5
square_result = calculate_square(number)# 输出到文件
file_path = "output.txt"
with open(file_path, 'w') as file:file.write(f"The square of {number} is {square_result}\n") # 将结果写入文件print(f"The result has been written to {file_path}")
综合示例
将用户交互、日志记录和数据输出结合在一起,构成一个完整的示例程序。
# 综合示例:用户交互、日志记录和数据输出def get_user_input(prompt):return input(prompt)def log_message(message):print(f"LOG: {message}")def save_result_to_file(result, file_path):with open(file_path, 'w') as file:file.write(result)log_message(f"Result has been written to {file_path}")def main():log_message("Program started")# 用户交互name = get_user_input("Enter your name: ")log_message(f"User name: {name}")age = get_user_input("Enter your age: ")log_message(f"User age: {age}")num1 = get_user_input("Enter the first number: ")num2 = get_user_input("Enter the second number: ")log_message(f"User entered numbers: {num1}, {num2}")# 数据处理try:num1 = int(num1)num2 = int(num2)sum_result = num1 + num2log_message(f"Calculated sum: {sum_result}")result_message = f"Hello, {name}! You are {age} years old. The sum of {num1} and {num2} is {sum_result}."print(result_message)# 数据输出file_path = "result.txt"save_result_to_file(result_message, file_path)except ValueError:log_message("Invalid input: numbers should be integers")print("Please enter valid integer numbers.")log_message("Program ended")if __name__ == '__main__':main()
这个综合示例展示了如何通过用户交互获取输入,通过日志记录输出调试信息和结果,并将计算结果保存到文件中。
注意事项
-
类型转换:
input()
函数返回的是字符串,如果需要整数或其他类型,需要进行类型转换。age = int(input("Enter your age: "))
-
异常处理:输入时要考虑用户可能输入不合法的内容,并进行必要的异常处理。
try:age = int(input("Enter your age: ")) except ValueError:print("Please enter a valid number")
-
编码问题:处理文本文件时要注意编码问题,特别是处理非 ASCII 字符时,使用
open()
时可以指定编码参数。with open('file.txt', 'r', encoding='utf-8') as file:content = file.read()
总结
Python3 中的输入输出非常简单直观,主要通过 input()
和 print()
函数来实现。可以通过格式化字符串来美化输出,通过类型转换和异常处理来确保输入的有效性。在实际应用中,输入输出操作可以用于用户交互、日志记录和数据输出等场景。理解和掌握这些基本操作,是深入学习和应用 Python 编程的重要基础。
相关文章:
掌握Python3输入输出:轻松实现用户交互、日志记录与数据处理
Python 是一门简洁且强大的编程语言,广泛应用于各个领域。在 Python 编程中,输入和输出是基本而重要的操作。无论是进行用户交互、记录日志信息,还是将计算结果输出到控制台或文件,掌握这些操作都是编写高效 Python 程序的关键。本…...
用于每个平台的最佳WordPress LMS主题
你已选择在 WordPress 上构建学习管理系统 (LMS)了。恭喜! 你甚至可能已经选择了要使用的 LMS 插件,这已经是成功的一半了。 现在是时候弄清楚哪个 WordPress LMS 主题要与你的插件配对。 我将解释 LMS 主题和插件之间的区别,以便你了解要…...
pytorch 加权CE_loss实现(语义分割中的类不平衡使用)
加权CE_loss和BCE_loss稍有不同 1.标签为long类型,BCE标签为float类型 2.当reduction为mean时计算每个像素点的损失的平均,BCE除以像素数得到平均值,CE除以像素对应的权重之和得到平均值。 参数配置torch.nn.CrossEntropyLoss(weightNone,…...
【iOS】UI——关于UIAlertController类(警告对话框)
目录 前言关于UIAlertController具体操作及代码实现总结 前言 在UI的警告对话框的学习中,我们发现UIAlertView在iOS 9中已经被废弃,我们找到UIAlertController来代替UIAlertView实现弹出框的功能,从而有了这篇关于UIAlertController的学习笔记…...
django支持https
测试环境,可以用django自带的证书 安装模块 sudo pip3 install django_sslserver服务端https启动 python3 manage.py runsslserver 127.0.0.1:8001https访问 https://127.0.0.1:8001/quota/api/XXX...
算法题day41(补5.27日卡:动态规划01)
一、动态规划基础知识:在动态规划中每一个状态一定是由上一个状态推导出来的。 动态规划五部曲: 1.确定dp数组 以及下标的含义 2.确定递推公式 3.dp数组如何初始化 4.确定遍历顺序 5.举例推导dp数组 debug方式:打印 二、刷题…...
【附带源码】机械臂MoveIt2极简教程(四)、第一个入门demo
系列文章目录 【附带源码】机械臂MoveIt2极简教程(一)、moveit2安装 【附带源码】机械臂MoveIt2极简教程(二)、move_group交互 【附带源码】机械臂MoveIt2极简教程(三)、URDF/SRDF介绍 【附带源码】机械臂MoveIt2极简教程(四)、第一个入门demo 目录 系列文章目录1. 创…...
基于蚁群算法的二维路径规划算法(matlab)
微♥关注“电击小子程高兴的MATLAB小屋”获得资料 一、理论基础 1、路径规划算法 路径规划算法是指在有障碍物的工作环境中寻找一条从起点到终点、无碰撞地绕过所有障碍物的运动路径。路径规划算法较多,大体上可分为全局路径规划算法和局部路径规划算法两大类。其…...
政务云参考技术架构
行业优势 总体架构 政务云平台技术框架图,由机房环境、基础设施层、支撑软件层及业务应用层组成,在运维、安全和运营体系的保障下,为政务云使用单位提供统一服务支撑。 功能架构 标准双区隔离 参照国家电子政务规范,打造符合标准的…...
android 13 aosp 预置so库
展讯对应的main.mk配置 device/sprd/qogirn**/ums***/product/***_native/main.mk $(call inherit-product-if-exists, vendor/***/build.mk)vendor/***/build.mk PRODUCT_PACKAGES \libtestvendor///Android.bp cc_prebuilt_library_shared{name:"libtest",srcs:…...
mongo篇---mongoDB Compass连接数据库
mongo篇—mongoDB Compass连接数据库 mongoDB笔记 – 第一条 一、mongoDB Compass连接远程数据库,配置URL。 URL: mongodb://username:passwordhost:port点击connect即可。 注意:host最好使用名称,防止出错连接超时。...
基于SOA海鸥优化算法的三维曲面最高点搜索matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于SOA海鸥优化算法的三维曲面最高点搜索matlab仿真,输出收敛曲线以及三维曲面最高点搜索结果。 2.测试软件版本以及运行结果展示 MATLAB2022A版本…...
前端js解析websocket推送的gzip压缩json的Blob数据
主要依赖插件pako https://www.npmjs.com/package/pako 1、安装 npm install pako 2、使用, pako.inflate(reader.result, {to: "string"}) 解压后的string 对象,需要JSON.parse转成json this.ws.onmessage (evt) > {console.log("…...
【wiki知识库】06.文档管理接口的实现--SpringBoot后端部分
目录 一、🔥今日目标 二、🎈SpringBoot部分类的添加 1.调用MybatisGenerator 2.添加DocSaveParam 3.添加DocQueryVo 三、🚆后端新增接口 3.1添加DocController 3.1.1 /all/{ebokId} 3.1.2 /doc/save 3.1.3 /doc/delete/{idStr} …...
c,c++,go语言字符串的演进
#include <stdio.h> #include <string.h> int main() {char str[] {a,b,c,\0,d,d,d};printf("string:[%s], len:%d \n", str, strlen(str) );return 0; } string:[abc], len:3 c语言只有数组的概念,数组本身没有长度的概念,需…...
vue-cli 快速入门
vue-cli (目前向Vite发展) 介绍:Vue-cli 是Vue官方提供一个脚手架,用于快速生成一个Vue的项目模板。 Vue-cli提供了如下功能: 统一的目录结构 本地调试 热部署 单元测试 集成打包上线 依赖环境:NodeJ…...
机器人--矩阵运算
两个矩阵相乘的含义 P点在坐标系B中的坐标系PB,需要乘以B到A到变换矩阵TAB。 M点在B坐标系中的位姿MB,怎么计算M在A中的坐标系? 两个矩阵相乘 一个矩阵*另一个矩阵的逆矩阵...
期末复习【汇总】
期末复习【汇总】 前言版权推荐期末复习【汇总】最后 前言 2024-5-12 20:52:17 截止到今天,所有期末复习的汇总 以下内容源自《【创作模板】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是ht…...
【IM即时通讯】MQTT协议的详解(3)- CONNACK Packet
【IM即时通讯】MQTT协议的详解(3)- CONNACK Packet 文章目录 【IM即时通讯】MQTT协议的详解(3)- CONNACK Packet前言说明一、固定同步详解、可变头部详解总结 前言 关于所有的类型的数据示例已经在上面一篇博客说完: …...
Linux - 深入理解/proc虚拟文件系统:从基础到高级
文章目录 Linux /proc虚拟文件系统/proc/self使用 /proc/self 的优势/proc/self 的使用案例案例1:获取当前进程的状态信息案例2:获取当前进程的命令行参数案例3:获取当前进程的内存映射案例4:获取当前进程的文件描述符 /proc中进程…...
Django DeleteView视图
Django 的 DeleteView 是一个基于类的视图,用于处理对象的删除操作。 1,添加视图函数 Test/app3/views.py from django.shortcuts import render# Create your views here. from .models import Bookfrom django.views.generic import ListView class B…...
代码杂谈 之 pyspark如何做相似度计算
在 PySpark 中,计算 DataFrame 两列向量的差可以通过使用 UDF(用户自定义函数)和 Vector 类型完成。这里有一个示例,展示了如何使用 PySpark 的 pyspark.ml.linalg.Vectorspyspark.sql.functions.udf 来实现这一功能:…...
混剪素材哪里找?分享8个热门素材网站
今天我们来深入探讨如何获取高质量的混剪素材,为您的短视频和自媒体制作提供最佳资源。在这篇指南中,我将介绍几个热门的素材网站,让您轻松掌握素材获取的技巧,并根据百度SEO排名规则,优化关键词的使用,确保…...
临床应用的深度学习在视网膜疾病的诊断和转诊中的应用| 文献速递-视觉通用模型与疾病诊断
Title 题目 Clinically applicable deep learning for diagnosis and referral in retinal disease 临床应用的深度学习在视网膜疾病的诊断和转诊中的应用 01 文献速递介绍 诊断成像的数量和复杂性正在以比人类专家可用性更快的速度增加。人工智能在分类一些常见疾病的二…...
中继器简介
一、网络信号衰减问题 现在的网路信号有两种,一种是电信号,另一种的光信号,电信号在网线、电话线或者电视闭路线中传输,光信号在光缆中传输,但是不管是以那种信号进行传输,随着传输距离的增加,电…...
websocket 前端项目js示例
websocket前端 和服务端websocket通信示例, 前端直接使用h5的内置对象 WebSocket 来创建和管理 WebSocket 连接,以及可以通过该连接发送和接收数据。 这个对象都是是事件方式来处理和与后端交互数据, 他们分别是 onopen打开, onclose关闭, o…...
webapi跨越问题
由于浏览器存在同源策略,为了防止 钓鱼问题,浏览器直接请求才不会有跨越的问题 浏览器要求JavaScript或Cookie只能访问同域下的内容 浏览器也是一个应用程序,有很多限制,不能访问和使用电脑信息(获取cpu、硬盘等&#…...
你知道 npmrc 文档吗? ---- npmrc 关键作用介绍
你知道 npmrc 文档吗? ---- npmrc 关键作用介绍 你知道 npmrc 文档吗? ---- npmrc 关键作用介绍如何修改配置呢?日常开放常常需要置哪些信息呢?registry 信息配置限定包认证信息代理配置缓存配置安装行为 参考 你知道 npmrc 文档吗…...
发现 Laravel 中的 api 响应时间明显过长
背景 近期在排查网站后台页面功能时 发现,部分查询页面,明显响应时间过长(12秒),不合理 优先排查 接口运行时长 经过打印,发现代码是正常的,且时间仅需不到一秒 进一步怀疑是 VUE框架的渲染加载…...
如何在MySQL中创建不同的索引和用途?
目录 1 基本的 CREATE INDEX 语法 2 创建单列索引 3 创建多列索引 4 创建唯一索引 5 创建全文索引 6 在表创建时添加索引 7 使用 ALTER TABLE 添加索引 8 删除索引 9 索引管理的最佳实践 10 示例 在 MySQL 中,索引(index)是一种用于…...
做鞋的网站/小红书关键词优化
---恢复内容开始--- 首先抛出一个问题: 为什么hashMap一般使用String作为key? 这是我学习前辈们的博文时看到的一个问题,觉着很有意思,所以记录下来. 原因1: 我当时的第一反应是:为什么不用Stringÿ…...
做网站钱/seo外包公司兴田德润官方地址
https://segmentfault.com/a/1190000008767607 一、下载 1、下载地址: http://httpd.apache.org/download.cgi 2、找到Files for Micsoft Windows 3、选择ApacheHaus 4、根据系统选择对应的版本(我选择64位的),开始下载…...
青岛商网站建设/seo专员
封装、继承、多态,增加代码复用性封装,给用户最简单的接口就可以了继承,代码复用多态:编译时多态是指方法的重载,运行时多态是指对象引用所指定的具体类型在运行时才能确定类图 泛化关系:继承,实…...
sae做的网站备份/怎样做推广更有效
双线服务器的控制问题: 要求:写出这个电信用户访问到双线web服务器时的IP变化过程(只写源IP,目标IP,和做SNAT还是DNAT等) 你觉得有没有问题? 实验环境: 精简一点可以使用下面的四台虚拟来做,并且要注意宿主机(真实机)不能在这里扮演角色,因为宿主机和任何虚拟机都是…...
不同类型网站比较/seo研究协会网是干什么的
目录 1、下载 2、解压 3、编译安装 1)修改代码 a.注释#if (APR_MAJOR_VERSION < 1)代码: b.把所有的remote_addr替换成client_addr 2)编译 4、配置apache 1) httpd.conf 加上LoadModule bw_module modules/mod_bw.so 2) 网站配置 5、测…...
文档分享类网站建设/昆明网站seo服务
opencv下载:https://opencv.org/releases/ 下载链接:https://blog.csdn.net/bookzhan/article/details/104753855/ opencv_contrib:https://github.com/opencv/opencv_contrib/releases?after3.4.6...