Làm cách nào tôi có thể in biến và chuỗi trên cùng một dòng trong Python?


176

Tôi đang sử dụng python để tìm ra bao nhiêu đứa trẻ sẽ được sinh ra trong 5 năm nếu một đứa trẻ được sinh ra cứ sau 7 giây. Vấn đề là ở dòng cuối cùng của tôi. Làm cách nào để một biến hoạt động khi tôi in văn bản ở hai bên của nó?

Đây là mã của tôi:

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"

Câu trả lời:


261

Sử dụng ,để tách các chuỗi và biến trong khi in:

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

, trong câu lệnh in ngăn cách các mục theo một khoảng trắng:

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

hoặc tốt hơn là sử dụng định dạng chuỗi :

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

Định dạng chuỗi mạnh hơn nhiều và cho phép bạn thực hiện một số việc khác, chẳng hạn như: đệm, điền, căn chỉnh, chiều rộng, đặt độ chính xác, v.v.

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

Bản giới thiệu:

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

Không ai trong số này làm việc ở Pyton 3. Xin hãy nêu lên câu trả lời của Gagan Agrawal.
Axel Bregnsbo

58

hai nữa

Cái đầu tiên

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

Khi thêm chuỗi, chúng nối.

Cái thứ hai

Ngoài ra format, phương thức chuỗi (Python 2.6 trở lên) có lẽ là cách tiêu chuẩn:

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

formatPhương pháp này có thể được sử dụng với danh sách là tốt

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

hoặc từ điển

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

51

Python là một ngôn ngữ rất linh hoạt. Bạn có thể in các biến bằng các phương pháp khác nhau. Tôi đã liệt kê 4 phương pháp dưới đây. Bạn có thể sử dụng chúng theo sự thuận tiện của bạn.

Thí dụ:

a=1
b='ball'

Cách 1:

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

Cách 2:

print('I have',a,b)

Cách 3:

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

Cách 4:

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

Phương pháp 5:

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

Đầu ra sẽ là:

I have 1 ball


16

Kể từ python 3.6, bạn có thể sử dụng Nội suy chuỗi ký tự.

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
Yêu thích của tôi cho chuỗi phức tạp.
Jason LeMonier

14

Bạn có thể có thể sử dụng e-string hoặc .format () phương pháp

Sử dụng chuỗi f

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

Sử dụng .format ()

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

12

Bạn có thể sử dụng một chuỗi định dạng:

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

hoặc trong trường hợp đơn giản này:

print "There are ", births, "births"

2
hãy cẩn thận nếu sử dụng cách thứ hai đó, bởi vì đó là một tuple, không phải là một chuỗi.
TehTris

5

Nếu bạn đang sử dụng python 3.6 hoặc mới nhất, chuỗi f là chuỗi tốt nhất và dễ dàng nhất

print(f"{your_varaible_name}")

3

Trước tiên, bạn sẽ tạo một biến: ví dụ: D = 1. Sau đó, Làm điều này nhưng thay thế chuỗi bằng bất cứ điều gì bạn muốn:

D = 1
print("Here is a number!:",D)

3

Trên phiên bản python hiện tại, bạn phải sử dụng dấu ngoặc đơn, như vậy:

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

2

sử dụng định dạng chuỗi

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

nếu bạn làm một dự án đồ chơi, hãy sử dụng:

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

hoặc là

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

1

Bạn có thể sử dụng định dạng chuỗi để làm điều này:

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

hoặc bạn có thể đưa ra printnhiều đối số và nó sẽ tự động phân tách chúng bằng một khoảng trắng:

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

cảm ơn bạn đã trả lời Amber. Bạn có thể giải thích những gì 'd' làm sau biểu tượng% không? cảm ơn
Bob Uni

2
%dcó nghĩa là "định dạng giá trị như một số nguyên". Tương tự, %ssẽ là "định dạng giá trị dưới dạng chuỗi" và %flà "giá trị định dạng dưới dạng số dấu phẩy động". Những điều này và hơn thế nữa được ghi lại trong phần hướng dẫn sử dụng Python mà tôi đã liên kết trong câu trả lời của mình.
Amber

1

Tôi đã sao chép và dán tập lệnh của bạn vào một tệp .py. Tôi đã chạy nó như với Python 2.7.10 và nhận được lỗi cú pháp tương tự. Tôi cũng đã thử tập lệnh trong Python 3.5 và nhận được kết quả đầu ra sau:

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

Sau đó, tôi đã sửa đổi dòng cuối cùng trong đó in số lần sinh như sau:

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"

Đầu ra là (Python 2.7.10):

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

Tôi hi vọng cái này giúp được.


1

Chỉ cần sử dụng, (dấu phẩy) ở giữa.

Xem mã này để hiểu rõ hơn:

# 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

Hơi khác một chút: Sử dụng Python 3 và in một số biến trong cùng một dòng:

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

0

PYTHON 3

Tốt hơn để sử dụng tùy chọn định dạng

user_name=input("Enter your name : )

points = 10

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

hoặc khai báo đầu vào dưới dạng chuỗi và sử dụng

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

points = 10

print("Hello, "+user_name+" your point is " +str(points))

1
Chuỗi "Enter your name :bỏ lỡ dấu ngoặc kép
barbsan

print ("Hello, {} your point is {} : ".format(user_name,points) thiếu khung đóng.
Hillsie

0

Nếu bạn sử dụng dấu phẩy xen giữa các chuỗi và biến, như thế này:

print "If there was a birth every 7 seconds, there would be: ", births, "births"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.