print()Python 3.3中的2个变量

时间:2013-04-25 23:16:09

标签: python python-3.x

我正在学习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

1 个答案:

答案 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()))