python基礎-變數與基本資料型別
阿新 • • 發佈:2020-11-24
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判斷中用到它