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.hqwc.cn/news/601841.html

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

相关文章

德兰梅尔:耐高温热销的膜元件亮相2024上海国际生物发酵展

德兰梅尔:耐高温热销的膜元件盛装亮相2024上海国际生物发酵展,8月7-9号上海新国际博览中心与您不见不散! 据了解,从成立至今,德兰梅尔一直专注膜技术、膜产品的开发生产。在中国市场上,德兰梅尔刚步入中国…

峥嵘九载,逐云而上:青果乔迁新址,乘风破浪再起新篇

4月1日,近百名员工和诸多合作伙伴齐聚,共同见证了青果九周年庆典暨乔迁仪式这一里程碑式的时刻。 新起点,新征程,再启航! 以新为序,共赴新征程 在典礼上,青果创始人和高管分别发表了致辞&#…

Python技能树学习-函数

题目一:递归调用 函数的参数: def dump(index, default0, *args, **kw): print(打印函数参数) print(---) print(index:, index) print(default:, default) for i, arg in enumerate(args): print(farg[{i}]:, arg) for…

力姆泰克医疗电动推杆

力姆泰克医疗电动推杆,宛如医疗领域的精巧舞者,以其卓越的性能和稳定的表现,为众多医疗应用献上了精彩的演绎。它犹如一位敬业的演员,始终保持着高度的灵敏度和精确度,无论是微调还是大幅移动,都能准确无误…

wireshark抓包新手使用教程

Wireshark是非常流行的网络封包分析软件,可以截取各种网络数据包,并显示数据包详细信息。常用于开发测试过程各种问题定位。本文主要内容包括: 1、Wireshark软件下载和安装以及Wireshark主界面介绍。 2、WireShark简单抓包示例。通过该例子学…

好用的AI智能工具:AI写作、AI绘画、AI翻译全都有

在科技不断进步的今天,人工智能(AI)已经成为我们日常生活中不可或缺的一部分。它不仅在各个领域都有应用,还为我们提供了许多方便快捷的工具。对此,小编今天推荐7款人工智能软件,AI写作、AI绘画、AI翻译全都…

测试开发面经(Flask,轻量级Web框架)

1. Flask的核心特点 a. 轻量级:核心简洁,只提供了基本的功能,其他高级功能可以通过插件或扩展来添加。 b. 灵活性:允许开发者选择适合自己项目的组件和工具,没有强制的项目结构和设计模式。 c. 易于扩展:提…

别再抱怨学鸿蒙没方向了! 这鸿蒙全栈(南北双向)开发学习路线收藏好!

在互联网技术不断发展的现在,鸿蒙操作系统的出现标志着是能技术领域的一次重大突破,鸿蒙作为华为推出的一代操作系统,鸿蒙不仅达代表了自主创新的力量,还因为独特的分布式架构和全场景适配能力而备受关注。随着鸿蒙生态的不断完善…

HarmonyOS 应用开发-边缓存边播放案例

介绍 OhosVideoCache是一个支持边播放边缓存的库,只需要将音视频的url传递给OhosVideoCache处理之后再设置给播放器, OhosVideoCache就可以一边下载音视频数据并保存在本地,一边读取本地缓存返回给播放器,使用者无需进行其他操作…

OneFlow深度学习框架:技术优势与功能特点

文章目录 一、概要二、核心技术优势2.1、分布式训练2.2、极致性能2.3、端到端的智能数据平台2.4、开放灵活的算法支持2.5、跨平台支持 三、功能特点四、OneFlow与TensorFlow对比四、安装OneFlow五、总结 一、概要 OneFlow是一款基于Python的开源深度学习框架,旨在实…

[StartingPoint][Tier1]Pennyworth

Important Jenkins是一个用于自动化构建、测试和部署软件项目的开源持续集成和持续部署(CI/CD)工具。它允许开发团队自动执行和监控在软件开发过程中的重复性任务,例如构建代码、运行测试、部署应用程序等。Jenkins提供了一个易于使用的Web界…

Go协程池gopool源码解析

1、gopool简介 Repository:https://github.com/bytedance/gopkg/tree/develop/util/gopool gopool is a high-performance goroutine pool which aims to reuse goroutines and limit the number of goroutines. It is an alternative to the go keyword. gopool的…