Hướng dẫn how do you concatenate two strings in python without using the operator? - làm thế nào để bạn nối hai chuỗi trong python mà không sử dụng toán tử?

Tôi đã chơi với Python và tôi nhận ra rằng chúng tôi không cần phải sử dụng toán tử '+' để nối các chuỗi tĩnh. Nhưng nó thất bại nếu tôi gán nó cho một biến.

Ví dụ:

string1 = 'Hello'   'World'  #1 works fine
string2 = 'Hello' + 'World'  #2 also works fine

string3 = 'Hello'
string4 = 'World'
string5 = string3   string4  #3 causes syntax error
string6 = string3 + string4  #4 works fine

Bây giờ tôi có hai câu hỏi:

  1. Tại sao câu lệnh 3 không hoạt động trong khi câu lệnh 1 có?
  2. Có bất kỳ sự khác biệt kỹ thuật như tốc độ tính toán, vv giữa câu lệnh 1 và 2?

Được hỏi ngày 17 tháng 9 năm 2013 lúc 6:34Sep 17, 2013 at 6:34

Ibrahimibrahimibrahim

3.1467 Huy hiệu vàng40 Huy hiệu bạc56 Huy hiệu Đồng7 gold badges40 silver badges56 bronze badges

3

Từ các tài liệu:

Nhiều trình tự chuỗi liền kề [được phân định bởi khoảng trắng], có thể sử dụng các quy ước trích dẫn khác nhau, được cho phép và ý nghĩa của chúng giống như sự kết hợp của chúng. Do đó, "Xin chào" 'Thế giới' tương đương với "Helloworld".

Tuyên bố 3 không hoạt động vì:

Toán tử ‘++phải được sử dụng để kết hợp các biểu thức chuỗi tại thời điểm chạy.

Lưu ý rằng tiêu đề của người phụ trong tài liệu cũng là "Concatenation theo nghĩa đen". Điều này chỉ hoạt động cho các chuỗi chữ, không phải các đối tượng khác.

Có lẽ không có sự khác biệt. Nếu có, có lẽ nó cực kỳ nhỏ bé và không có gì mà bất cứ ai cũng nên lo lắng.

Ngoài ra, hãy hiểu rằng có thể có những nguy hiểm cho điều này:

>>> def foo[bar, baz=None]:
...     return bar
... 
>>> foo["bob"
... "bill"]
'bobbill'

Đây là một ví dụ hoàn hảo về nơi mà lỗi không bao giờ được truyền lặng lẽ. Điều gì sẽ xảy ra nếu tôi muốn "bill" là đối số baz? Tôi đã quên một dấu phẩy, nhưng không có lỗi nào được nêu ra. Thay vào đó, sự kết hợp đã diễn ra.

Đã trả lời ngày 17 tháng 9 năm 2013 lúc 6:40Sep 17, 2013 at 6:40

TerryaterryaTerryA

57K11 Huy hiệu vàng117 Huy hiệu bạc138 Huy hiệu đồng11 gold badges117 silver badges138 bronze badges

10

Đây là sự kết hợp theo nghĩa đen của chuỗi. Nó chỉ xảy ra với các chữ theo chuỗi, không phải các biến hoặc các biểu thức khác đánh giá theo chuỗi. Đã từng có một sự khác biệt về hiệu suất [nhỏ], nhưng ngày nay, trình tối ưu hóa nhìn trộm sẽ khiến các hình thức về cơ bản tương đương.

Đã trả lời ngày 17 tháng 9 năm 2013 lúc 6:38Sep 17, 2013 at 6:38

user2357112user2357112user2357112

242K26 Huy hiệu vàng393 Huy hiệu bạc470 Huy hiệu Đồng26 gold badges393 silver badges470 bronze badges

Để trả lời câu hỏi thứ hai của bạn: Không có sự khác biệt nào cả [ít nhất là với việc thực hiện tôi sử dụng]. Tháo rời cả hai tuyên bố, chúng được hiển thị là

>>> def foo[bar, baz=None]:
...     return bar
... 
>>> foo["bob"
... "bill"]
'bobbill'
0. Họ tương đương.

Đã trả lời ngày 17 tháng 9 năm 2013 lúc 6:39Sep 17, 2013 at 6:39

HyperboreushyperboreusHyperboreus

31.4K9 Huy hiệu vàng45 Huy hiệu bạc84 Huy hiệu đồng9 gold badges45 silver badges84 bronze badges

2

Bạn có thể sử dụng

>>> def foo[bar, baz=None]:
...     return bar
... 
>>> foo["bob"
... "bill"]
'bobbill'
1 vì điều này hiệu quả hơn so với sử dụng + dấu.

>>> string2 = "%s %s" %['Hello', 'World']
>>> string2
'Hello World'

[OR]

Một phương pháp nữa là

>>> def foo[bar, baz=None]:
...     return bar
... 
>>> foo["bob"
... "bill"]
'bobbill'
2

>>> string2 = "{0} {1}".format["Hello", "World"]
>>> string2
'Hello World'
>>> 

Đã trả lời ngày 24 tháng 6 năm 2016 lúc 7:44Jun 24, 2016 at 7:44

SupernovasupernovaSuperNova

Phim thương hiệu vàng 23K66 gold badges87 silver badges60 bronze badges

Câu lệnh 3 không hoạt động như khi bạn kết hợp hai biểu thức chuỗi để tạo chuỗi mới, bạn cần một toán tử '+'.

Trong khi đó trong trường hợp đánh dấu 1,2 và 4, các chữ lân cận được phân tách bằng không gian trắng sử dụng các quy ước trích dẫn khác nhau. Chúng được phép làm cho chúng in giống như sự kết hợp của chúng.

Ngoài ra, sẽ không có bất kỳ chênh lệch thời gian đáng kể hoặc đáng chú ý nào trong việc chạy 2 hoạt động đó.

%%timeit -n 1
s1='ab'
s2='ba'
print[s1+s2]

O/P chạy chậm nhất mất nhiều thời gian dài hơn 17,08 lần so với nhanh nhất. Điều này có thể có nghĩa là một kết quả trung gian đang được lưu trữ. 57,8 Phass ± 92,5 Pha mỗi vòng [trung bình ± std. Dev. Của 7 lần chạy, 1 vòng mỗi]

%%timeit -n 1
s3='ab' 'ba'
print[s3]

O/P Chạy chậm nhất mất 4,86 ​​lần so với nhanh nhất. Điều này có thể có nghĩa là một kết quả trung gian đang được lưu trữ. 25,7 TiếtS ± 21 Pha mỗi vòng [trung bình ± std. Dev. Của 7 lần chạy, 1 vòng mỗi]

Đã trả lời ngày 31 tháng 3 năm 2018 lúc 16:33Mar 31, 2018 at 16:33

Shrayshrayshray

Phù hiệu bằng đồng 1122 bronze badges

Tại sao câu lệnh 3 không hoạt động trong khi câu lệnh 1 có?

Bởi vì, trong tuyên bố đầu tiên, chúng tôi đang gán một số hằng số cho một biến. Việc gán biến là đủ đơn giản để chúng ta có thể tiếp tục đặt nhiều hằng số vào một biến duy nhất và bài tập vẫn sẽ được thực hiện. Các thuật ngữ

>>> def foo[bar, baz=None]:
...     return bar
... 
>>> foo["bob"
... "bill"]
'bobbill'
3 và
>>> def foo[bar, baz=None]:
...     return bar
... 
>>> foo["bob"
... "bill"]
'bobbill'
4 là hai hằng số cùng loại. Vì vậy, tuyên bố đã làm việc.

Nếu chúng tôi làm như sau, chúng tôi sẽ nhận được

>>> def foo[bar, baz=None]:
...     return bar
... 
>>> foo["bob"
... "bill"]
'bobbill'
5

string1 = "Hello" 1

Lý do là chúng tôi đã cung cấp nhiều hằng số trong một gán biến. Python bối rối này và nó đã ném nó ra như một lỗi.

Câu lệnh 3 là tất cả về việc gán một biến dựa trên hai biến. Điều này sẽ tạo ra

>>> def foo[bar, baz=None]:
...     return bar
... 
>>> foo["bob"
... "bill"]
'bobbill'
5 vì Python không biết nó có thể làm gì với 2 biến trước khi gán nó cho biến.

Có bất kỳ sự khác biệt kỹ thuật như tốc độ tính toán, vv giữa câu lệnh 1 và 2?

Đúng. Sự khác biệt kỹ thuật duy nhất là khả năng đọc hơn là bất cứ điều gì khác. Khả năng đọc quan trọng nhất trong Python. Đối với một con mắt chưa được đào tạo,

>>> def foo[bar, baz=None]:
...     return bar
... 
>>> foo["bob"
... "bill"]
'bobbill'
7 có thể trông giống như trình biên dịch sẽ thêm không gian vào các chuỗi. Đó không phải là trường hợp.

Tuy nhiên,

"hello" + "world"

là rõ ràng và bình thường. Gần như luôn luôn, rõ ràng là tốt hơn tiềm ẩn.

Đã trả lời ngày 16 tháng 7 năm 2018 lúc 10:24Jul 16, 2018 at 10:24

Thiruvenkadamthiruvenkadamthiruvenkadam

4.0283 Huy hiệu vàng26 Huy hiệu bạc26 Huy hiệu đồng3 gold badges26 silver badges26 bronze badges

Làm thế nào để bạn kết hợp hai chuỗi trong Python?

Hai chuỗi có thể được nối trong Python bằng cách sử dụng toán tử '+' giữa chúng. Nhiều hơn hai chuỗi có thể được nối bằng toán tử '+'.using the '+' operator between them. More than two strings can be concatenated using '+' operator.

Cách tốt nhất để nối các chuỗi trong Python là gì?

Một trong những phương pháp phổ biến nhất để kết hợp hai chuỗi trong Python [hoặc nhiều hơn] là sử dụng toán tử +.Toán tử +, khi được sử dụng với hai chuỗi, kết hợp các chuỗi với nhau để tạo thành một.using the + operator. The + operator, when used with two strings, concatenates the strings together to form one.

Làm thế nào để bạn kết hợp hai chuỗi mà không có không gian trong Python?

Sử dụng kết nối chuỗi trong python toán tử +, còn được gọi là toán tử nối chuỗi, có thể được sử dụng trong trường hợp này để ngăn chặn khoảng cách không cần thiết giữa các giá trị.The + operator, also known as the string concatenation operator, can be used in this case to prevent unnecessary spacing between the values.

Làm thế nào để bạn nối 2 chuỗi?

Kết nối là quá trình nối thêm một chuỗi vào cuối chuỗi khác.Bạn nối các chuỗi bằng cách sử dụng toán tử +.Đối với các chuỗi chữ và hằng số chuỗi, sự kết hợp xảy ra tại thời điểm biên dịch;Không có sự kết hợp thời gian chạy xảy ra.Đối với các biến chuỗi, việc kết hợp chỉ xảy ra tại thời điểm chạy.by using the + operator. For string literals and string constants, concatenation occurs at compile time; no run-time concatenation occurs. For string variables, concatenation occurs only at run time.

Bài Viết Liên Quan

Chủ Đề