当前位置: 首页 > news >正文

掌握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()

这个综合示例展示了如何通过用户交互获取输入,通过日志记录输出调试信息和结果,并将计算结果保存到文件中。

注意事项

  1. 类型转换input() 函数返回的是字符串,如果需要整数或其他类型,需要进行类型转换。

    age = int(input("Enter your age: "))
    
  2. 异常处理:输入时要考虑用户可能输入不合法的内容,并进行必要的异常处理。

    try:age = int(input("Enter your age: "))
    except ValueError:print("Please enter a valid number")
    
  3. 编码问题:处理文本文件时要注意编码问题,特别是处理非 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方式:打印 二、刷题&#xf…...

【附带源码】机械臂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语言只有数组的概念&#xff0c;数组本身没有长度的概念&#xff0c;需…...

vue-cli 快速入门

vue-cli &#xff08;目前向Vite发展&#xff09; 介绍&#xff1a;Vue-cli 是Vue官方提供一个脚手架&#xff0c;用于快速生成一个Vue的项目模板。 Vue-cli提供了如下功能&#xff1a; 统一的目录结构 本地调试 热部署 单元测试 集成打包上线 依赖环境&#xff1a;NodeJ…...

机器人--矩阵运算

两个矩阵相乘的含义 P点在坐标系B中的坐标系PB&#xff0c;需要乘以B到A到变换矩阵TAB。 M点在B坐标系中的位姿MB&#xff0c;怎么计算M在A中的坐标系&#xff1f; 两个矩阵相乘 一个矩阵*另一个矩阵的逆矩阵...

期末复习【汇总】

期末复习【汇总】 前言版权推荐期末复习【汇总】最后 前言 2024-5-12 20:52:17 截止到今天&#xff0c;所有期末复习的汇总 以下内容源自《【创作模板】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是ht…...

【IM即时通讯】MQTT协议的详解(3)- CONNACK Packet

【IM即时通讯】MQTT协议的详解&#xff08;3&#xff09;- CONNACK Packet 文章目录 【IM即时通讯】MQTT协议的详解&#xff08;3&#xff09;- CONNACK Packet前言说明一、固定同步详解、可变头部详解总结 前言 关于所有的类型的数据示例已经在上面一篇博客说完&#xff1a; …...

Linux - 深入理解/proc虚拟文件系统:从基础到高级

文章目录 Linux /proc虚拟文件系统/proc/self使用 /proc/self 的优势/proc/self 的使用案例案例1&#xff1a;获取当前进程的状态信息案例2&#xff1a;获取当前进程的命令行参数案例3&#xff1a;获取当前进程的内存映射案例4&#xff1a;获取当前进程的文件描述符 /proc中进程…...

Django DeleteView视图

Django 的 DeleteView 是一个基于类的视图&#xff0c;用于处理对象的删除操作。 1&#xff0c;添加视图函数 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 中&#xff0c;计算 DataFrame 两列向量的差可以通过使用 UDF&#xff08;用户自定义函数&#xff09;和 Vector 类型完成。这里有一个示例&#xff0c;展示了如何使用 PySpark 的 pyspark.ml.linalg.Vectorspyspark.sql.functions.udf 来实现这一功能&#xff1a…...

混剪素材哪里找?分享8个热门素材网站

今天我们来深入探讨如何获取高质量的混剪素材&#xff0c;为您的短视频和自媒体制作提供最佳资源。在这篇指南中&#xff0c;我将介绍几个热门的素材网站&#xff0c;让您轻松掌握素材获取的技巧&#xff0c;并根据百度SEO排名规则&#xff0c;优化关键词的使用&#xff0c;确保…...

临床应用的深度学习在视网膜疾病的诊断和转诊中的应用| 文献速递-视觉通用模型与疾病诊断

Title 题目 Clinically applicable deep learning for diagnosis and referral in retinal disease 临床应用的深度学习在视网膜疾病的诊断和转诊中的应用 01 文献速递介绍 诊断成像的数量和复杂性正在以比人类专家可用性更快的速度增加。人工智能在分类一些常见疾病的二…...

中继器简介

一、网络信号衰减问题 现在的网路信号有两种&#xff0c;一种是电信号&#xff0c;另一种的光信号&#xff0c;电信号在网线、电话线或者电视闭路线中传输&#xff0c;光信号在光缆中传输&#xff0c;但是不管是以那种信号进行传输&#xff0c;随着传输距离的增加&#xff0c;电…...

websocket 前端项目js示例

websocket前端 和服务端websocket通信示例&#xff0c; 前端直接使用h5的内置对象 WebSocket 来创建和管理 WebSocket 连接&#xff0c;以及可以通过该连接发送和接收数据。 这个对象都是是事件方式来处理和与后端交互数据&#xff0c; 他们分别是 onopen打开, onclose关闭, o…...

webapi跨越问题

由于浏览器存在同源策略&#xff0c;为了防止 钓鱼问题&#xff0c;浏览器直接请求才不会有跨越的问题 浏览器要求JavaScript或Cookie只能访问同域下的内容 浏览器也是一个应用程序&#xff0c;有很多限制&#xff0c;不能访问和使用电脑信息&#xff08;获取cpu、硬盘等&#…...

你知道 npmrc 文档吗? ---- npmrc 关键作用介绍

你知道 npmrc 文档吗&#xff1f; ---- npmrc 关键作用介绍 你知道 npmrc 文档吗&#xff1f; ---- npmrc 关键作用介绍如何修改配置呢&#xff1f;日常开放常常需要置哪些信息呢&#xff1f;registry 信息配置限定包认证信息代理配置缓存配置安装行为 参考 你知道 npmrc 文档吗…...

发现 Laravel 中的 api 响应时间明显过长

背景 近期在排查网站后台页面功能时 发现&#xff0c;部分查询页面&#xff0c;明显响应时间过长&#xff08;12秒&#xff09;&#xff0c;不合理 优先排查 接口运行时长 经过打印&#xff0c;发现代码是正常的&#xff0c;且时间仅需不到一秒 进一步怀疑是 VUE框架的渲染加载…...

如何在MySQL中创建不同的索引和用途?

目录 1 基本的 CREATE INDEX 语法 2 创建单列索引 3 创建多列索引 4 创建唯一索引 5 创建全文索引 6 在表创建时添加索引 7 使用 ALTER TABLE 添加索引 8 删除索引 9 索引管理的最佳实践 10 示例 在 MySQL 中&#xff0c;索引&#xff08;index&#xff09;是一种用于…...

做鞋的网站/小红书关键词优化

---恢复内容开始--- 首先抛出一个问题&#xff1a; 为什么hashMap一般使用String作为key&#xff1f; 这是我学习前辈们的博文时看到的一个问题&#xff0c;觉着很有意思&#xff0c;所以记录下来. 原因1&#xff1a; 我当时的第一反应是&#xff1a;为什么不用String&#xff…...

做网站钱/seo外包公司兴田德润官方地址

https://segmentfault.com/a/1190000008767607 一、下载 1、下载地址&#xff1a; http://httpd.apache.org/download.cgi 2、找到Files for Micsoft Windows 3、选择ApacheHaus 4、根据系统选择对应的版本&#xff08;我选择64位的&#xff09;&#xff0c;开始下载&#xf…...

青岛商网站建设/seo专员

封装、继承、多态&#xff0c;增加代码复用性封装&#xff0c;给用户最简单的接口就可以了继承&#xff0c;代码复用多态&#xff1a;编译时多态是指方法的重载&#xff0c;运行时多态是指对象引用所指定的具体类型在运行时才能确定类图 泛化关系&#xff1a;继承&#xff0c;实…...

sae做的网站备份/怎样做推广更有效

双线服务器的控制问题&#xff1a; 要求:写出这个电信用户访问到双线web服务器时的IP变化过程(只写源IP,目标IP,和做SNAT还是DNAT等) 你觉得有没有问题? 实验环境: 精简一点可以使用下面的四台虚拟来做,并且要注意宿主机(真实机)不能在这里扮演角色,因为宿主机和任何虚拟机都是…...

不同类型网站比较/seo研究协会网是干什么的

目录 1、下载 2、解压 3、编译安装 1)修改代码 a.注释#if (APR_MAJOR_VERSION < 1)代码&#xff1a; b.把所有的remote_addr替换成client_addr 2&#xff09;编译 ​4、配置apache 1) httpd.conf 加上LoadModule bw_module modules/mod_bw.so 2) 网站配置 5、测…...

文档分享类网站建设/昆明网站seo服务

opencv下载&#xff1a;https://opencv.org/releases/ 下载链接&#xff1a;https://blog.csdn.net/bookzhan/article/details/104753855/ opencv_contrib:https://github.com/opencv/opencv_contrib/releases?after3.4.6...