欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

3.从print到I/O

程序员文章站 2022-04-15 16:36:53
为何对双引号念念不忘? print("hello, world!") hello, world!   平x而论,既然在意双引号的去掉,为何不在意括号的去掉?甚至是print的去掉?前面说过,python程序就是一堆指令的集合,print()就是试图向计算机传递的指令,而print ......

为何对双引号念念不忘?

>>> print("hello, world!")
hello, world!

  平x而论,既然在意双引号的去掉,为何不在意括号的去掉?甚至是print的去掉?前面说过,python程序就是一堆指令的集合,print()就是试图向计算机传递的指令,而print("hello, world!")这整个程序就是试图让计算机打印"hello, world!"的指令,所以当计算机最后显示打印结果时只关注print()指令中的数据,因此,屏幕显示就没有显示出print(),同理,更进一步,在将字符串转化成图像方阵显示在屏幕的时候,把字符串标识(双引号或单引号)也隐去掉了!

print是i/o的一种方法

1. print

  print只是python程序输入输出(i/o)方法的一种,输出用户容易看懂的形式,而省掉其中相当多的细节,可以说是抽象化以及人性化吧。实际上,从程序执行到在屏幕上显示,经过一系列的过程,频繁的输入输出(i/o)势必增加系统的开销。输入输出(i/o)是计算机的一个子系统,使计算机和外界可以相互间通信,输出系统负责将计算机的处理结果输出到计算机外部,输入系统负责从计算机外部接收输入数据和程序。i/o设备:键盘、鼠标、显示器、磁盘。

2. 表达式

>>> 1+1
2
>>> 2*2
4
>>> 1+2*3
7
>>> 

  由表达式输出只显示出来只有在交互式解释器内才有效,而作为脚本运行是不会打印出来的。

3. input()

>>> x=input('x:')
x:1
>>> x
'1'
>>> type(x)
<class 'str'>
>>> x=int(x)
>>> x
1
>>> type(x)
<class 'int'>

  input() 函数用一个字符串作为其参数,然后显示给用户。然后等待用户键入一些东西,按返回键。一旦用户键入,input() 函数就返回该文本。

4. 文件file

  要创建一个文件,需要借助于open函数,

>>> f=open(r'test.txt','w')
>>> f.write("hello, world!")
13
>>> f.close()    # 记得要关闭文件才会写入,否则一直在内存中储存
>>> import json
>>> mydict={3:'i/o'}
>>> with open(r'test.txt', 'a', encoding='utf-8') as f:  # 'a'追加方式写入
        f.write(json.dumps(mydict,ensure_ascii=false)+'\n') # ensure_ascii=false,输出中文


13   # 返回长度
>>> 

  此时,默认路径下已经创建了test.txt文件,并写入了"hello, world!"。还有很多方法,以后再写。至于最后文件中的追加内容是这样的{"3": "i/o"},因为json中的键值一定要用双引号括起。json.dumps()方法将python数据结构转化为json数据结构,将字典转化为字符串,写入文件中。另外json.loads()则将json数据转化为python数据结构,将字符串转化为字典。其中自省不再赘述。json.dump()和json.load()主要用来读写json文件。

>>> import json
>>> mydict={3:'i/o'}
>>> import json
>>> type(json.dumps(mydict))
<class 'str'>
>>> b=json.dumps(mydict)
>>> type(json.loads(b))
<class 'dict'>

  对于编程i/o,流是一个会涉及并很常见的概念,这里先挖个坑,日后再填。