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

news2025/1/24 5:37:12

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.coloradmin.cn/o/1576027.html

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

相关文章

加州大学欧文分校英语基础语法专项课程01:Word Forms and Simple Present Tense 学习笔记

Word Forms and Simple Present Tense Course Certificate 本文是学习Coursera上 Word Forms and Simple Present Tense 这门课程的学习笔记。 文章目录 Word Forms and Simple Present TenseWeek 01: Introduction & BE VerbLearning Objectives Word FormsWord Forms (P…

【AI】ubuntu 22.04 本地搭建Qwen-VL 支持图片识别的大语言模型 AI视觉

下载源代码 yeqiangyeqiang-MS-7B23:~/Downloads/src$ git clone https://gh-proxy.com/https://github.com/QwenLM/Qwen-VL 正克隆到 Qwen-VL... remote: Enumerating objects: 584, done. remote: Counting objects: 100% (305/305), done. remote: Compressing objects: 10…

Java单链表和LinkedList的实现

一、单链表的实现 无头单向非循环链表 定义异常用于判断所给位置是否合法 public class IndexNotLegal extends RuntimeException{public IndexNotLegal(){}public IndexNotLegal(String smg){super(smg);} } class ListNode中包含当前节点的值和下一个节点指向 实现链表的…

摄影杂记二

一、相机操作指南 ⑴按键说明: 除了常规的几个模式,里面就特殊场景可以看一下,有全景,支持摇摄。 lock:多功能锁。可以锁定控制按钮和控制环。在设置中找到多功能锁,可以设置锁定什么。 m-fn:多…

自定义校验器

1.前端校验 <template><el-dialog:title"!dataForm.brandId ? 新增 : 修改":close-on-click-modal"false":visible.sync"visible"><el-form:model"dataForm":rules"dataRule"ref"dataForm"keyu…

解决方案AssertionError: Torch not compiled with CUDA enabled

文章目录 一、现象二、解决方案 一、现象 报错显示 s torch.from_numpy(padding_seq([s])).cuda().long() File "D:\Anaconda3\lib\site-packages\torch\cuda\__init__.py", line 221, in _lazy_initraise AssertionError("Torch not compiled with CUDA ena…

基于微信小程序的亿家旺生鲜云订单零售系统的设计与实现(论文+源码)_kaic

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了亿家旺生鲜云订单零售系统的开发全过程。通过分析亿家旺生鲜云订单零售系统管理的不足&#xff0c;创建了一个计算机管理亿家旺生鲜云订单零售系统的方案。文章介…

Text-Driven Object Detection 关于结合文本的目标检测

1、简单介绍 首先说明&#xff0c;本文目的主要是水一篇CSDN博客&#xff0c;顺便说一下和标题相关的认识。 近几年&#xff0c;在目标检测领域关于多模态的目标检测工作已成了主流&#xff0c;趋势仍在延续&#xff0c;未来仍有很大挖掘空间。这里说的多模态不是简单的多源数…

Sql优化篇-干货总结大全

前言 我们经常会听到Sql优化的一个概念&#xff0c;但其实sql优化不一定就是说sql语句写的有问题&#xff0c;它可能是因为cpu资源爆满&#xff0c;或者内存空间不足&#xff0c;它也会导致sql执行卡顿&#xff1b;或者说表设计层面&#xff0c;过滤条件没有加索引之类的 等等…

【STL】list的底层原理及其实现

文章目录 list的介绍list的整体结构设计list的构造代码模拟实现&#xff1a; list节点类的实现list 迭代器Iterator的使用以及实现Iterator的使用Iterator的底层实现反向迭代器 list与vector的比较实现list类 list的介绍 list是可以在常数范围内在任意位置进行插入和删除的序列…

springCloud-LoadBalancer负载均衡微服务负载均衡器LoadBalancer

2020年前SpringCloud是采用Ribbon作为负载均衡实现&#xff0c;但是在2020后采用了LoadBalancer替代 LoadBalancer默认提供了两种负载均衡策略&#xff08;只能通过配置类来修改负载均衡策略&#xff09; 1.RandomLoadBalancer-随机分配策略 2.RoundRobinLoadBalancer-轮询分配…

【WSN覆盖优化】基于灰狼优化算法的无线传感器网络覆盖 GWO-WSN覆盖优化【Matlab代码#74】

文章目录 【可更换其他算法&#xff0c;获取资源请见文章第5节&#xff1a;资源获取】1. 灰狼优化算法2. WSN节点感知模型3. 部分代码展示4. 仿真结果展示5. 资源获取 【可更换其他算法&#xff0c;获取资源请见文章第5节&#xff1a;资源获取】 1. 灰狼优化算法 此处略。 2.…

尚硅谷html5+css3(1)html相关知识

1.基本标签&#xff1a; <h1>最大的标题字号 <h2>二号标题字号 <p>换行 2.根标签<html> 包括<head>和<body> <html><head><title>title</title><body>body</body></head> </html> 3…

Golang单元测试和压力测试

一.单元测试 1.1 go test工具 go语言中的测试依赖go test命令。编写测试代码和编写普通的Go代码过程类似&#xff0c;并不需要学习新的语法&#xff0c;规则和工具。 go test命令是一个按照一定约定和组织的测试代码的驱动程序。在包目录内&#xff0c;所有以_test.go为后缀名的…

2.网络编程-HTTP和HTTPS

目录 HTTP介绍 HTTP协议主要组成部分 GET 和 POST有什么区别 常见的 HTTP 状态码有哪些 http状态码100 HTTP1.1 和 HTTP1.0 的区别有哪些 HTTPS 和 HTTP 的区别是什么 HTTP2 和 HTTP1.1 的区别是什么 HTTP3 和 HTTP2 的区别是什么 HTTPS的请求过程 对称加密和非对称…

SVG图标显示

SVG图标显示 1.安装SharpVectors.Wpf包 2.添加引用 xmlns:svgc"http://sharpvectors.codeplex.com/svgc/"3.加载svg文件&#xff0c;生成操作选择资源(Resource) 4.UI界面显示SVG图像 <Button Click"OnSaveFileClick" ToolTip"Save Svg File…

云原生安全当前的挑战与解决办法

云原生安全作为一种新兴的安全理念&#xff0c;不仅解决云计算普及带来的安全问题&#xff0c;更强调以原生的思维构建云上安全建设、部署与应用&#xff0c;推动安全与云计算深度融合。所以现在云原生安全在云安全领域越来受到重视&#xff0c;云安全厂商在这块的投入也是越来…

蓝桥杯—PCF8951

1.整个系统靠SDA和SCL实现完善的全双工数据传输 2.引脚图 AN1为光明电阻 AN3为滑动变阻 A0-A2均接地 时钟线连P20 地址线连P21 实物图 iic总线 谁控制时钟线谁是主设备 时序相关 官方提供的底层驱动代码 /* # I2C代码片段说明1. 本文件夹中提供的驱动代码供参赛选手完成…

Octopus V2:设备端super agent的高级语言模型

论文&#xff1a;Octopus v2: On-device language model for super agent论文地址&#xff1a;https://arxiv.org/abs/2404.01744模型主页&#xff1a;https://huggingface.co/NexaAIDev/Octopus-v2 Octopus-V2-2B Octopus-V2-2B 是一款具有20亿参数的开源先进语言模型&#…

SQL Sever 2008 安装教程

先从官网下载程序&#xff1a;下载地址 打开上述链接后&#xff0c;点击下载按钮。 就会跳出下面这个界面&#xff0c;如果你的电脑是64位的请选择下图中这两个程序。 下载完成后&#xff0c;在电脑磁盘中找到这两个文件&#xff0c;注意安装的顺序&#xff0c;先安装 SQLEXPR…