Python学习从0开始——007输入与输出

Python学习从0开始——007输入与输出

  • 一、简单输出
  • 二、复杂输出
    • 2.1引用变量
    • 2.2format()函数
    • 2.3手动格式化
  • 三、读写文件
    • 3.1open()
    • 3.2操作文件对象
    • 3.3使用 json 保存结构化数据

一、简单输出

str() 函数返回供人阅读的值,repr() 则生成适于解释器读取的值(如果没有等效的语法,则强制执行 SyntaxError)。

>>> s = 'Hello, world.'
>>> str(s)
'Hello, world.'
>>> repr(s)
"'Hello, world.'">>> x = 10 * 3.25
>>> y = 200 * 200
>>> s = 'The value of x is ' + repr(x) + ', and y is ' + repr(y) + '...'
>>> print(s)
The value of x is 32.5, and y is 40000...>>> hello = 'hello, world\n'
>>> repr(hello)
'hello, world\n'>>> repr((x, y, ('spam', 'eggs')))
"(32.5, 40000, ('spam', 'eggs'))"

二、复杂输出

2.1引用变量

在字符串开头的引号/三引号前添加 f 或 F,在 { } 字符之间输入变量名称或表达式。

#小数点
>>> import math
>>> print(f'The value of pi is approximately {math.pi:.2f}.')
The value of pi is approximately 3.14.
>>> f'The value of pi is approximately {math.pi:.2f}.'
'The value of pi is approximately 3.14.'#列对齐,在 ':' 后传递整数,为该字段设置最小字符宽度
>>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678}
>>> for name, phone in table.items():
...     print(f'{name:10} ==> {phone:10d}')
... 
Sjoerd     ==>       4127
Jack       ==>       4098
Dcab       ==>       7678#输出前格式化
>>> animals = 'eels'
>>> print(f'My hovercraft is full of {animals}.')
My hovercraft is full of eels.
#repr()
>>> print(f'My hovercraft is full of {animals!r}.')
My hovercraft is full of 'eels'.
#str()
>>> print(f'My hovercraft is full of {animals!s}.')
My hovercraft is full of eels.
#ascii() 
>>> print(f'My hovercraft is full of {animals!a}.')
My hovercraft is full of 'eels'.#=说明符可被用于将一个表达式扩展为表达式文本、等号再加表达式求值结果的形式。
>>> bugs = 'roaches'
>>> count = 13
>>> area = 'living room'
>>> print(f'Debugging {bugs=} {count=} {area=}')
Debugging bugs='roaches' count=13 area='living room'

2.2format()函数

#按位置访问参数
>>> print('{0} and {1}'.format('spam', 'eggs'))
spam and eggs
>>> print('{1} and {0}'.format('spam', 'eggs'))
eggs and spam#按名称访问参数
>>> coord = {'latitude': '37.24N', 'longitude': '-115.81W'}
>>> 'Coordinates: {latitude}, {longitude}'.format(**coord)
'Coordinates: 37.24N, -115.81W'#访问参数的属性
>>> class Point:
...     def __init__(self, x, y):
...         self.x, self.y = x, y
...     def __str__(self):
...         return 'Point({self.x}, {self.y})'.format(self=self)
... 
>>> str(Point(4, 2))
'Point(4, 2)'#访问参数的项
>>> coord = (3, 5)
>>> 'X: {0[0]};  Y: {0[1]}'.format(coord)
'X: 3;  Y: 5'#使用逗号作为千位分隔符
>>> '{:,}'.format(1234567890)
'1,234,567,890'#特定类型的专属格式化
>> import datetime
>>> d = datetime.datetime(2024, 4, 4, 12, 15, 58)
>>> '{:%Y-%m-%d %H:%M:%S}'.format(d)
'2024-04-04 12:15:58'

2.3手动格式化

#str.rjust()左侧填充空格,对给定宽度字段中的字符串进行右对齐
#str.ljust() 和 str.center():左对齐和居中
>>> for x in range(1, 11):
...     print(repr(x).rjust(2), repr(x*x).rjust(3), end='|')
... 1   1| 2   4| 3   9| 4  16| 5  25| 6  36| 7  49| 8  64| 9  81|10 100|#左填充0,能识别正负>>> '12'.zfill(5)
'00012'
>>> '-3.14'.zfill(7)
'-003.14'

三、读写文件

3.1open()

#第一个实参是文件名。第二个实参是mode。
>>> f = open('workfile', 'w', encoding="utf-8")

mode 的值包括 ‘r’ ,表示文件只能读取;‘w’ 表示只能写入(现有同名文件会被覆盖);‘a’ 表示打开文件并追加内容,任何写入的数据会自动添加到文件末尾。mode 实参是可选的,省略时的默认值为 ‘r’。

'w’模式调用该函数后,文件无则新建,有则覆盖
在这里插入图片描述

在处理文件对象时,最好使用 with 关键字。优点是子句体结束后,文件会正确关闭,即便触发异常也可以。而且,使用 with 相比等效的 try-finally 代码块要简短得多:

>>> with open('workfile', encoding="utf-8") as f:
...     read_data = f.read()
... 
>>> f.closed
True

但是,调用 f.write() 时,未使用 with 关键字,或未调用 f.close(),即使程序正常退出,也可能导致 f.write() 的参数没有完全写入磁盘。

3.2操作文件对象

#在workfile中输入
This is the first line of the file.
Second line of the file
>>> f = open('workfile', 'r', encoding="utf-8")
#一次读取
>>> f.read()
'This is the first line of the file.\nSecond line of the file'
#读完为空
>>> f.read()
''#循环输出
>>> f = open('workfile', 'r', encoding="utf-8")
>>> for line in f:
...     print(line, end='')
... 
This is the first line of the file.
Second line of the file#按行读取
>>> f = open('workfile', 'r', encoding="utf-8")
>>> f.readline()
'This is the first line of the file.\n'
>>> f.readline()
'Second line of the file'
>>> f.readline()
''#覆盖写文件
>>> f = open('workfile', 'w', encoding="utf-8")
>>> f.write('This is a test\n')
15
>>> f.close()#追加
>>> f = open('workfile', 'a', encoding="utf-8")
>>> value = ('the answer', 42)
>>> s = str(value)  # convert the tuple to string
>>> f.write(s)
18
>>> f.close()

在这里插入图片描述
在这里插入图片描述

3.3使用 json 保存结构化数据

>>> import json
>>> x = [1, 'simple', 'list']
>>> json.dumps(x)
'[1, "simple", "list"]'

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

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

相关文章

使用LIMIT进行分页

SELECT employee_id, first_name, salary FROM employees LIMIT 0, 5; 0为偏移量, 5为条目数 每页pageSize条记录,显示第page页 LIMIT (page - 1) * pageSize, pageSize; # 或者 LIMIT pageSize OFFSET (page - 1) * pageSize;

百度富文本编辑器配置(vue3)

今天分享一下我做的项目里面的一个百度富文本的配置问题,安装配置流程以及如何解决的 1.首先是安装组件 # vue-ueditor-wrap v3 仅支持 Vue 3 npm i vue-ueditor-wrap3.x -S # or yarn add vue-ueditor-wrap3.x 2. 下载 UEditor UEditor 并不支持通过 npm 的方式…

YOLOv9改进策略 :小目标 | 注意力 |卷积和注意力融合模块(CAFMAttention) | 2024年4月最新成果

💡💡💡本文独家改进:卷积和注意力融合模块(CAFMAttention),增强对全局和局部特征的提取能力,2024年最新的改进思路 💡💡💡创新点:卷积和注意力巧妙设计 💡💡💡如何跟YOLOv8结合:1)放在backbone后增强对全局和局部特征的提取能力;2)放在detect前面,增…

【蓝桥杯嵌入式】按键控制LED与LCD(必考三件套)

【蓝桥杯嵌入式】按键控制LED与LCD(必考三件套) 前言LED相关功能的实现LED基础功能函数(点亮、全熄灭、翻转)LED的闪烁与定时点亮熄灭流水灯的实现 按键的扫描及长短按、双击的实现按键的短按按键业务逻辑程序进程按键的长短按长短…

再聊一聊AUC指标

关于模型评估的指标,之前已经写过不少这方面的文章,最近在实践中又有了一点新的思考,本文对模型评估中的AUC指标再进行一些简单的探讨。 情况一,以下图中的数据为例,1代表用户发生逾期,标记为坏样本&#x…

C#将Console写至文件,且文件固定最大长度

参考文章 将C#的Console.Write同步到控制台和log文件输出 业务需求 在生产环境中,控制台窗口不便展示出来。 为了在生产环境中,完整记录控制台应用的输出,选择将其输出到文件中。 但是,一次性存储所有输出的话,文件会…

Stable Diffusion介绍

Stable Diffusion是一种前沿的开源深度学习模型框架,专门设计用于从文本描述生成高质量的图像。这种称为文本到图像生成的技术,利用了大规模变换器(transformers)和生成对抗网络(GANs)的力量,以…

五分钟快速搭建五金行业小程序商城教程解析

作为五金行业的从业者,你可能想要拓展线上业务,提供更方便快捷的购物体验给顾客。而小程序商城成为了一种非常受欢迎的方式。但是,你可能觉得不懂代码无法实现这样的小程序商城。现在,我将通过以下步骤,教你如何在五分…

Github项目推荐-ChatGPT-Admin-Web

项目地址 https://github.com/AprilNEA/ChatGPT-Admin-Web 项目简介 通过api接入大模型,并基于此封装了一层用户管理的功能,适合团队内使用。 项目截图

Vue基础知识:Vue路由——重定向,以及?(可选符)的使用

当网页打开时,url默认是/路径(根路径),未匹配到组件时,会出现空白,为了解决这个问题 就要利用重定向 重定向:匹配path后,强制跳转path路径 重定向的语法: {path:匹配…

爬虫实战一、Scrapy开发环境(Win10+Anaconda3)搭建

#前言 在这儿推荐使用Anaconda进行安装,并不推荐大家用pythonpip安装,因为pythonpip的坑实在是太多了。 #一、环境中准备: Win10(企业版)Anaconda3-5.0.1-Windows-x86_64,下载地址,如果打不开…

易宝OA GetProductInv SQL注入漏洞复现

0x01 产品简介 易宝OA系统是一种专门为企业和机构的日常办公工作提供服务的综合性软件平台,具有信息管理、 流程管理 、知识管理(档案和业务管理)、协同办公等多种功能。 0x02 漏洞概述 易宝OA /SmartTradeScan/Inventory/GetProductInv 接口处存在SQL注入漏洞,未经身份…

nodejs应用程序不同部署环境下的差异配置方案

一、背景 nodejs应用程序,不同于java语言使用分布式配置,当部署于不同的环境里,因为环境的差异,配置项的值也不尽相同。 最常见的差异就是数据库的连接信息,而代码是一份,不能把生产环境的信息暴露在非生产…

day02 51单片机

51单片机学习 1闪烁LED 1.1 需求描述 这个案例,我们要让P00引脚对应的LED按照1秒闪烁1次。 1.2 硬件设计 1.1 软件设计 1)LED闪烁的代码 想让LED闪烁,就需要P00的值不断在0和1之间循环变化。实现这一功能的代码也很简单: #include <STC89C5xRC.H> //包含STC89…

xss【2】

1.xss钓鱼 钓鱼攻击利用页面&#xff0c;fish.php黑客钓鱼获取到账号密码存储的位置 xss进行键盘记录 2.xss常规防范 3.xss验证payload XSS&#xff08;跨站攻击&#xff09;_details/open/ontoggle-CSDN博客

数据结构(3)----栈和队列

目录 一.栈 1.栈的基本概念 2.栈的基本操作 3.顺序栈的实现 •顺序栈的定义 •顺序栈的初始化 •进栈操作 •出栈操作 •读栈顶元素操作 •若使用另一种方式: 4.链栈的实现 •链栈的进栈操作 •链栈的出栈操作 •读栈顶元素 二.队列 1.队列的基本概念 2.队列的基…

Annaconda的替代品miniforge!

用了多年的Annaconda竟然要收费了&#xff08;个人不收费&#xff0c;企业收费&#xff0c;但个人电脑在企业IP下&#xff0c;还是被警告了&#xff09;&#xff0c;只能用miniforge 全面替换了&#xff01; 一、卸载anaconda windows下卸载&#xff0c; 设置 -> 应用和功…

【算法】动态规划练习(一)

目录 1137. 第 N 个泰波那契数 分析 代码 面试题 08.01. 三步问题 分析 代码 746. 使用最小花费爬楼梯 分析 代码 泰波那契序列 Tn 定义如下&#xff1a; T0 0, T1 1, T2 1, 且在 n > 0 的条件下 Tn3 Tn Tn1 Tn2 给你整数 n&#xff0c;请返回第 n 个泰波…

C++进阶篇11---IO流

一、对C语言的输入输出的理解 C语言中我们经常用scanf()和printf()进行输入输出&#xff0c;形象的描述它们的作用如下 对于缓冲区的理解&#xff1a; 可以屏蔽掉低级I/O的实现&#xff0c;低级I/O的实现依赖操作系统本身内核的实现&#xff0c;所以如果能够屏蔽这部分的差异…

基于PHP的校园招聘管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的校园招聘管理系统 一 介绍 此校园招聘管理系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为个人用户&#xff0c;企业和管理员三种。 技术栈&#xff1a;phpmysqlbootstrapphpstudyvscode 二…