1. 程式人生 > >python學習day4 資料型別 if語句

python學習day4 資料型別 if語句

1.變數的記憶體管理

  cpython直譯器垃圾回收機制

  什麼是垃圾,當一個值身上沒有繫結變數名時,(該值的引用計數=0時)就是一個垃圾

  age=18 #18的引用計數=1

  x=age  #18的引用計數=2

  age=19 #18的引用計數=1

  del x #刪除x的定義,18的引用計數=0

2.變數值具有的三個特點

  id 記憶體地址

  type資料型別

  值 本身

  id相同,值一定相同

  值相同,id可以不同

  python把常用的小整數型-5-256提前申請好記憶體地址,方便呼叫  

  因為cpu在操作硬體的核心態和應用程式的使用者態直接切換會花費時間,提前申請好節省時間

 

  is,判斷id是否相同

  ==判斷值是否相同

 

  可變型別/不可變型別

  可變型別:值改變,id不變,證明就是在修改原值

  不可變型別:值改變,id改變,證明不是在修改原值

   x=10

  print(id(x))

  x=11

  print(id(x))

 

3.python2與使用者的互動

python2中的raw_input和python3的input是一樣的效果,可以把所有輸入轉化成str字串型別

python2中的input要求使用者輸入一個明確的型別,輸入什麼型別,就存成什麼型別

 

4.資料型別

  作用:用來記錄狀態

  4.1整型int

  作用:可以用來記錄年齡,等級,各種號碼狀態

  定義age=18

  age=int(18)

  print(type(age))

  print(age+3)

  print(age>3) 

  4.2浮點型

  作用:用來記錄身高,體重,工資等狀態

  salary=3.1

  print(type(salar))

  print(3.1+2.3)

  print(3.1+2)

  4.3字串型別str(一堆字母拼接在一起)

  作用:用來記錄描述性質的狀態 比如名字 性別

  定義:在單引號(’‘)雙引號(“”)、三引號(’‘’‘’‘,“”“”“”),包含一系列的字元

  x='abc'

  y="abc"

  z='''

  abc

  xxxx

  '''

print(type(x))

 

引號的巢狀,要區分開msg='name is "egon"'

print('abc'+'efg') #僅限於str型別直接相加

print('abc'*10) # *的只能是數字

print('a'> 'Z') #按ASCII碼錶對照比較大小

 

4.3列表型別list

作用:用來記錄多個值,用索引對應值,索引反映是位置

定義:在[]內用逗號分隔開多個任意型別的值

l=[1,3.1,'xxx',['a','b','c']

print(type(l))

print(l[3][0])

 

4.4字典型別
作用:用來記錄多個值,用key對應value,其中key對value有描述性的功能

定義:在{}內,用逗號分割開多元素,每一個元素都是key:value的形式,其中value可以是任意型別,key一般是str型別

d={'x':1,'y':3.1,'z':['a','b'],'m':{'aaa':11111}}

print(type(d))

呼叫

print(d['x'])

print(d['m']['aaa'])

print(d['z'][1])


# name age gender compay_info
# emp_info=['egon',18,'male',['Oldboy','SH',200]]
# print(emp_info[1])
# print(emp_info[3][2])

# 字典的方式
# emp_info={'name':'egon','age':18,"gender":'male','company_info':['Oldboy','SH',200]}

# print(emp_info['age'])
# print(emp_info['company_info'][0])

# names=['egon','alex','kevin']
# dic={'name1':'egon','name2':'alex','name3':'kevin'}

# 列表的方式
# name age gender compay_info
# emp_info=['egon',18,'male',['Oldboy','SH',200]]
# print(emp_info[1])
# print(emp_info[3][2])

# 字典的方式
# emp_info={'name':'egon','age':18,"gender":'male','company_info':['Oldboy','SH',200]}

# print(emp_info['age'])
# print(emp_info['company_info'][0])

# names=['egon','alex','kevin']
# dic={'name1':'egon','name2':'alex','name3':'kevin'}

列表的方

4.5 布林型:True False
print(type(True))
print(type(False))

tag1=True
tag2=True
print(id(tag1))
print(id(tag2))

所有資料都自帶布林值
布林值為假的資料型別:0,None,空
print(bool([]))
print(bool(''))
print(bool(None))

4.6None
print(type(None))

5.基本運算子
比較運算子
> >=
< <=
==
!=
print(10!=11)

x=None
print(x ==None)
print(x is None)

l1=['abc',1,['a','b','c']]
l2=['abc','aa]
print(l2>l1) #從第一個資料開始比較,必須是同一個資料型別

邏輯運算子
and 連線左右兩個條件,必須兩個同時成立,and運算結果才為True
print(10>9 and 3>2 and 'egon'=='egon')
or 連線左右兩個條件,兩個條件成立任意一個or運算的結果就為True
res=(False or False or True or False or 3>10)

可以加括號,優先運算括號內公式

not 非運算子 把緊接其後的條件取反
x=None
print(not is None)
print(x is not None)


age1=18
age2=19
print(age2 is not age1)

name_bk='egon'
pwd_bak='123'
name=input('please input your name: ')
pwd=input('please input your password: ')
if name == name_bk and pwd == pwd_bak:
print('login successfull')
print('login successfull')
print('login successfull')
print('login successfull')
print('login successfull')
else:
print('username or password error')