首页 > 其他分享 >内置函数print-输出

内置函数print-输出

时间:2023-07-03 23:14:41浏览次数:40  
标签:输出 内置 end 函数 sep flush print 换行符

1. 说明

print内置函数是builtins模块的函数,用于向标准输出、文件打印数据

 

2. 示例

 1 help(print)
 2 '''
 3 Help on built-in function print in module builtins:
 4 
 5 print(*args, sep=' ', end='\n', file=None, flush=False)
 6     Prints the values to a stream, or to sys.stdout by default.
 7 
 8     sep
 9       string inserted between values, default a space.
10     end
11       string appended after the last value, default a newline.
12     file
13       a file-like object (stream); defaults to the current sys.stdout.
14     flush
15       whether to forcibly flush the stream.
16 
17 None
18 '''
19 
20 # 参数:sep,指定值之间的分割符,默认是空格。多个值之间使用逗号隔开
21 print('value1' 'value2')  # value1value2 这样写是没有默认空格的
22 print('value1', 'value2')  # value1 value2,这样才会有空格
23 print('value1', 'value2', sep='123')  # value1123value2,指定sep
24 
25 # 参数:end,指定打印值后,追加符,默认是换行
26 print("123456")  # 默认会换行,因为end默认值就是换行
27 print("123456")
28 
29 print("123456", end='A')  # 指定打印值后,追加A
30 print("123456")  # 最终与上1行代码打印在一行:123456A123456
31 
32 #  参数:file,指定打印值到指定文件
33 with open('011-print.txt', 'w') as f:
34     print("对文件写")
35     print('111111', file=f)
36 
37 
38 '''
39 flush
40 用于控制是否刷新打印缓冲区。当 flush 参数设置为 True 时,它将强制立即将打印输出刷新到目标文件或流中,而不等待缓冲区满或遇到换行符。
41 
42 以下是关于使用 print() 函数的 flush 参数的最佳实践和示例:
43 
44 最佳实践:
45     1. flush 参数适用于需要立即将输出写入目标文件或流的情况,而不是等待缓冲区满或遇到换行符。
46     2. 在某些情况下,例如在循环中进行实时的输出,你可能希望设置 flush 参数为 True,以确保每条输出都立即可见。
47     3. 默认情况下,flush 参数为 False,这意味着 print() 函数会将输出写入缓冲区,并在满足某些条件(如换行符)时自动刷新缓冲区。
48 '''
49 # 使用 flush 参数为 True 进行实时刷新输出
50 for i in range(10):
51     print(i, end=' ', flush=True)  # 每个数字立即可见,不需要等待缓冲区满或遇到换行符
52 
53 # 使用 flush 参数为 True 进行输出导向文件的实时刷新
54 with open('output.txt', 'w') as f:
55     for i in range(10):
56         print(i, end=' ', flush=True, file=f)  # 每个数字立即写入文件,不需要等待缓冲区满或遇到换行符

 

 3. 最佳实践

在使用 Python 的 print() 函数时,以下是一些最佳实践:

  1. 明确消息:确保你的输出消息明确、准确地传达你想要表达的内容。使用有意义的变量和文本写出清晰的消息,让读者能够理解输出的含义。

  2. 使用格式化字符串:当你需要将变量的值插入到输出消息中时,使用格式化字符串可以使代码更简洁和可读性更高。Python 提供了多种方式来格式化字符串,如 f-strings、str.format() 方法或 % 运算符。选择适合你的代码风格和需求的格式化方法。

  3. 分隔和结束符:使用 print() 函数的 sep 和 end 参数来控制输出的分隔符和结束符。默认的分隔符是一个空格,结束符是一个换行符。根据你的需求,可以自定义分隔符和结束符,以便输出符合你的预期格式。

  4. 转义字符:理解和正确使用转义字符是很重要的。例如,使用 \n 表示换行符,\t 表示制表符。如果你想要输出一个字面上的 \ 字符,你需要使用双斜杠 \\

  5. 格式对齐:根据需要对输出的文本进行对齐是一个很有用的技巧。你可以使用字符串的对齐方法(如 str.ljust()str.rjust()str.center())或者格式化字符串来实现。

  6. 错误处理:如果你的代码可能会引发异常,请确保你对错误消息进行适当处理,并在错误消息中提供有意义的上下文信息。

  7. 日志记录:对于更复杂的应用程序,使用适当的日志记录库(如 logging 模块)来进行输出通常比直接使用 print() 函数更可取。

总而言之,最佳实践是根据你的需求和代码的可维护性,以及提供清晰的输出和错误处理来使用 print() 函数。

 1 # 使用明确的消息
 2 name = "Alice"
 3 print(f"欢迎,{name}!")  # f-string格式化-变量
 4 
 5 # 使用格式化字符串
 6 num1 = 10
 7 num2 = 5
 8 print(f"两数之和为:{num1 + num2}") # f-string格式化-表达式
 9 
10 # 控制分隔符和结束符
11 print("apple", "banana", "orange", sep=", ", end=".\n")
12 
13 # 转义字符
14 print("这是一个换行符:\n这是一个制表符:\t")
15 
16 # 格式对齐
17 title = "Python编程"
18 price = 29.99
19 # title 的长度为 8,所以在右侧用 12 个空格填充以使其总长度为 20
20 print(f"{title.ljust(20)}${price}")  # f-string 中函数调用,输出: Python编程             $29.99
21 str = "Python编程             $29.99"
22 print(len(str))  # 27 = title(20) + 1(空格)  + price(6)
23 # 错误处理
24 try:
25     result = 10 / 0
26 except ZeroDivisionError:
27     print("除数不能为零!")

 

标签:输出,内置,end,函数,sep,flush,print,换行符
From: https://www.cnblogs.com/allenxx/p/17524240.html

相关文章

  • 内置函数input
    1.通过help函数查看input的docstring1#1.通过内置函数help查看input函数的docstring2'''3input(prompt='',/)4Readastringfromstandardinput.Thetrailingnewlineisstripped.56Thepromptstring,ifgiven,isprinted......
  • C++面试八股文:如何实现一个strncpy函数?
    某日二师兄参加XXX科技公司的C++工程师开发岗位第31面:面试官:strcpy函数使用过吧?二师兄:用过。面试官:这个函数有什么作用?二师兄:主要用做字符串复制,将于字符从一个位置复制到另一个位置。面试官:strncpy函数也使用过吧,和strcpy有何不同?二师兄:strncpy多了一个size_t的参数,用于避......
  • 40.什么情况下会调用拷贝构造函数
    40.什么情况下会调用拷贝构造函数用类的一个实例化对象去初始化另一个对象的时候函数的参数是类的对象时(非引用传递)函数的返回值是函数体内局部对象的类的对象时,此时虽然发生(NamedreturnValue优化)NRV优化,但是由于返回方式是值传递,所以会在返回值的地方调用拷贝构造函数......
  • 34.C++有哪几种的构造函数
    34.C++有哪几种的构造函数C++中的构造函数可以分为4类:默认构造函数:在没有显式定义构造函数时,C++会自动生成一个默认构造函数,该函数没有参数,不执行任何操作。初始化构造函数(有参数)拷贝构造函数:当使用现有对象初始化新对象时,拷贝构造函数被调用。它的语法是在函数声明时使用一......
  • 13.宏定义和函数有何区别?
    宏在预处理阶段完成替换,之后被替换的文本参与编译,相当于直接插入了代码,运行时不存在函数调用,执行起来更快;函数调用在运行时需要跳转到具体调用函数。宏定义属于在结构中插入代码,没有返回值;函数调用具有返回值。宏定义参数没有类型,不进行类型检查;函数参数具有类型,需要检查类型。......
  • JavaScript(三)Array的高阶函数
    map、reducemap:map()方法定义在JavaScript的Array中,接收一个函数对象作为参数,函数定义运算规则,对array中的每个元素进行运算,结果是一个新的array。functionpow(x){returnx*x;}vararr=[1,2,3,4,5,6,7,8,9];varresults=arr.map(pow);//[1,4,9......
  • 《深入探索C++对象模型》- 第二章 - 构造函数语义学 - 笔记
    PDF版本https://www.aliyundrive.com/s/oQJJiJfQmU2......
  • 高阶函数, 装饰器的编写
    符合如下之一特点的即为高阶函数:接受函数名作为形参返回值包含函数名错误写法:  装饰器函数  原理: 正确的装饰器写法: ......
  • STL-二分查找函数
    binary_serch:查找某个元素是否出现,返回bool型lower_bound:查找第一个>=某个元素的位置upper_bound:查找第一个>某个元素的位置binary_search(beg,end,val)返回一个bool变量,以二分法检索的方式在[beg,end]之间查找val,找到返回true,找不到返回false。lower_bound(beg,end,va......
  • MYSQL数据库转DM达梦数据库函数替换及注意事项
    1、调整IF函数为 case 函数MYSQL: IF(condition, value_if_true, value_if_false) if(a.class_sort_code='0301',(selectgroup_concat(sku_attr_id)sku_Attrfroma_sku_attr_relaWHEREmodel_id=a.model_idorderbysku_attr_id),'')sku_attrD......