我正在学习python并遇到了这种令我困惑的行为。
为什么此代码打印出括号和\r\n
所包含的变量:
def print_a_line(line_count, f):
print(line_count, f.readline())
current_line = 1
print_a_line(current_line, current_file)
打印:
(1, 'a1\r\n')
这段代码:
def print_a_line(line_count, f):
print(f.readline())
current_line = 1
print_a_line(current_line, current_file)
打印时没有括号:
a1
答案 0 :(得分:2)
在第一种情况下,当您print(line_count, f.readline())
实际上是在说打印一个元组时,第一个元素是line_count
而第二个元素是f.readline()
,f.readline()
读取整行,带有行尾标记,在你的文件中是'\ r \ n'。
在第二种情况下,print (f.readline())
,您只打印一个字符串,而不是包含字符串的元组(如果您想要一个仅包含字符串的元组,则应使用(mystring,)
。
(anystring)
表示法允许您使用:
mystring = ('This is my '
'very long string')
而不是print(line_count, f.readline())
你应该使用
print (str(line_count) + f.readline())
或
print ('%d %s'%(line_count, f.readline()))