您现在的位置是:首页 > 技术教程 正文

Python当中print用法汇总

admin 阅读: 2024-03-21
后台-插件-广告管理-内容页头部广告(手机)

目录

一.Python语法

二.Python中转义字符

1.\(在行尾时)-续行符

2.\\ -- 反斜杠符号

3.\' -- 单引号

4.\" -- 双引号

5. \a -- 响铃(来点程序员式小快乐)

6.\b -- 退格(Backspace)

7.\n -- 换行

8.\v -- 纵向制表符

9.\t -- 横向制表符

10.\r -- 回车

11.\f -- 换页

12.\0 -- 空字符(NULL)

13. r/R -- 原字符

三.print(%)用法

1.整数

2.浮点数

3.字符串

四.print配合format

五.print打印实例:

1.九九乘法表

2.打印心型:

3.数独游戏


一.Python语法

作为一个函数,从我们最先接触的一次函数y=x他们都进行着输入输出,对应着具体的参数,

拥有着各自的语法规则。

print()函数语法如下:

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

①"objects"(物品) -- 作为print的输出对象,可以一次输出多个对象。当输出多个对象时需要用, 或+分隔。

②sep(Separate分开,隔开) -- 用来间隔多个对象,默认值是一个空格

③file -- 要写入的文件对象(以文件流形式写入文件还是标准输出流映射到打开脚本窗口)

④flush -- 是否刷新缓冲区

简单解释下参数:

默认参数:file=sys.stdout,print函数是对sys.stdout的高级封装,可关注我后续更新或移步大佬python的print与sys.stdout_python sys.stdout-CSDN博客

这里有个大佬对print与sys.stdout的讲解。

sep:换个角度理解就是把逗号代表空格这一默认值给换成'-',转换为自定义的字符串

  1. print('1','2','3',sep='-')
  2. '''
  3. 输出:1-2-3
  4. '''

end:默认结尾处换行

  1. print('1','2','3'+'=',sep='+',end='6')
  2. #运行结果:1+2+3=6

flush:把缓冲区的数据强行输出,清空缓冲区。

约等于手机的运行内存。

在读写流中数据先被读到内存(相当于缓存区),再写入,中途用close()方法关闭读写流,缓存数据会丢失。(只有当发生其他事件,如缓冲区已满或发生换行输出才会刷新)

而flush()则刷新缓冲区,强制把其中数据写入文件,清空缓存区,避免数据丢失。

  1. f = open(r'1.txt', 'w')
  2. print('Hello, you in front of the screen.', file=f, flush=True)
  3. #正常情况下print到f中的内容先存到"运行内存"中,
  4. #当文件对象关闭时才把内容输出到'1.txt'中,当flush=True时会立即把内容刷新存到'1.txt'

print当中flush默认是False,写成True后每次调用该语句都会将语句放入对应的文件当中(如果用了file)

这个可以理解为:老师留暑假作业,每名同学需要完成的任务是固定一样的,学霸的你将脑子中的flush改为True觉醒了学霸属性,疯狂赶时间写作业,将"写完作业"这一判定条件视为你"玩游戏上分"这一事件的起始,当然同时也是暑假作业的末端判定。而学渣则是在最后一天熬夜肝作业才完成,即临近"暑假结束"这一必要结束条件,你不得不将你的作业完成。

二.Python中转义字符

转义字符描述
\(处于行尾位置)续行符
\\反斜杠
\'单引号
\"双引号
\a响铃
\b退格(Backspace)
\n换行
\v纵向制表符
\t横向制表符
\r回车
\f换页
\0空字符(NULL)
r/R原字符

讲解:

1.\(在行尾时)-续行符

在每一行代码的最后添加\(注意反斜杠后不能加空格!),他可以将一行代码分成多行来写,打印结果仍是一行内容,便于代码编写整理,阅读。

  1. print('<我在第一行>\
  2. <我在第二行>\
  3. <在这呐第三行>\
  4. <我又到第四行了>')
  5. #运行结果:<我在第一行><我在第二行><在这呐第三行><我又到第四行了>

2.\\ -- 反斜杠符号

由于转义字符的原因在字符串中想打印出\则需要用到反斜杠(\\)

  1. print('Hello\\World!')
  2. #运行结果:Hello\World!

3.\' -- 单引号

当你想在字符串中打印 ' 展现你的语文素养发现不太行时,那么用\'在字符串里表示单引号。

  1. print('My name is \'暮暮不朝\'')
  2. #运行结果:My name is '暮暮不朝'

4.\" -- 双引号

当你想在字符串中打印 "内涵别人时却发现打印不出来,那么用\"在字符串里表示双引号。

5. \a -- 响铃(来点程序员式小快乐)

此转义字符很少见,在Python的解释器中无法真正响铃,在输出含有\a的字符串时,\a的位置会有标识表示出来。

  1. print('Hello World!\a')
  2. # 运行结果:Hello World!

真正实现响铃操作需要win+R键,进入cmd打开控制台:

输入Python进入其编译器模式,然后输入以下代码:

  1. import time
  2. while True:
  3. print('\a')
  4. time.sleep(1) # 每次响铃的间隔时间为1秒

然后连敲两次回车键,就可以听到每秒一次的系统提示音了,关闭控制台即可退出该程序。

6.\b -- 退格(Backspace)

\b相当于用了一次退格键(Backspace)

  1. print('Hello World\b')
  2. #输出结果:Hello Worl

看到这里有人可能就有疑问了,既然\b相当于用了一次退格键Backspace ,为什么还要用这个转义字符呐,直接删掉需要删除的内容不是更方便简单吗。

实际在计算机语言当中, Backspace 并不是删除的指令。组成 Backspace 的两个英文单词 back 和space 分别是回去和空间的意思,组合起来就是”往回走一步“,但与方向左键不同, Backspace 在向左移动光标位置的同时,将后面所有的内容都往前移了一个单位,并替换掉原有内容 。当我们在 Python 中输入字符时,如果输入后立即发现错误,使用 Backspace 键进行修改,这其实是使用退格键将后面的空(NULL)前移了一个单位 ,并替换掉当前位置的内容,给输入者以“删除”的假象。

而我们也可多次用\b相当于连续敲Backspace键,而在最后一个\b后的内容也将替换原有内容,不必破坏源代码。而且还有其他的各种需求。

  1. print('Hello World\b\b\b\b暮暮不朝')
  2. #输出结果:Hello 暮暮不朝

7.\n -- 换行

与\相反,\n是将一行输出为多行

  1. print('<我是第一行>\n<我在第二行>\n<我又跑到第三行了>\n<猜错了我在第四行>')
  2. #运行结果:<我是第一行>
  3. # <我在第二行>
  4. # <我又跑到第三行了>
  5. # <猜错了我在第四行>

8.\v -- 纵向制表符

使用\v,纵向产生四个空字符,相当于竖着用Tab键。

9.\t -- 横向制表符

  1. print('班级\t姓名\t语文\t数学\t英语')
  2. print('一班\t玲羽\t90\t80\t95')
  3. print('十三班\t德睿\t80\t95\t90')
  4. '''
  5. 运行结果:
  6. 班级 姓名 语文 数学 英语
  7. 一班 玲羽 90 80 95
  8. 十三班 德睿 80 95 90
  9. '''
  1. print('班级\t姓名\t语文\t数学\t英语')
  2. print('一班\t玲羽\t90\t80\t95')
  3. print('十三班\t德睿\t80\t95\t90')
  4. print('十四班\t上官景儒\t90\t95\t90')
  5. '''
  6. 运行结果:
  7. 班级 姓名 语文 数学 英语
  8. 一班 玲羽 90 80 95
  9. 十三班 德睿 80 95 90
  10. 十四班 上官景儒 90 95 90
  11. '''

我们可以发现表格错位了此时则可以连用\t来进行补齐

  1. print('班级\t姓名\t\t语文\t\t数学\t\t英语')
  2. print('一班\t玲羽\t\t90\t\t80\t\t95')
  3. print('十三班\t德睿\t\t80\t\t95\t\t90')
  4. print('十四班\t上官景儒\t90\t\t95\t\t90')
  5. '''
  6. 运行结果:
  7. 班级 姓名 语文 数学 英语
  8. 一班 玲羽 90 80 95
  9. 十三班 德睿 80 95 90
  10. 十四班 上官景儒 90 95 90

10.\r -- 回车

在日常使用 Word 编辑文本时,回车键就是另起一行,从行首开始输入。但在 Python 中,\r 与 \n 的用法却大相径庭。\r (return) 指回到本行行首,\n (new line) 指开启新的一行。因此,要注意在编程语言中的回车与退格,和我们日常工作所理解的用法有很大区别!

其作用是将 \r 后面的内容(包括空格)移到所有字符串开头,并逐一替换开头部分的字符,直至将 \r 后面的内容完全替换完成。没有替换则保持原样

  1. print('Hello\rWorld!')
  2. #输出结果:World!

11.\f -- 换页

\f 后的内容实现换页打印,一般在调用文档编辑工具的页面实现此效果,直接打印会显示和上述  NULL类似的字符效果。

12.\0 -- 空字符(NULL)

\0和\000乃至\00都是表示空字符,用以补足字符串长度。

  1. print(len("Hello World") ) # 11
  2. print(len("Hello World\0") ) # 12

13. r/R -- 原字符

在存在转义字符的字符串前输入 r / R ,则转义机制失效,打印包括转义字符的所有内容。

  1. print(r'Hello\\World')
  2. #输出结果:Hello\\World
  3. 如果需要调用文件位置,则r"C:\Users\Desktop\1.jpg"或是"C:\\Users\\Desktop\\1.jpg"

如果需要调用文件位置,则r"C:\Users\Desktop\1.jpg"或是"C:\\Users\\Desktop\\1.jpg"

三.print(%)用法

符号说明
%s字符串
%d十进制(整数)
%f浮点数
%%'%'

1.整数

%ooct八进制
%ddec十进制
%xhex十六进制
  1. print('%o' % 32)
  2. #40
  3. print('%d' % 32)
  4. #32
  5. print('%x' % 32)
  6. #20

2.浮点数

(注意小数点)

%f ——保留小数点后面六位有效数字
%.3f,保留3位小数位
%e ——保留小数点后面六位有效数字,指数形式输出
%.3e,保留3位小数位,使用科学计数法
%g ——在保证六位有效数字的前提下,使用小数方式,否则使用科学计数法
%.3g,保留3位有效数字,使用小数或科学计数法

  1. print('%f'%3.14)#默认保留六位小数
  2. #3.140000
  3. print('%.1f' % 3.14) # 取一位小数
  4. #3.1
  5. print('%e' % 3.14) # 默认六位小数(科学计数法)
  6. #3.140000e+00
  7. print('%.3e' % 3.14) # 取三位小数(科学计数法)
  8. #3.140e+00
  9. print('%g' % 3.1415926) # 默认六位有效数字
  10. #3.14159
  11. print('%.7g' % 3.1415926) # 取七位有效数字
  12. 3.141593(这里进位了)
  13. print('%.2g' % 3.1415926) # 取二位有效数字
  14. 3.1

3.字符串

  1. print('%s' % 'hello John') # 字符串输出
  2. #hello John
  3. print('%20s' % 'hello John') # 右对齐,取20位,不够则补位
  4. #hello John
  5. print('%-20s' % 'hello John') # 左对齐,取20位,不够则补位
  6. #hello John
  7. print('%.2s' % 'hello John') # 取2位
  8. #he
  9. print('%10.2s' % 'hello John') # 右对齐,取2位
  10. # he
  11. print('%-10.2s' % 'hello John') # 左对齐,取2位
  12. #he

四.print配合format

  1. #顺序输出:
  2. print('name:{};sex:{};grades:{}'.format('lys','man',100))
  3. #索引输出:
  4. print('name:{0};sex:{2};grades:{1}'.format('lys',100,'man'))
  5. #参数输出:
  6. print('name:{c};sex:{a};grades:{b}'.format(a='man',b=100,c='lys'))
  7. #列表输出:
  8. list=['lys',100,'man']
  9. print('name:{0[0]};sex:{0[2]};grades:{0[1]}'.format(list))#相当于一个字典里的第一个'小字典'
  10. #字典输出:
  11. dict={'name':'lys','sex':'man','grades':100}
  12. print('name:{name};sex:{sex};grades:{grades}'.format(**dict))
  13. #类输出:
  14. class s():
  15. name='lys'
  16. grades=100
  17. sex='man'
  18. print('name:{S.name};grades:{S.grades};sex:{S.sex}'.format(S=s))

五.print打印实例:

1.九九乘法表

  1. for i in range(1,10):
  2. for j in range(1,i+1):
  3. print('{}x{}={}\t'.format(j,i,i*j),end='')
  4. print()
  5. 输出结果:
  6. 1x1=1
  7. 1x2=2 2x2=4
  8. 1x3=3 2x3=6 3x3=9
  9. 1x4=4 2x4=8 3x4=12 4x4=16
  10. 1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
  11. 1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
  12. 1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
  13. 1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
  14. 1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81

2.打印心型:

print('\n'.join([''.join([('Love'[(x-y)%4]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else' ')for x in range(-30,30)])for y in range(15,-15,-1)]))

3.数独游戏

  1. from random import shuffle, randrange
  2. def generate():
  3. # 初始网格
  4. result = []
  5. line = list(range(1,10))
  6. for i in range(9):
  7. result.append(line)
  8. line.append(line.pop(0))
  9. # 注意,这里的切片很重要
  10. line = line[:]
  11. # Python允许函数的嵌套定义
  12. def switchRows(first, second):
  13. # 这里的括号和换行不是必须的
  14. # 只是为了方便手机阅读
  15. (result[first],
  16. result[second]) =\
  17. (result[second],
  18. result[first])
  19. def switchColumns(first, second):
  20. for index in range(9):
  21. (result[index][first],
  22. result[index][second]) =\
  23. (result[index][second],
  24. result[index][first])
  25. # 随机交换行
  26. randomRows = list(range(9))
  27. shuffle(randomRows)
  28. for i in range(0,7,2):
  29. switchRows(randomRows[i],\
  30. randomRows[i+1])
  31. # 随机交换列
  32. randomColumns = list(range(9))
  33. shuffle(randomColumns)
  34. for i in range(0,7,2):
  35. switchColumns(randomColumns[i],\
  36. randomColumns[i+1])
  37. # 随机清空一些格子
  38. num = randrange(25, 50)
  39. positions = {(randrange(9),randrange(9))\
  40. for i in range(num)}
  41. for row, col in positions:
  42. result[row][col] = ' '
  43. return result
  44. def output(grids):
  45. print('+'+'-+'*9)
  46. for row in range(9):
  47. line = '|'.join(map(str,grids[row]))
  48. line = line.join(['|']*2)
  49. print(line)
  50. print('+'+'-+'*9)
  51. grids = generate()
  52. output(grids)

这个可以自行去优化

各位都看到这里了如果觉得有帮助请点个赞标个点,也可关注支持一下☺,后续会不断更新内容的,欢迎私聊指错☺√。

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索
排行榜