Python输入输出

        虽然现在用Python2的人比较少,但是为了对比Python2与Python3的区别,这里就把两者都写上吧,写直接看一个大纲吧。

        Python2中有两个输入函数——raw_input()、input(),那么两个的具体区别是什么呢?raw_input()会把用户输入的任何内容都当做字符串处理,而input()会把用户输入的内容都当做“代码”来处理,可能单纯解释还是不太理解,没关系,我们用下面的代码示例来说明:

content = raw_input('请输入内容')
print(type(content))
print(content)

         可以看到虽然输入1+1,但是raw_input()会把它转换为字符串,再看看input(),如下:

content = input('请输入内容')
print(type(content))
print(content)

        同样输入的是1+1,input会把它当做“代码”来处理,直接计算1+1的结果了。

        Python3中只有一个输入函数——input(),Python3中的input()函数其实相当于Python2中的raw_input()函数即也是把用户输入的内容当做字符串来处理,如下:

content = input('请输入内容:')
print(type(content))
print(content)

        输入1+1,同样是当做字符串来处理,就如Python2中的raw_input()效果一样。那么问题就来了,有没有什么办法能实现Python2中的input()函数的效果呢?答案是肯定的,那就是eval()函数,如下示例:

content = eval(input('请输入内容:'))
print(type(content))
print(content)

         由图可知,在input函数外面套上一个eval()函数即可把输入的内容当做“代码”来处理。

        Python2与Python3的输出差不多,区别就是有无(),即在Python2中直接print 要输出的内容,而在Python3中则是print(要输出的值),如下:

print 值     # Python2输出格式
print(值)    # Python3输出格式

        那么我们就以Python3的为例来说明,Python2就是在Python3的基础上去括号。 

        输出的基本格式如下:

print(值)                    # 输出一个值
print(变量名)                # 输出一个变量的值
print(变量名1, 变量名2)       # 输出多个变量的值,中间用逗号隔开

        格式化输出:

        先看两个示例,再来具体说说格式化输出的样式。两个简单示例如下:

name = 'bbcy'
age = 22

# 我的名字是xxx,年龄是xxx
print('我的名字是%s,年龄是%d' % (name, age))       
print('我的名字是{},年龄是{}'.format(name, age)) # 这只是format的最简单的用法,其他以后说
print(f'我的名字是{name},年龄是{age}')  # Python3.6过后才能用

         # %[(name)][flags][width][.precision]typecode,各个表示的含义如下:

# []:可以省略
# (name)
# 表示根据制定的名称(key),查找对应的值,格式化到字符串中
# example
mathscore = 59
englishscore = 58
# 输出结果均为我的数学分数是59, 英文的分数是:58
print('我的数学分数是%d, 英文的分数是:%d' % (mathscore, englishscore))
print('我的数学分数是%(ms)d, 英文的分数是:%(es)d' % ({'es': englishscore, 'ms': mathscore}))

# width,表示占用的宽度
print("%10d" % mathscore)
# 输出结果为:        59       59左边有8个空格

# flags,表示对齐方式 空表示右对齐,-表示左对齐,空格表示在正数的左侧填一个空格从而与负数对齐,0表
# 示0填充
print('%-10d' % mathscore)
print('% d' % mathscore)
print('%010d' % mathscore)  # 输出结果:0000000059

# .precision  表示要保留的小数位数
score = 59.9
print('%.2f' % score)   # 保留两位小数,结果为:59.90

        typecode的种类比较多,看下面的图片,这里不一一说明。

        最后再来说说print函数里面各个参数的作用吧。

        print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

# 输出的各个数据,使用分隔符分割
print('1', '2', '3', sep="=")
# 结果:1=2=3
# 输出不自动换行
print('abc', end='*')
# end作用就是输出完内容后是以什么结尾
# 结果:abc*
# 输出到文件中
f = open('test.txt', 'w')      # 以只写的方式打开文件,后面再讲
print('Hello World', file=f)   # 把‘Hello World’输出到test.txt文件中
f.close()                      # 打开的文件必须关闭,到后面文件管理再讲

         flush参数有点复杂,我这里只是简单说明一下,了解就行。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值