print输出函数和range()函数

print()有多个参数,参数个数不固定。

有四个关键字参数(sep end file flush),这四个关键字参数都有默认值。
print作用是将objects的内容输出到file中,objects中的各个参数以sep为间隔,以end为结尾。sep默认值是一个空格;end默认值为’\n’即“回车换行”;


file的默认值是sys.stdout,即标准输出终端;
flush的作用是是否即时输出,默认值为False,即执行完后输出。

关键字参数sep的使用效果,默认值是空格,即' '

a=3;b=98;c=0.23
print(a,b,c)
print(a,b,c,sep='####')   # 3####98####0.23

关键字end的使用效果,默认值是回车换行,即'\n'

a=3;b=98;c=0.23
print(a)
print(b)
print(c)
# 下面3个都打印在一行,缘由是end的默认值是换行符'\n',现在改变了
print(a,end='***')
print(b,end='+++')
print(c,end='aaa')

print还可以写入文件,这时候就需要file参数了

f=open("ttt.txt",'w+')
# 如果是 False,则 close 文件时才真正写入,如果是 True,则立即写入。
print("abc",file=f,flush=True)
f.close()

格式化输出有两种方式

一种是使用格式化符号%,一种是使用字符串格式化函数str.format()。
这里的str代表的是字符串,所以一般输出format前面的函数要用""或''圈起来

第一种%

另一种是{}:,这里的分号:分号前代表的是索引;分好后可进行数字格式化输出
a=9
b=95
c=0.234
d='Tony'
e="I'm a student"
print("---------下面是格式化输出---------")
print('%0.6d'%a) # 6位整数 000009
print('%06d'%a) # 6位整数 000009
# b、d、o、x 分别是二进制、十进制、八进制、十六进制。
# 十六进制要加#x
print('%#x'%b)
print('%8.4f'%c)
print("这和上面的8.4有什么关系呢:8.4f和0.4f一样"+'%0.4f'%c) # 8.4f和0.4f一样
print("这个是匹配3位么:有点像正则的匹配"'%*.*f'%(8,4,c))

另一种是{:} format

这里的冒号:分号前代表的是索引;分好后可进行数字格式化输出
冒号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。

print("下面这句换就完全看不懂输出了;冒号:之前代表的是format中要匹配的数的索引:1:>8表示索引为1的元素在这里的右对齐且占8个宽度;5.2%百分号格式,也可以不写5")
print('{0:a^10d}--{1:>8}-->{1:5.2%}'.format(a,c))# , <, > 分别是居中、左对齐、右对齐,后面带宽度,
print('{0:a^10d}--{1:>8}-->{1:.2%}'.format(a,c))# , <, > 分别是居中、左对齐、右对齐,后面带宽度,

一些额外的添加

print(d,'said:',e,end='.\n')
print('%s said: %s.'%(d,e),'I\'m %d years old.'%a)
print('{1} said: {0}.'.format(e,d),'I\'m {} years old.'.format(a))
print('{name} said: {words}.'.format(words=e,name=d),'I\'m {} years old.'.format(a))
print('{{name: {}}}'.format(d)) # 用大括号{}进行转义;{}w外在嵌套一层括号

print('\n')

正的九九乘法表

正倒的抉择自于九九乘法表是前面乘数改变

for i in range(10):
    # i为0时下方代码
    for j in range(1,i+1): # 九九乘法表是前面乘数改变
        print('%dx%d=%-d'%(j,i,i*j),end='\t')
    print()

print('\n')

倒的九九乘法表

for i in range(10):
    for j in range(i+1,10): # 九九乘法表是前面乘数改变
        print('%dx%d=%-d'%(i,j,i*j),end='\t')
    print()

借用上方的九九乘法表想到了

for i in range(1):
    print(i) # 0
    for j in range(1,1+i):
        # 下方代码不会输出
        print(i) 
        print(j)

range函数相同或者前面比后面大都不会输出

for j in range(2,1):
    print(j) # 不输出
posted @ 2021-08-02 20:09  索匣  阅读(417)  评论(0编辑  收藏  举报