2010-07-29 51 views
10

Khi giới thiệu một biến [i] vào một chuỗi trong python.chèn các giá trị biến vào một chuỗi trong python

Ví dụ xem tập lệnh sau, tôi chỉ muốn có thể đặt tên cho hình ảnh, ví dụ: geo [0]. Tiff ... đến địa lý [i]. tiff, hoặc nếu bạn sử dụng một kế toán như tôi có thể thay thế một phần của chuỗi giá trị để tạo ra một truy cập.

data = self.cmd("r.out.gdal in=rdata out=geo.tif") 

    self.dataOutTIF.setValue("geo.tif") 

cảm ơn vì câu trả lời của bạn

Trả lời

10
data = self.cmd("r.out.gdal in=rdata out=geo{0}.tif".format(i)) 
self.dataOutTIF.setValue("geo{0}.tif".format(i)) 
str.format(*args, **kwargs) 

Thực hiện một chuỗi hoạt động định dạng. Chuỗi mà phương thức này được gọi là có thể chứa các trường văn bản hoặc trường thay thế theo ngữ nghĩa được phân tách bằng bằng dấu ngoặc nhọn {}. Mỗi trường thay thế chứa chỉ số bằng số của đối số vị trí hoặc tên của đối số từ khóa . Trả lại bản sao của chuỗi nơi mỗi trường thay thế được thay thế bằng giá trị chuỗi của đối số tương ứng.

>>> "The sum of 1 + 2 is {0}".format(1+2) 
'The sum of 1 + 2 is 3' 

Xem Format Chuỗi Cú pháp cho một mô tả về tùy chọn định dạng khác nhau mà có thể được quy định tại định dạng chuỗi.

Phương pháp này của định dạng chuỗi là tiêu chuẩn mới trong Python 3.0, và nên được ưa thích đến thư mục% định dạng được mô tả trong chuỗi Operations Formatting trong mã mới.

New in version 2.6. 
+0

Những ngày này là '.format' được coi là có nhiều pythonic hơn giải pháp của tôi? –

+0

Có, nó được chính thức xác nhận, và giải pháp của bạn không phải là, iirc. Không đổ lỗi cho các chi tiết :) –

+1

@orangeoctopus, Chỉ dành cho Python2.6 + http://docs.python.org/library/stdtypes.html#str.format –

12

Bạn có thể sử dụng toán tử % để tiêm chuỗi thành chuỗi:

"first string is: %s, second one is: %s" % (str1, "geo.tif") 

này sẽ cung cấp:

"first string is: STR1CONTENTS, second one is geo.tif" 

Bạn cũng có thể làm nguyên với %d:

"geo%d.tif" % 3 # geo3.tif 
-2

Bạn cũng có thể làm điều này:

name = input("what is your name?") 
print("this is",+name) 
+3

Trên thực tế, điều này không hoạt động .. bạn có nghĩa là 'in (" này là "+ tên)'? – Lisa

0

Sử dụng

var = input("Input the variable") 
print("Your variable is " + var) 

Lưu ý rằng var phải là một chuỗi, nếu nó không phải là, chuyển nó sang một chuỗi với var = str(var).

Ví dụ

var = 5 # This is an integer, not a string 
print("Var is " + str(var)) 

Giải pháp này là đơn giản nhất để đọc/hiểu, vì vậy tốt hơn cho người mới bắt đầu, vì nó chỉ là đơn giản nối chuỗi.

Các vấn đề liên quan