在不缩进的情况下打印多行语句
这是我第一个项目,做的一个简单程序,它会打印出你的名字、你所在的班级和你上过的高中。不过,有一点让我困惑,就是我需要用一个 print()
语句来输出所有这些信息,并且要格式化成每条信息都在不同的行上。
我想要的格式是:
first_name, last_name
course_id, course_name, email
school
但是我得到的是:
first_name, last_name
course_id, course_name, email
school
我该怎么去掉这个空格呢?
我的代码如下:
first_name = 'Daniel'
last_name = 'Rust'
course_id = 'Csci 160'
course_name = 'Computer Science 160'
email = 'blah@gmail.com'
school= 'Red River Highschool'
#variables printed for B
print(first_name, last_name, '\n', course_id, course_name, email, '\n', school, '\n')
7 个回答
有很多方法可以做到这一点。
第一种方法是使用 str.format(),像这样:
print ('{} {}\n{} {} {}\n{}'.format(first_name, last_name, course_id, course_name, email, school))
第二种方法可以是:
print (first_name, ' ', last_name, '\n',course_id, ' ', course_name, ' ', email, '\n',school, sep = '')
第三种方法可以是:
print (first_name + ' ' + last_name + '\n' + str(course_id) + ' ' + course_name + ' ' + email + '\n' + school)
就是不要在你的代码里加空格
print(first_name, last_name, '\n',course_id, course_name, email, '\n', school, '\n')
我建议你看看 str.format() 这个内容,来学习如何打印你的信息。
你输出中的空格是因为你调用了打印函数,并且传入了一个字符串列表,而不是传入一个单独的字符串。
print(first_name + ' ' + last_name + '\n' + course_id + ' ' + course_name + ' ' + email + '\n' + school)
这样会得到
Daniel Rust
Csci 160 Computer Science 160 blah@gmail.com
Red River Highschool
正如这里提到的,你可以在print()
函数中使用sep=''
这个参数。这样你就可以设置打印值之间的分隔符(默认是空格),可以改成你想要的任何东西,包括空字符串。不过,你需要记得在你想要分开的值之间加上空格。例如:
print(first_name, ' ', last_name, '\n', course_id, [...], sep='')
其实还有更好的方法,可以用字符串的format()
方法来实现,但你的老师可能会把这个留到下节课再讲,所以我现在就不详细说了。如果你想了解更多,可以点击链接去看Python文档,阅读关于格式字符串语法的部分。我这里给你举个使用format()
的代码示例:
print("{} {}\n{} {} {}\n{}".format(first_name, last_name, course_id, course_name, email, school))
注意最后没有\n
,因为print()
默认会自动添加换行,除非你特别告诉它不要这样做。
print
函数在输出每个参数之间会自动加一个空格。如果你想去掉这个空格,可以在最后一个 '\n'
后面加上 , sep=''
,这样就不会在 first_name
和 last_name
之间,或者 course_id
和 course_name
之间加空格了。不过这样做的话,你可能需要在 print
语句中手动添加 , ' '
来加空格,但到那时候,直接把要输出的内容合并成一个字符串,里面加好空格,可能会更简单一些。
print(first_name + ' ' + last_name + '\n' + course_id + ' ' + course_name
+ ' ' email + '\n' + school + '\n')