1. 程式人生 > >for 迴圈 ,數字型別,以及字串型別

for 迴圈 ,數字型別,以及字串型別

l=['a','b','c']
print(len(l))
i=0
while i<len(l):
print(l[i])
i+=1

l=['a','b','c']
for item in l: #item='a'
print(item)

dic={'x':111,'y':222,'z':333}
for k in dic: #k='x'
print(k,dic[k])


while迴圈 VS for迴圈
1.
while迴圈:稱之為條件迴圈,迴圈的次數取決於條件何時為False
for迴圈:稱之為...迴圈,迴圈的次數取決於資料的包含的元素的個數

2.
for迴圈專門用來取值,在迴圈取值方面比while迴圈要強大,以後但凡

遇到迴圈取值的場景,就應該用for迴圈

0 1 2
l=['a','b','c']
for i in range(3):
print(i,l[i])


for+break
names=['egon','kevin','alex','hulaoshi']
for name in names:
if name == 'alex':break
print(name)



for+continue
names=['egon','kevin','alex','hulaoshi']
for name in names:
if name == 'alex':continue
print(name)


for+else
names=['egon','kevin','alex','hulaoshi']
for name in names:
# if name == 'alex':break
print(name)
else:
print('=====>')

for迴圈巢狀
for i in range(3): #i=2
for j in range(2): #j=1
print(i,j) #2,1


'''
外層迴圈第一次:i=0
內層迴圈
0,0
0,1

外層迴圈第二次:i=1
內層迴圈
1,0
1,1

外層迴圈第三次: i=2
內層迴圈
2,0
2,1


'''

print(' ',end='')
print('bbbbb',end='')


1. 整型int
======================================基本使用======================================
1、用途:記錄年齡、等級、號碼等

2、定義方式
age=10 # age=int(10)

型別轉換
print(int(3.1))
res=int('1111111')
print(res,type(res))


res=float('111111.1')
print(res,type(res))

瞭解(**)
十進位制轉成。。。進位制
print(bin(13))
print(oct(13))
print(hex(13))


3、常用操作+內建的方法

======================================該型別總結====================================
存一個值

不可變
x=10
print(id(x))
x=11
print(id(x))


1. 浮點型float
======================================基本使用======================================
1、用途:記錄身高、體重、薪資等

2、定義方式
salary=10.1 # salary=float(10.1)

型別轉換
print(float(10))
print(float(1.1))
print(float('1.1'))

3、常用操作+內建的方法

======================================該型別總結====================================
存一個值

不可變
x=10.3
print(id(x))
x=11.2
print(id(x))




字串型別str
======================================基本使用======================================
1、用途:記錄描述性值的狀態,比如名字、性別等

2、定義方式
msg='hello world' #msg=str('hello world')

型別轉換: 可以把任意型別專場字串型別
res1=str(10)
res2=str(10.3)
res3=str([1,2,3])
res4=str({'x':1}) #res4="{'x':1}"

print(type(res1))
print(type(res2))
print(type(res3))
print(type(res4))


3、常用操作+內建的方法
優先掌握的操作:(*****)
1、按索引取值(正向取+反向取) :只能取
msg='hello world'

print(type(msg[0]))
print(msg[-1])

msg[0]='H'


2、切片(顧頭不顧尾,步長)
msg='hello world'
print(msg[0]+msg[1]+msg[2])
print(msg[0:5])
print(msg[0:5:2]) #0 2 4
print(msg[0:]) #
print(msg[:]) #


print(msg[-1:-5:-1]) #-1 -2 -3 -4
print(msg[::-1]) #-1 -2 -3 -4

3、長度len:統計的是字元的個數
msg='h你d'
print(len(msg))

4、成員運算in和not in:判斷一個子字串是否存在與一個大字串中
msg='hello world'
print('ho' in msg)
print('ho' not in msg)


5、移除空白strip:移除字串左右兩邊的某些字元
msg=' hello '

print(msg.strip(' '))
print(msg.strip())
print(msg)

name=input('name>>>: ').strip() #name='egon'
pwd=input('password>>>: ').strip()

if name == 'egon' and pwd == '123':
print('login successfull')
else:
print('username or password error')

msg='***h**ello**********'
print(msg.strip('*'))

msg='*-=+h/ello*(_+__'
print(msg.strip('*-=+/(_'))


6、切分split: 把有規律的字串切成列表從而方便取值
info='egon:18:180:150'
res=info.split(':',1)
print(res)
print(res[1])


info='egon:18:180:150'
res=info.split(':')
print(res)


s1=res[0]+':'+res[1]+':'+res[2]+':'+res[3]
s1=''
for item in res:
s1+=item
print(s1)


s1=':'.join(res)
print(s1)

':'.join([1,2,3,4,5])


7、迴圈
for i in 'hello':
print(i)



需要掌握的操作(****)
1、strip,lstrip,rstrip
msg='*****hello****'
print(msg.strip('*')) 移除空白
print(msg.lstrip('*'))  取掉左邊的空白
print(msg.rstrip('*'))  去掉右邊的空白

2、lower,upper
msg='AaBbCc123123123'
print(msg.lower())  把什麼變小寫
print(msg.upper())  把什麼變大寫

3、startswith,endswith
msg='alex is dsb'
print(msg.startswith('alex'))  以什麼開頭
print(msg.endswith('sb'))  以什麼結尾

4、format的三種玩法
msg='my name is %s my age is %s' %('egon',18)
print(msg)

msg='my name is {name} my age is {age}'.format(age=18,name='egon')
print(msg)

瞭解
msg='my name is {} my age is {}'.format(18,'egon')
msg='my name is {0}{0} my age is {1}{1}{1}'.format(18,'egon')
print(msg)


5、split,rsplit
cmd='get|a.txt|33333'
print(cmd.split('|',1))  從左往右切分
print(cmd.rsplit('|',1))  從右往左切分


6、replace
msg='kevin is sb kevin kevin'
print(msg.replace('kevin','sb',2)) 以什麼替換

7、isdigit #當字串內為純數字時結果為True
res='11111'
print(res.isdigit())  判斷是否是純數字
int(res)

age_of_bk=18
inp_age=input('your age: ').strip()
if inp_age.isdigit():
inp_age=int(inp_age) #int('asdfasdfadfasdf')
if inp_age > 18:
print('too big')
elif inp_age < 18:
print('to small')
else:
print('you got it')
else:
print('必須輸入純數字')



瞭解(**)
1、find,rfind,index,rindex,count
print('xxxkevin is sb kevin'.find('kevin'))  從左到右找到該值,在從起點到該值的位置距離,
print('xxxkevin is sb kevin'.index('kevin'))  從左到右找到該值,在從起點到該值的位置距離
print('xxxkevin is sb kevin'.rfind('kevin'))  從右到左找到該值,在從起點到該值的位置距離
print('xxxkevin is sb kevin'.rindex('kevin'))  從右到左找到該值,在從起點到該值的位置距離
fi
                                        但是,find(rfind)找不到則返回-1不會報錯,找到了則顯示索引,而index(rindex)則會報錯
res='xxxkevin is sb kevin'.find('kevasdfsadfin')
print(res)

res='xxxkevin is sb kevin'.index('kevasdfsadfin')



print('kevin is kevin is kevin is sb'.count('kevin'))

2、center,ljust,rjust,zfill
print('egon'.center(50,'*'))  讓egon居中顯示,不夠用*填充
print('egon'.ljust(50,'*'))  讓egon左對齊,不夠用*填充
print('egon'.rjust(50,'*'))  讓egon右對齊,不夠用*填充
print('egon'.zfill(50))  預設右對齊,不夠用零填充

3、captalize,swapcase,title
print('my name is kevin'.capitalize())  讓首字母大寫
print('AaBbCc'.swapcase())  讓大寫變小寫,小寫變大寫
print('my name is kevin'.title())  讓單詞的首字母大寫

4、is其他
name='egon123'
print(name.isalnum()) #字串由字母或數字組成
print(name.isalpha()) #字串只由字母組成

print(name.islower())  判斷是否全是小寫
print(name.isupper())  判斷是否全是大寫
name=' '
print(name.isspace())  判斷是否是空格組成
msg='I Am Egon'
print(msg.istitle())  判斷單詞首字母是否大寫




======================================該型別總結====================================
存一個值

有序

不可變(1、可變:值變,id不變。可變==不可hash 2、不可變:值變,id就變。不可變==可hash)
x='aaa'
print(id(x))
x='bbb'
print(id(x))