30/09/2018, 19:30
Thay đổi giá trị là số, chuỗi khi ra khỏi hàm
Kiểu dữ liệu cơ bản: Số, chuỗi, bool sẽ mặc định là tham trị (biến trong hàm thay đổi giá trị thì biến gọi vào không đổi)
Kiểu dữ liệu cấu trúc: List, dict, set sẽ là tham biến (biến trong hàm thay đổi thì biến truyền vào khi gọi hàm sẽ thay đổi theo)
vậy làm sao e có thể thay đổi được 1 số hay chuỗi khi ra khỏi hàm ạ
e cám ơn
Bài liên quan
trả về số hay chuỗi mới.
Python cho trả về nhiều giá trị (có thể có kiểu ko liên quan) thông qua
tuple
thay vì chỉ trả về 1 kiểu như Cví dụ:
thì sample sẽ là 1
tuple
chứa(1, "Nguyen Van A", 9.5)
.sample[0]
chứa số thứ tự là số nguyên1
sample[1]
chứa họ tên là chuỗi"Nguyen Van A"
sample[2]
chứa điểm số là số thực9.5
tuple là immutable object, nghĩa là object 1 khi đã tạo rồi ko thể thay đổi được nữa. String trong Python cũng là immutable object. Muốn sửa 1 ký tự của chuỗi cho trước cũng phải tạo 1 chuỗi hoàn toàn mới
1 hàm đơn giản thôi vd:
a,b=3,4
def convert(a,b):
a,b=b,a
convert(a,b)
print a,b
em muốn ra khỏi hàm convert thi a ,b nó thay đổi
hay e muốn nó truyền tham biến như trong C ạ
Python ko có truyền tham biến. Em muốn viết vậy thì ghi là
tại sao lại vậy bởi vì e vẫn thay đổi được chư
a=[0,1,2,4,5]
a[0]=6
a
lúc này nó hiện ra [6,1,2,4,5]
vì
list
là mutable objecthay nhờ 1 hàm trả về nhiều gt s e cám ơn nhé
e còn cái nữa muốn hỏi
a=[0,1,2,3,4]
def test():
a[0]=5
a
nó in ra [5,1,2,3,4]
trong khi mình có truyền a vào cho nó đâu
cái này khó giải thích hơn tí
vì
a
được định nghĩa trước hàmtest()
nêntest()
biếta
là 1 list object. Tuy nó ko thể thay đổia
(ví dụ gána = []
, nhưng nó vẫn có thể thay đổi giá trị nằm tronga
, hay thay đổi giá trị củaa[i]
, vì a là mutable object.