2014-09-05 3 views
3

Итак, для моего первого проекта это простая программа, которая печатает ваш класс имени, в котором вы находитесь, и в какую школу вы посещали. Единственное, что меня заводит, - это один из них, я должен использовать один оператор 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 = '[email protected]' 
school= 'Red River Highschool' 

#variables printed for B 
print(first_name, last_name, '\n', course_id, course_name, email, '\n', school, '\n') 

ответ

1

print вставляет пробел между каждым аргументом. Вы можете отключить эту функцию, добавив , sep='' после последнего '\n', но тогда не будет никаких пробелов между first_name и last_name или между course_id и course_name и т.д. Затем вы можете пойти на, чтобы вставить , ' ' вручную, где вам это нужно в print заявлении , но к этому моменту было бы проще просто дать print один аргумент, образованный путем конкатенации строк вместе с явными пробелами:

print(first_name + ' ' + last_name + '\n' + course_id + ' ' + course_name 
     + ' ' email + '\n' + school + '\n') 
1

Я рекомендую читать через str.format() печатать информацию.

Пространства в вашем представлении исходят из того факта, что вы вызывали функцию печати, передавая список строк, вместо передачи функции печати одной строкой.

print(first_name + ' ' + last_name + '\n' + course_id + ' ' + course_name + ' ' + email + '\n' + school) 

дает

Daniel Rust 
Csci 160 Computer Science 160 [email protected] 
Red River Highschool 
+0

https://docs.python.org/3.3/library/stdtypes.html#str.формат был бы лучшей ссылкой для него, поскольку он, кажется, использует Python 3. – rmunn

+0

@rmunn Edited; хороший улов. – Celeo

+0

Мне не нравится этот метод, потому что если какая-либо из переменных окажется нестроковой, вы столкнетесь с проблемами. – SethMMorton

3

Как уже упоминалось here, вы можете использовать sep='' аргумент функции print(). Это позволит вам установить разделитель между напечатанными значениями (который является пространством по умолчанию) на все, что вы хотите, включая пустую строку. Вы должны будете помнить, чтобы добавить пробелы между значениями, которые вы do хотите разделить. НАПРИМЕР,

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() автоматически добавляет символ новой строки, если не сказать иначе.

+0

Спасибо всем, что вы, ребята, исправили его отлично –

0

Просто не добавляйте места в коде

print(first_name, last_name, '\n',course_id, course_name, email, '\n', school, '\n') 
Смежные вопросы