1. 程式人生 > 實用技巧 >python基礎-變數與基本資料型別

python基礎-變數與基本資料型別


1、變數

一、什麼是變數?

變數就是可以變化的量,量指的是事物的狀態,比如人的年齡、性別,遊戲角色的等級、金錢等等

二、為什麼要有變數?
為了讓計算機能夠像人一樣去記憶事物的某種狀態,並且狀態是可以發生變化的
詳細地說:
程式執行的本質就是一系列狀態的變化,變是程式執行的直接體現,所以我們需要有一種機制能夠反映或者說是儲存下來程
三、如何用變數
# 1、變數基本使用
# 原則:先定義,後引用
name = 'feng'  # 定義-》存
print(name)  # 引用-》取

age = 18
print(age)

 

# 2、記憶體管理:垃圾回收機制
# 垃圾:當一個變數值被繫結的變數名的個數為0時,該變數值無法被訪問到,稱之為垃圾
# 引用計數增加
x = 10  # 10的引用計數為1         
y = x  # 10的引用計數為2
z = x  # 10的引用計數為3

# 引用計數減少
del x  # 解除變數名x與值10的繫結關係,10的引用計數變為2
# print(y)
del y  # 10的引用計數變為1
# print(z)
z = 12345  # # 10的引用計數變為0
# print(z)
3、變數有三大組成部分
I:變數名=》是指向等號右側值的記憶體地址的,用來訪問等號右側的值

II:賦值符號:將變數值的記憶體地址繫結給變數名
III:變數值:代表記錄的事物的狀態

# 4、變數名的命名的規則
# 原則:變數名的命名應該見名知意
# 4.1. 變數名只能是 字母、數字或下劃線的任意組合
# 4.2. 變數名的第一個字元不能是數字
# 4.3. 關鍵字不能宣告為變數名,常用關鍵字如下
# ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from','global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
age=18 print='egon' # ps:不要用拼音,不要用中文,在見名知意的前提下儘可能短 mingzi='egon' # 名字='egon' print(名字)


# 5、變數名的命名風格
# 5.1 純小寫加下劃線的方式(在python中,關於變數名的命名推薦使用這種方式)
age_of_alex = 73
print(age_of_alex)
# 5.2 駝峰體
AgeOfAlex = 73
print(AgeOfAlex)


# 6、變數值三個重要的特徵
# name='egon'
# id:反映的是變數值的記憶體地址,記憶體地址不同id則不同
# print(id(name))
# type:不同型別的值用來表示記錄不同的狀態 # print(type(name)) # value:值本身 # print(name) # 6.2 is與== # is:比較左右兩個值身份id是否相等 # ==:比較左右兩個值他們的值是否相等 ''' id不同的情況下,值有可能相同,即兩塊不同的記憶體空間裡可以存相同的值 id相同的情況下,值一定相同,x is y成立,x == y也必然成立 >>> >>> x='info:Egon:18' >>> y='info:Egon:18' >>> print(x,y) info:Egon:18 info:Egon:18 >>> print(id(x),id(y)) 4565819264 4566192176 >>> >>> >>> >>> x == y True >>> x is y False ''' # 瞭解:小整數池[-5,256] # 從python直譯器啟動那一刻開始,就會在記憶體中事先申請 # 好一系列記憶體空間存放好常用的整數 ''' >>> m=10 >>> n=10 >>> id(m) 4562619328 >>> id(n) 4562619328 >>> >>> res=4+6 >>> res 10 >>> id(res) 4562619328 ''' ''' >>> x=-5 >>> y=-5 >>> x is y True >>> x=-6 >>> y=-6 >>> x is y False ''' ''' >>> x='aaa' >>> y='aaa' >>> >>> >>> id(x) 4566200880 >>> id(y) 4566200880 ''' ''' x=-6 y=-6 print(id(x)) print(id(y)) print(x is y) '''


# 7、常量:不變的量
# 注意:python語法中沒有常量的概念,但是在程式的開發過程中會涉及到常量的概念
AGE_OF_ALEX = 73  # 小寫字母全為大寫代表常量,這只是一種約定、規範
AGE_OF_ALEX = 74
print(AGE_OF_ALEX)
 

2.資料型別

# 1、數字型別
# 1.1 整型int
# 作用:記錄年齡、身份證號、個數等等
# 定義:
age = 18
# print(type(age))

# 浮點型float
# 作用:記錄薪資、身高、體重
# 定義
salary = 3.3
height = 1.87
weight = 70.3
# print(type(height))

# 數字型別的其他使用
# level = 1
# level=level + 1
# print(level)
# print(10 *3)

# print(10 + 3.3) # int與float之間可以相加
# age = 19
# print(age > 18)
# 2、字串型別str
# 作用:記錄描述性質的狀態,名字、一段話
# 定義:用引號('',"",''' ''',""" """,)包含的一串字元
info = '''
天下只有兩種人。比如一串葡萄到手,一種人挑最好的先吃,
另一種人把最好的留到最後吃。
照例第一種人應該樂觀,因為他每吃一顆都是吃剩的葡萄裡最好的;
第二種人應該悲觀,因為他每吃一顆都是吃剩的葡萄裡最壞的。
不過事實卻適得其反,緣故是第二種人還有希望,第一種人只有回憶。
'''
# print(type(info))
# name="egon"
# print(name)

# x=18
# print(type(x))
# x='18' # 由數字組成的字串,是字串型別,不是int型別
# print(type(x))

# 'name'='egon' # 語法錯誤,等號左邊是變數名,變數名的命名不能有引號

# xxx # 代表訪問變數名字
'xxx'  # 代表的是值

# x=10
# y=x

# 其他使用:
# 字串的巢狀,注意:外層用單引號,記憶體應該用雙引號,反之亦然
# print("my name is 'egon'")
# print('my name is \'egon\'')

# 字串之間可以相加,但僅限於str與str之間進行,
# 代表字串的拼接,瞭解即可,不推薦使用,因為str之間的
# 相加效率極低
# print('my name is '+'egon')
# print('='*20)
# print('hello world')
# print('='*20)
# 3、列表:索引對應值,索引從0開始,0代表第一個
# 作用:按位置記錄多個值(同一個人的多個愛好、同一個班級的所有學校姓名、同一個人12個月的薪資),並且可以按照索引取指定位置的值

# 定義:在[]內用逗號分隔開多個任意型別的值,一個值稱之為一個元素
#  0   1    2        3          4
l = [10, 3.1, 'aaa', ['bbb', 'ccc'], 'ddd']
# print(l)
# print(l[1])
# print(l[2])
# print(l[3][1])

# print(l[4])
# print(l[-1])

# hobbies='read music play'
# print(hobbies)
# hobbies = ['read', 'music', 'play']
# print(hobbies[1])

# 其他的用途:
# students_info=[
#     ['tony',18,['jack',]],
#     ['jason',18,['play','sleep']]
# ]
# 取出第一個學生的第一個愛好
# print(students_info[0][2][0])
# 4、
# 索引反映的是順序、位置,對值沒有描述性的功能
#      0      1   2     3
info=['egon',18,'male',19]
# print(type(info))
# print(info[0])
# print(info[1])
# print(info[2])

# 字典型別:key對應值,其中key通常為字串型別,所以key對值可以有描述性的功能
# 作用:用來存多個值,每個值都有唯一一個key與其對應,key對值有描述性功能
# 定義:在{}內用逗號分開各多個key:value
# d={'a':1,'b':2}
# print(type(d))
# print(d['a'])

# info={
#     "name":'egon',
#     "age":18,
#     "gender":'male',
#     "salary":19
# }
# print(info["salary"])

# 其他用途:
# students_info=[
#     第1個資訊,
#     第2個資訊,
#     第3個資訊,
# ]

students_info=[
    {"name":'egon1','age1':19,'gender':'male'},
    {"name":'egon2','age1':19,'gender':'male'},
    {"name":'egon3','age1':19,'gender':'male'},
]

print(students_info[1]['gender'])
# 5 布林bool
# 6.1 作用
# 用來記錄真假這兩種狀態
#
# 6.2 定義
# is_ok = True
# is_ok = False
# print(type(is_ok))

# x=1
# y=0

# students=[
#     {'name':'egon','gender':'male'},
#     {'name':'alex','gender':'female'},
# ]

# students=[
#     {'name':'egon','gender':True},
#     {'name':'alex','gender':False},
# ]

students=[
    {'name':'egon','gender':1},
    {'name':'alex','gender':0},
]

# 6.3 其他使用
# 通常用來當作判斷的條件,我們將在if判斷中用到它