Bagaimana saya bisa mencetak variabel dan string pada baris yang sama dengan Python?

176

Saya menggunakan python untuk mengetahui berapa banyak anak yang akan dilahirkan dalam 5 tahun jika seorang anak dilahirkan setiap 7 detik. Masalahnya ada di baris terakhir saya. Bagaimana saya membuat variabel berfungsi ketika saya mencetak teks di kedua sisi itu?

Ini kode saya:

currentPop = 312032486
oneYear = 365
hours = 24
minutes = 60
seconds = 60

# seconds in a single day
secondsInDay = hours * minutes * seconds

# seconds in a year
secondsInYear = secondsInDay * oneYear

fiveYears = secondsInYear * 5

#Seconds in 5 years
print fiveYears

# fiveYears in seconds, divided by 7 seconds
births = fiveYears // 7

print "If there was a birth every 7 seconds, there would be: " births "births"
Bob Uni
sumber
Hati-hati pada tahun 2020 (akal sehat, saya tahu: D). Cetak telah menjadi fungsi dalam Python3, perlu digunakan dengan tanda kurung sekarang: print(something)(Juga Python2 sudah usang sejak tahun ini.)
PythoNic

Jawaban:

262

Gunakan ,untuk memisahkan string dan variabel saat mencetak:

print "If there was a birth every 7 seconds, there would be: ",births,"births"

, dalam pernyataan cetak memisahkan barang-barang dengan satu ruang:

>>> print "foo","bar","spam"
foo bar spam

atau lebih baik gunakan pemformatan string :

print "If there was a birth every 7 seconds, there would be: {} births".format(births)

Pemformatan string jauh lebih kuat dan memungkinkan Anda melakukan beberapa hal lain juga, seperti: mengisi, mengisi, menyejajarkan, lebar, mengatur presisi, dll.

>>> print "{:d} {:03d} {:>20f}".format(1,2,1.1)
1 002             1.100000
  ^^^
  0's padded to 2

Demo:

>>> births = 4
>>> print "If there was a birth every 7 seconds, there would be: ",births,"births"
If there was a birth every 7 seconds, there would be:  4 births

#formatting
>>> print "If there was a birth every 7 seconds, there would be: {} births".format(births)
If there was a birth every 7 seconds, there would be: 4 births
Ashwini Chaudhary
sumber
Tak satu pun dari ini bekerja di Pyton 3. Harap pilih jawaban Gagan Agrawal.
Axel Bregnsbo
58

dua lagi

Yang pertama

 >>>births = str(5)
 >>>print "there are " + births + " births."
 there are 5 births.

Saat menambahkan string, mereka menyatukan.

Yang kedua

Juga format(Python 2.6 dan yang lebih baru) metode string mungkin adalah cara standar:

>>> births = str(5)
>>>
>>> print "there are {} births.".format(births)
there are 5 births.

formatMetode ini dapat digunakan dengan daftar juga

>>> format_list = ['five','three']
>>> print "there are {} births and {} deaths".format(*format_list) #unpack the list
there are five births and three deaths

atau kamus

>>> format_dictionary = {'births': 'five', 'deaths': 'three'}
>>> print "there are {births} births, and {deaths} deaths".format(**format_dictionary) #yup, unpack the dictionary
there are five births, and three deaths
TehTris
sumber
52

Python adalah bahasa yang sangat serbaguna. Anda dapat mencetak variabel dengan metode berbeda. Saya telah mendaftar di bawah 4 metode. Anda dapat menggunakannya sesuai dengan kenyamanan Anda.

Contoh:

a=1
b='ball'

Metode 1:

print('I have %d %s' %(a,b))

Metode 2:

print('I have',a,b)

Metode 3:

print('I have {} {}'.format(a,b))

Metode 4:

print('I have ' + str(a) +' ' +b)

Metode 5:

  print( f'I have {a} {b}')

Outputnya adalah:

I have 1 ball
Gagan Agrawal
sumber
Keputusan terkait dengan gaya pemrograman Anda: M2 adalah pemrograman prosedural, M3 adalah pemrograman berorientasi objek. Kata kunci untuk M5 adalah string string yang diformat . Operasi string seperti M1 dan M4 harus digunakan jika diperlukan, yang tidak terjadi di sini (M1 untuk kamus dan tupel; M4 misalnya untuk ascii-art dan output terformat lainnya)
PythoNic
29

Jika Anda ingin bekerja dengan python 3, ini sangat sederhana:

print("If there was a birth every 7 second, there would be %d births." % (births))
Pelatih Pengodean Python
sumber
16

Pada python 3.6 Anda dapat menggunakan Interpolasi String Literal.

births = 5.25487
>>> print(f'If there was a birth every 7 seconds, there would be: {births:.2f} births')
If there was a birth every 7 seconds, there would be: 5.25 births
PabTorre
sumber
1
Favorit saya untuk string yang kompleks.
Jason LeMonier
14

Anda bisa menggunakan yang f-string atau .format () metode

Menggunakan f-string

print(f'If there was a birth every 7 seconds, there would be: {births} births')

Menggunakan .format ()

print("If there was a birth every 7 seconds, there would be: {births} births".format(births=births))
ms8277
sumber
12

Anda bisa menggunakan formatstring:

print "There are %d births" % (births,)

atau dalam kasus sederhana ini:

print "There are ", births, "births"
enpenax
sumber
2
hati-hati jika menggunakan cara kedua itu, karena itu tuple, bukan string.
TehTris
5

Jika Anda menggunakan python 3.6 atau terbaru, f-string adalah yang terbaik dan mudah

print(f"{your_varaible_name}")
Csmasterme
sumber
3

Pertama-tama Anda akan membuat variabel: misalnya: D = 1. Lalu Lakukan Ini tetapi ganti string dengan apa pun yang Anda inginkan:

D = 1
print("Here is a number!:",D)
Pemrograman Pythonbites
sumber
3

Pada versi python saat ini Anda harus menggunakan tanda kurung, seperti:

print ("If there was a birth every 7 seconds", X)
Dror
sumber
2

gunakan pemformatan string

print("If there was a birth every 7 seconds, there would be: {} births".format(births))
 # Will replace "{}" with births

jika Anda menggunakan proyek mainan:

print('If there was a birth every 7 seconds, there would be:' births'births) 

atau

print('If there was a birth every 7 seconds, there would be: %d births' %(births))
# Will replace %d with births
Siddharth Dash
sumber
1

Anda dapat menggunakan pemformatan string untuk melakukan ini:

print "If there was a birth every 7 seconds, there would be: %d births" % births

atau Anda dapat memberikan printbeberapa argumen, dan itu akan secara otomatis memisahkannya dengan spasi:

print "If there was a birth every 7 seconds, there would be:", births, "births"
Amber
sumber
terima kasih atas jawabannya Amber. Bisakah Anda menjelaskan apa yang 'd' lakukan setelah simbol%? terima kasih
Bob Uni
2
%dberarti "memformat nilai sebagai integer". Demikian pula, %sakan menjadi "nilai format sebagai string", dan %f"format nilai sebagai angka floating point". Ini dan lebih banyak didokumentasikan di bagian manual Python yang saya tautkan dalam jawaban saya.
Amber
1

Saya menyalin dan menempelkan skrip Anda ke file .py. Saya menjalankannya apa adanya dengan Python 2.7.10 dan menerima kesalahan sintaksis yang sama. Saya juga mencoba skrip dengan Python 3.5 dan menerima output berikut:

File "print_strings_on_same_line.py", line 16
print fiveYears
              ^
SyntaxError: Missing parentheses in call to 'print'

Kemudian, saya memodifikasi baris terakhir di mana ia mencetak jumlah kelahiran sebagai berikut:

currentPop = 312032486
oneYear = 365
hours = 24
minutes = 60
seconds = 60

# seconds in a single day
secondsInDay = hours * minutes * seconds

# seconds in a year
secondsInYear = secondsInDay * oneYear

fiveYears = secondsInYear * 5

#Seconds in 5 years
print fiveYears

# fiveYears in seconds, divided by 7 seconds
births = fiveYears // 7

print "If there was a birth every 7 seconds, there would be: " + str(births) + " births"

Outputnya adalah (Python 2.7.10):

157680000
If there was a birth every 7 seconds, there would be: 22525714 births

Saya harap ini membantu.

Debug255
sumber
1

Cukup gunakan, (koma) di antaranya.

Lihat kode ini untuk pemahaman yang lebih baik:

# Weight converter pounds to kg

weight_lbs = input("Enter your weight in pounds: ")

weight_kg = 0.45 * int(weight_lbs)

print("You are ", weight_kg, " kg")
Faisal Ahmed
sumber
0

Sedikit berbeda: Menggunakan Python 3 dan mencetak beberapa variabel di baris yang sama:

print("~~Create new DB:",argv[5],"; with user:",argv[3],"; and Password:",argv[4]," ~~")
Qohelet
sumber
0

PYTHON 3

Lebih baik menggunakan opsi format

user_name=input("Enter your name : )

points = 10

print ("Hello, {} your point is {} : ".format(user_name,points)

atau mendeklarasikan input sebagai string dan gunakan

user_name=str(input("Enter your name : ))

points = 10

print("Hello, "+user_name+" your point is " +str(points))
Bromount
sumber
1
String "Enter your name :melewatkan tanda kutip penutup
barbsan
print ("Hello, {} your point is {} : ".format(user_name,points) braket penutup yang hilang.
Hillsie
0

Jika Anda menggunakan koma di antara string dan variabel, seperti ini:

print "If there was a birth every 7 seconds, there would be: ", births, "births"

sumber