Python 输出及输出格式化-随记

import sys
"""
输出的三种方式:
一、print()
二、表达式语句
三、第三种方式是使用文件对象的 write() 方法,标准输出文件可以用 sys.stdout 引用。

输出多样式,可以用 str.format() 函数来格式化输出值。
转换成字符串:
1、str(): 函数返回一个用户易读的表达形式。
2、repr(): 产生一个解释器易读的表达形式。repr()的输入对python比较友好,适合开发和调试阶段使用。
str()会去掉一层引号,而repr()会增加一层引号,用来表示原内容
IDE的原因,不能直接输出变量,需要print,网上描述的就不能展示出来,目前能展示出来的区别就是使用场景
"""
print("-------------------str()与repr()在字符串的区别-------------------")
s='I love python!\n'
n=83
print("str(s):",str(s))      # 输出 I love python! 后面加换行
print("repr(s):",repr(s))      # 输出 'I love python!\n'  是带了单引号的,返回原始内容,可以起到转义特殊字符
# print(eval(str(s)))  # 此时就会报错,str(s)外层不带引号;SyntaxError: invalid syntax
print("表达式eval(repr(s)):",eval(repr(s)))  # 此处就会通过表达式eval()将‘\n’换行表达出来

# eval() 函数用来执行一个字符串表达式,并返回表达式的值。
print("表达式repr(n):", eval(repr(n)+'+2') )   # 运算"83+2"=85
print("表达式str(n):", eval(str(n)+'+2') )   # 运算"83+2"=85


print("-------------------输出方式-------------------")
x = 10 * 3.25
y = 'I love python\n'
s2 = 'x 的值为: ' + repr(x) + ',  y 的值为:' + repr(y) + ' !转义,不换行'  # repr()可以对x,y中的原内容进行传递
s3 = 'x 的值为: ' + str(x) + ',  y 的值为:' + str(y) + ' !不转义,换行'
# s2 在Python console下是可以打印展示出来的
print("s2的内容: ",s2)
print("s3的内容: ",s3)
sys.stdout.write("write s2:"+s2)

print()
# sep参数间连接符号,默认sep=' ';end结束符号,结束不换行,默认end='\n'
print('12','22',sep='###',end='')
print()

'''缓冲区的刷新方式:
1、flush()刷新缓存区
2、缓冲区满时,自动刷新
3、文件关闭或者是程序结束自动刷新。'''
sys.stdout.flush()  # 刷新缓存,当前貌似没看出加了或者没加的区别,先记下

print("\n-------------------输出展示格式化-------------------")  # sys.stdout.write输出是不换行的,故加\n进行换行

print('I\'m %s and %d years old!' % ('zhangSan',24))

print('I\'m {} and {} years old!'.format('zhangSan', '24'))
print('I\'m {name} and {age} years old!'.format(name='zhangSan',age= '24'))   # 关键字对应参数
print('I\'m {1} and {0} years old!'.format('24','zhangSan'))   # 数字表示参数位置

'''!a (使用 ascii()), !s (使用 str()) 和 !r (使用 repr()) 可以用于在格式化某个值之前对其进行转化'''
pi=3.141592653589793
print('{:09.3f}'.format(pi))   # 字符长度9,小数点保留两位
print('{!a}'.format(pi))
print('{!s}'.format(pi))
print('{!r}'.format(pi))

''' 传入一个字典, 然后使用方括号 [] 来访问键值 '''
myname={'name':'zhangsan','age':24,'food':'apple'}
print("My name is {0[name]:s} , and {0[age]:d} !".format(myname))
'''也可以通过在 table 变量前使用 ** 来实现相同的功能'''
print("My name is {name:s} , and {age:d} years old , I like {food}!".format(**myname))

print()
for n in range(1,4):
    print('{0:02d},{1:03d},{2:04d}'.format(n,n**2,n**3))   # ‘:’后为展示格式,‘0’补位


'''格式填充
1、rjust()方法, 它可以将字符串靠右, 并在左边填充空格。
2、ljust()方法, 它可以将字符串靠左, 并在右边填充空格。
3、center()方法, 它可以将字符串居中, 并在两边填充空格。 这些方法并不会写任何东西, 它们仅仅返回新的字符串。
4、zfill(), 它会在数字的左边填充 0
'''
# 取平方,立方
print("rjust()方法, 它可以将字符串靠右, 并在左边填充空格")
for index1 in range(1,4):
    print(repr(index1).rjust(5),repr(index1*index1).rjust(5),end=" ")
    print(repr(index1**3).rjust(5))

print("ljust()方法, 它可以将字符串靠左, 并在右边填充空格。")
for index2 in range(1,4):
    print(repr(index2).ljust(5),repr(index2*index2).ljust(5),end=" ")
    print(repr(index2**3).ljust(5))

print("center()方法, 它可以将字符串居中, 并在两边填充空格。")
for index2 in range(1,4):
    print(repr(index2).center(5,'*'),repr(index2*index2).center(5,'*'),end=" ")
    print(repr(index2**3).center(5,'*'))

print("123".zfill(7))   # 长度7位,不足用0在左边补位


-------------------str()与repr()在字符串的区别-------------------
str(s): I love python!

repr(s): 'I love python!\n'
表达式eval(repr(s)): I love python!

表达式repr(n): 85
表达式str(n): 85
-------------------输出方式-------------------
s2的内容:  x 的值为: 32.5,  y 的值为:'I love python\n' !转义,不换行
s3的内容:  x 的值为: 32.5,  y 的值为:I love python
 !不转义,换行
write s2:x 的值为: 32.5,  y 的值为:'I love python\n' !转义,不换行
12###22

-------------------输出展示格式化-------------------
I'm zhangSan and 24 years old!
I'm zhangSan and 24 years old!
I'm zhangSan and 24 years old!
I'm zhangSan and 24 years old!
00003.142
3.141592653589793
3.141592653589793
3.141592653589793
My name is zhangsan , and 24 !
My name is zhangsan , and 24 years old , I like apple!

01,001,0001
02,004,0008
03,009,0027
rjust()方法, 它可以将字符串靠右, 并在左边填充空格
    1     1     1
    2     4     8
    3     9    27
ljust()方法, 它可以将字符串靠左, 并在右边填充空格。
1     1     1    
2     4     8    
3     9     27   
center()方法, 它可以将字符串居中, 并在两边填充空格。
**1** **1** **1**
**2** **4** **8**
**3** **9** **27*
0000123

Process finished with exit code 0

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值