5
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi là một người mới và đã tự hỏi liệu có cách đơn giản hơn để kết hợp thời gian vào một chuỗi trong một chức năng ghi không? Dưới đây là mã của tôi chạy Windows XP với ActivePy 2.6:
from time import clock filename = "c:\Python\\test.txt" try: tm = clock() print "filename: " + filename fsock = open(filename, "a") try: fsock.write(tm + 'test success\n ') finally: fsock.close() except IOError: print "file not found" print file(filename).read() C:\Python>python test.py filename: c:\Python\test.txt Traceback (most recent call last): File "test.py", line 8, in <module> fsock.write(tm + 'test success\n ') TypeError: unsupported operand type(s) for +: 'float' and 'str' C:\Python>
John Kugelman
338K67 Huy hiệu vàng509 Huy hiệu bạc560 Huy hiệu Đồng67 gold badges509 silver badges560 bronze badges
Hỏi ngày 8 tháng 8 năm 2011 lúc 18:10Aug 8, 2011 at 18:10
>>> import time >>> tm = time.strftime('%a, %d %b %Y %H:%M:%S %Z(%z)') >>> tm 'Mon, 08 Aug 2011 20:14:59 CEST(+0200)' 0 Trả về một biểu diễn có thể đọc được bằng máy của thời lượng mà hệ thống đang chạy.
Để có được một biểu diễn có thể đọc được của con người (một chuỗi) của thời gian tường hiện tại, hãy sử dụng >>> import time >>> tm = time.strftime('%a, %d %b %Y %H:%M:%S %Z(%z)') >>> tm 'Mon, 08 Aug 2011 20:14:59 CEST(+0200)' 1:
>>> import time >>> tm = time.strftime('%a, %d %b %Y %H:%M:%S %Z(%z)') >>> tm 'Mon, 08 Aug 2011 20:14:59 CEST(+0200)'Đã trả lời ngày 8 tháng 8 năm 2011 lúc 18:15Aug 8, 2011 at 18:15
Phihagphihagphihag
269K68 Huy hiệu vàng441 Huy hiệu bạc464 Huy hiệu đồng68 gold badges441 silver badges464 bronze badges
Sử dụng Pythons str.format
fsock.write('{0} test success\n'.format(tm))Đã trả lời ngày 8 tháng 8 năm 2011 lúc 18:13Aug 8, 2011 at 18:13
GWWGWWGWW
42.1k11 Huy hiệu vàng110 Huy hiệu bạc107 Huy hiệu đồng11 gold badges110 silver badges107 bronze badges
Bạn nên chuyển đổi thành chuỗi trước bằng str ():
str(tm) + 'test success\n'Đã trả lời ngày 8 tháng 8 năm 2011 lúc 18:13Aug 8, 2011 at 18:13
GWWGWWFacundo Casco
42.1k11 Huy hiệu vàng110 Huy hiệu bạc107 Huy hiệu đồng6 gold badges44 silver badges63 bronze badges
Bạn nên chuyển đổi thành chuỗi trước bằng str ():
>>> import time >>> tm = time.strftime('%a, %d %b %Y %H:%M:%S %Z(%z)') >>> tm 'Mon, 08 Aug 2011 20:14:59 CEST(+0200)' 3
Facundo Cascofacundo Casco
>>> import time >>> tm = time.strftime('%a, %d %b %Y %H:%M:%S %Z(%z)') >>> tm 'Mon, 08 Aug 2011 20:14:59 CEST(+0200)' 4
9.6456 Huy hiệu vàng44 Huy hiệu bạc63 Huy hiệu Đồng
>>> import time >>> tm = time.strftime('%a, %d %b %Y %H:%M:%S %Z(%z)') >>> tm 'Mon, 08 Aug 2011 20:14:59 CEST(+0200)' 5
Điều tốt nhất cần làm là sử dụng phương thức chuỗi >>> import time >>> tm = time.strftime('%a, %d %b %Y %H:%M:%S %Z(%z)') >>> tm 'Mon, 08 Aug 2011 20:14:59 CEST(+0200)' 2:Aug 8, 2011 at 18:14
Cách làm điều này cũ hơn sẽ là:
str = '%f test success\n' % tm fsock.write(str)Cuối cùng, bạn có thể làm:
Điều tốt nhất cần làm là sử dụng phương thức chuỗi >>> import time >>> tm = time.strftime('%a, %d %b %Y %H:%M:%S %Z(%z)') >>> tm 'Mon, 08 Aug 2011 20:14:59 CEST(+0200)' 2:Aug 8, 2011 at 18:14
Cách làm điều này cũ hơn sẽ là:richardolsson
Cuối cùng, bạn có thể làm:1 gold badge16 silver badges19 bronze badges
Kết hợp chuỗi là một hoạt động rất phổ biến trong lập trình. Sự kết hợp chuỗi python có thể được thực hiện bằng cách sử dụng nhiều cách khác nhau. Hướng dẫn này nhằm mục đích khám phá các cách khác nhau để nối các chuỗi trong một chương trình Python.
Sự kết hợp chuỗi python
Chúng ta có thể thực hiện kết nối chuỗi bằng cách sử dụng các cách sau:
- Sử dụng toán tử +
- Sử dụng phương thức tham gia ()
- Sử dụng nhà điều hành %
- Sử dụng hàm định dạng ()
- Sử dụng chuỗi F (nội suy chuỗi theo nghĩa đen)
Concatenation chuỗi bằng cách sử dụng toán tử +
Đây là cách đơn giản nhất để kết hợp chuỗi. Hãy cùng nhìn vào một ví dụ đơn giản.
s1 = 'Apple' s2 = 'Pie' s3 = 'Sauce' s4 = s1 + s2 + s3 print(s4)Đầu ra: >>> import time >>> tm = time.strftime('%a, %d %b %Y %H:%M:%S %Z(%z)') >>> tm 'Mon, 08 Aug 2011 20:14:59 CEST(+0200)' 6 Hãy cùng xem xét một ví dụ khác, nơi chúng ta sẽ nhận được hai chuỗi từ đầu vào của người dùng và kết hợp chúng.
s1 = input('Please enter the first string:\n') s2 = input('Please enter the second string:\n') print('Concatenated String =', s1 + s2)Output:
Please enter the first string: Hello Please enter the second string: World Concatenated String = HelloWorldChúng ta có thể sử dụng hàm str () để có được biểu diễn chuỗi của một đối tượng. Hãy cùng xem cách kết hợp một chuỗi vào số nguyên hoặc đối tượng khác.
C:\Python>python test.py filename: c:\Python\test.txt Traceback (most recent call last): File "test.py", line 8, in <module> fsock.write(tm + 'test success\n ') TypeError: unsupported operand type(s) for +: 'float' and 'str' C:\Python> 0Đầu ra:
C:\Python>python test.py filename: c:\Python\test.txt Traceback (most recent call last): File "test.py", line 8, in <module> fsock.write(tm + 'test success\n ') TypeError: unsupported operand type(s) for +: 'float' and 'str' C:\Python> 1Vấn đề lớn nhất với toán tử + là chúng ta có thể thêm bất kỳ dấu phân cách hoặc dấu phân cách nào giữa các chuỗi. Ví dụ: nếu chúng ta phải kết hợp với Hello Hello và thế giới với một dấu cách phân tách khoảng trắng, chúng ta sẽ phải viết nó dưới dạng >>> import time >>> tm = time.strftime('%a, %d %b %Y %H:%M:%S %Z(%z)') >>> tm 'Mon, 08 Aug 2011 20:14:59 CEST(+0200)' 7.
Chuỗi nối
Chúng ta có thể sử dụng hàm Jop () để kết hợp chuỗi với một dấu phân cách. Nó rất hữu ích khi chúng ta có một chuỗi các chuỗi, ví dụ như danh sách hoặc tuple của chuỗi. Nếu bạn không muốn một dấu phân cách, thì hãy sử dụng hàm Jop () với một chuỗi trống.
C:\Python>python test.py filename: c:\Python\test.txt Traceback (most recent call last): File "test.py", line 8, in <module> fsock.write(tm + 'test success\n ') TypeError: unsupported operand type(s) for +: 'float' and 'str' C:\Python> 2Output:
C:\Python>python test.py filename: c:\Python\test.txt Traceback (most recent call last): File "test.py", line 8, in <module> fsock.write(tm + 'test success\n ') TypeError: unsupported operand type(s) for +: 'float' and 'str' C:\Python> 3Concatenation chuỗi bằng cách sử dụng toán tử %
Chúng ta có thể sử dụng toán tử % cho định dạng chuỗi, nó cũng có thể được sử dụng để nối chuỗi. Nó rất hữu ích khi chúng tôi muốn kết hợp các chuỗi và thực hiện định dạng đơn giản.
C:\Python>python test.py filename: c:\Python\test.txt Traceback (most recent call last): File "test.py", line 8, in <module> fsock.write(tm + 'test success\n ') TypeError: unsupported operand type(s) for +: 'float' and 'str' C:\Python> 4Output:
C:\Python>python test.py filename: c:\Python\test.txt Traceback (most recent call last): File "test.py", line 8, in <module> fsock.write(tm + 'test success\n ') TypeError: unsupported operand type(s) for +: 'float' and 'str' C:\Python> 5Chuỗi kết nối bằng cách sử dụng hàm định dạng ()
Chúng ta cũng có thể sử dụng hàm định dạng chuỗi () để nối chuỗi và định dạng.
C:\Python>python test.py filename: c:\Python\test.txt Traceback (most recent call last): File "test.py", line 8, in <module> fsock.write(tm + 'test success\n ') TypeError: unsupported operand type(s) for +: 'float' and 'str' C:\Python> 6Output:
C:\Python>python test.py filename: c:\Python\test.txt Traceback (most recent call last): File "test.py", line 8, in <module> fsock.write(tm + 'test success\n ') TypeError: unsupported operand type(s) for +: 'float' and 'str' C:\Python> 7Chức năng Python String Format () rất mạnh, sử dụng nó chỉ để nối các chuỗi không phải là cách sử dụng đúng đắn.
Kết nối chuỗi bằng cách sử dụng chuỗi f
Nếu bạn đang sử dụng Python 3.6+, bạn cũng có thể sử dụng chuỗi F để nối chuỗi. Nó là một cách mới để định dạng chuỗi và được giới thiệu trong PEP 498 - nội suy chuỗi theo nghĩa đen.
C:\Python>python test.py filename: c:\Python\test.txt Traceback (most recent call last): File "test.py", line 8, in <module> fsock.write(tm + 'test success\n ') TypeError: unsupported operand type(s) for +: 'float' and 'str' C:\Python> 8Output:
C:\Python>python test.py filename: c:\Python\test.txt Traceback (most recent call last): File "test.py", line 8, in <module> fsock.write(tm + 'test success\n ') TypeError: unsupported operand type(s) for +: 'float' and 'str' C:\Python> 9Python F-String sạch hơn và dễ ghi hơn khi so sánh với hàm định dạng (). Nó cũng gọi hàm str () khi một đối số đối tượng được sử dụng làm thay thế trường.
Sự kết luận
Định dạng chuỗi Python có thể được thực hiện theo nhiều cách. Sử dụng chúng dựa trên yêu cầu của bạn. Nếu bạn phải nối trình tự chuỗi với một hàm được phân định, thì hãy sử dụng hàm nối (). Nếu một số định dạng cũng được yêu cầu với sự kết hợp, thì hãy sử dụng hàm định dạng () hoặc chuỗi f. Lưu ý rằng chuỗi F có thể được sử dụng với các phiên bản Python 3.6 trở lên.
Bạn có thể kiểm tra toàn bộ tập lệnh Python và nhiều ví dụ về Python từ Kho lưu trữ GitHub của chúng tôi.