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"

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

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

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

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))

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

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))

12

Anda bisa menggunakan formatstring:

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

atau dalam kasus sederhana ini:

print "There are ", births, "births"

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}")

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)

3

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

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

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

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"

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.


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")

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]," ~~")

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))

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"
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.