Python的输入输出
本文最后更新于1723天前,其中的信息可能已经有所发展或是发生改变。

一:Python2.x版本下的输入输出

Python2.x 下的输入

 
 1)raw_input   
格式:result = raw_input("提示信息")
功能:1)会等待用户输入内容,直到用户按下Enter 2)会将用户输入的内容当做"字符串",传递给接收的变量


2)input   格式:result = input("提示信息")
功能: 1):会等待用户输入内容,直到用户按下Enter
    2):会将用户输入的内容当做"代码" 进行处理!
    
    可以理解为input = raw_input +  eval

1 content = raw_input("Please input content:: ")
2 print(type(content))
3 print(content)

输出结果:

Please input content:: 1+1
<type 'str'>
1+1

当我们输出abcd时候

Please input content:: abcd
<type 'str'>
abcd

此时可以看出不论我们输入什么内容,raw_input都当做字符串来处理了。但是Python2.x版本下的input却不是如此

1 result = input("Please input content:: ")
2 print(type(result))
3 
4 print(result)

输出结果:

Please input content:: 1+1
<type 'int'>
2

而当我们输出内容为abc的时候会发生什么呢?

Please input content:: abc
Traceback (most recent call last):
File "G:/PythonProject/DemoTest01/css/001/PythonInput.py", line 23, in <module>
result = input("Please input content:: ")
File "<string>", line 1, in <module>
NameError: name 'abc' is not defined

此时报错了,说abc是未定义的。此时可以看出Python2.x版本下的input输入是把用户输入的内容当做"代码一样"来处理

1 # content = "1+1"
2 content = raw_input("Please input content:: ")
3 result = eval(content)
4 print type(result)
5 print(result)

输出结果为:

Please input content:: 1+1
<type 'int'>
2

此时可以看出raw_input + eval()函数可以实现input的效果

 

Python2.x 下的输出

Python2.x   print语句     print xxx
复制代码
 1 # Python2.x版本
 2 # 输出一个值
 3 print 123
 4 
 5 # 输出一个变量
 6 num = 20
 7 print num
 8 
 9 # 输出多个变量
10 num1 = 21
11 print num, num1
12 
13 # 格式化输出
14 name = "Lucy"
15 age = 17
16 # 例如我想输出 我的名字叫xxx,年龄xxx
17 print "我的名字叫", name, ",年龄", age
18 
19 print "我的名字叫%s,年龄%d" % (name, age)
20 
21 print "我的名字叫{0},年龄{1}".format(name, age)
22 
23 # 输出到文件当中
24 f = open("test.txt", "w")
25 print >> f, "hello word"
26 
27 
28 # 输出不自动换行
29 print "1"
30 print "2"
31 print "3"
32 # 以上会自动换行,下面的不会自动换行
33 print "1",
34 print "2",
35 print "3"
36 
37 # 输出的各个数据,使用分隔符进行分割
38 print "a", "-", "b", "-", "c"
39 print "-".join(["a", "b", "c"])
复制代码
输出结果为:
123
20
20 21
我的名字叫 Lucy ,年龄 17
我的名字叫Lucy,年龄17
我的名字叫Lucy,年龄17
1
2
3
1 2 3
a - b - c
a-b-c

 

而且test.txt确实写入了数据

Python3.x版本下的输入

Python3.x版本的
input 相当于Python2.x版本中的raw_input

如果想要在Python3.x版本中实现类似于Python2.x中的input功能,可以使用eval()函数实现
1 result = input("Please input content:: ")
2 print(type(result))
3 print(result)
输出结果为::
Please input content:: 1+1
<class 'str'>
1+1

 

当我们输入内容为abc的时候

Please input content:: abc
<class 'str'>
abc

result = input("Please input content:: ")
ret = eval(result)
print(type(ret))
print(ret)
输出结果为::
Please input content:: 1+1
<class 'int'>
2

Python3.x版本下的输出


Python3.x     print函数    print(values,sep,end,file,flush)
values:需要输出的值  多个值,使用","分割
sep:分割符,多个值被输出以后,值与值之间,会添加指定的分隔符
end: 1):输出完毕以后,以指定的字符结束    2):默认是换行'\n'
file:表示输出的目标。默认是标准的输出(控制台) 还可以是一个可以写入的文件句柄
flush:表示立即输出的意思  值为Bool类型

复制代码
 1 # 导入文件
 2 import sys
 3 from time import sleep
 4 
 5 
 6 # Python3.x版本下
 7 # 输出一个值
 8 print(123)
 9 
10 # 输出一个变量
11 num = 6
12 print(num)
13 
14 # 输出多个变量
15 num1 = 8
16 print(num, num1)
17 
18 # 格式化输出
19 name = "cxq"
20 age = 27
21 # 输出:我的名字是xxx,年龄xxx
22 print("我的名字是%s,年龄%d"%(name, age))
23 print("我的名字是{0},年龄{1}".format(name, age))
24 
25 
26 # 输出到文件当中
27 f = open("test.txt", "w")
28 print("what are you doing?", file=f)
29 
30 # 标准输出
31 print("how are you", file=sys.stdout)
32 
33 # 输出不换行
34 print("abc", end="")
35 print("efg", end="\n")
36 
37 # 输出各个数据,使用分隔符分割
38 print("1", "2", "3", sep="-")
复制代码

输出结果为::

123
6
6 8
我的名字是cxq,年龄27
我的名字是cxq,年龄27
how are you
abcefg
1-2-3

关于flush参数的说明::
1 # flush 参数的说明
2 print("hello world", end="")
3 
4 # 如果我在这里停留5秒钟,会发现hello world不会立即刷新出来到控制台上面,(其实是在缓冲区里面),而是5秒之后才打印出来
5 sleep(5)
1 # 但是如果我换一种方法以后,hello world就会立马刷新到控制台上面
2 print("hello world", end="\n")
3 print("hello world\n", end="")
4 
5 sleep(5)

或者使用

1 # flush 就是刷新缓冲区数据,立即输出的作用
2 print("hello world", end="", flush=True)
3 sleep(5)

这三种方式都会是缓冲区里面的内容立马刷新出来

点击数:123

    暂无评论

    发送评论 编辑评论

    
    				
    |´・ω・)ノ
    ヾ(≧∇≦*)ゝ
    (☆ω☆)
    (╯‵□′)╯︵┴─┴
     ̄﹃ ̄
    (/ω\)
    ∠( ᐛ 」∠)_
    (๑•̀ㅁ•́ฅ)
    →_→
    ୧(๑•̀⌄•́๑)૭
    ٩(ˊᗜˋ*)و
    (ノ°ο°)ノ
    (´இ皿இ`)
    ⌇●﹏●⌇
    (ฅ´ω`ฅ)
    (╯°A°)╯︵○○○
    φ( ̄∇ ̄o)
    ヾ(´・ ・`。)ノ"
    ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
    (ó﹏ò。)
    Σ(っ °Д °;)っ
    ( ,,´・ω・)ノ"(´っω・`。)
    ╮(╯▽╰)╭
    o(*////▽////*)q
    >﹏<
    ( ๑´•ω•) "(ㆆᴗㆆ)
    😂
    😀
    😅
    😊
    🙂
    🙃
    😌
    😍
    😘
    😜
    😝
    😏
    😒
    🙄
    😳
    😡
    😔
    😫
    😱
    😭
    💩
    👻
    🙌
    🖕
    👍
    👫
    👬
    👭
    🌚
    🌝
    🙈
    💊
    😶
    🙏
    🍦
    🍉
    😣
    Source: github.com/k4yt3x/flowerhd
    颜文字
    Emoji
    小恐龙
    花!
    上一篇
    下一篇