Python: Should I use multiple print statements or “+” for consecutive sentences?
1 2 3 4 5 6 7 8 9 10 11 | print(" INSTRUCTIONS~ Enter: 'c' to use a full fledged calculator,") print("'a' to add and subtract numbers" + "(faster than calculator if you just want to add and subtract),") print("'s' to find a number's square root,") print("'p' to see powers,") print("'n' to arrange numbers in ascending and descending order,") print("'f' to calculate factorials, 'x' to exit the program,") |
在目前的一把"+"线在相同的句子,但并不构成另一个打印表,我想知道这会是一个更好的编程实践。
为了回答你的问题,它们本质上是相同的。这真的是一个可读性的问题,因此个人偏好。
但是,有一种更方便的方法可以做到这一点,那就是使用多行字符串。它们由
例如,
1 2 | print("Hello, world!") |
如果说是
1 2 | print("""Hello, world!""") |
很好,打印这个:
1 2 | Hello, World! |
就像它应该的那样。
说明:与使用行继续符(
这是:
1 2 | print("Hello,\ world!") |
与此不同:
1 2 | print("""Hello, world!""") |
虽然这是真的,但它们都是有效的,但它们有不同的结果。前者将打印:
1 | Hello,world! |
而后者将打印
1 2 | Hello, World! |
编辑:在将其用于docstring时,需要注意的是,为了提高可读性而进行的缩进会通过添加额外的制表符来干扰它。例子:
1 2 3 4 5 6 7 8 9 10 11 | # Less easily readable def test(): """Docstring Docstring""" pass # More easily readable def otherTest(): """Docstring Docstring""" pass |
问题是这两个docstring产生的结果完全相同。python忽略前导空格。
来源:python多行字符串的正确缩进
做任何能使程序易于阅读和维护的事情。
在速度方面,它们是相等的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.' size = 5 def test_multiple_prints(): for _ in range(size): print(text) def test_single_print(): big_text = ' '.join([text for _ in range(size)]) print(big_text) %timeit test_multiple_prints() #1000 loops, best of 3: 702 μs per loop %timeit test_single_print() #1000 loops, best of 3: 703 μs per loop |