1. 程式人生 > 其它 >流程控制與基本資料型別內建方法

流程控制與基本資料型別內建方法

目錄

while迴圈

while與else連用

當while沒有被break關鍵字打斷,正常結束迴圈體程式碼之後將會被執行,while與else平級

'''
while 條件:
  條件成立後執行的迴圈體程式碼
else:
  迴圈體程式碼正常執行結束後執行的程式碼
'''
eg:
count = 1
while count < 5:
    print('hellow world!')
    count += 1 
else:
    print('while迴圈正常執行結束')
>>>:hellow world!
>>>:hellow world!
>>>:hellow world!
>>>:hellow world!
>>>:while迴圈正常執行結束

count = 1
while count < 5:
    print('hellow world!')
    count += 1
    if count == 5:
        break
else:
    print('while迴圈正常執行結束')
>>>:hellow world!
>>>:hellow world!
>>>:hellow world!
>>>:hellow world!

死迴圈與while巢狀

死迴圈就是永遠無法結束的迴圈,並且一直佔用cpu工作,死迴圈影響電腦的效能,有時甚至會損壞電腦硬體

#死迴圈
count = 100
while True:
    count *= 10 
#while巢狀
'''
while 條件1:
    條件1成立時執行的子程式碼
    while 條件2:
        條件1和2成立時執行的子程式碼
'''
使用者登入系統:
flag = True
name = 'jason'
pwd = '123'
while flag:
    user_name = input('請輸入使用者名稱:')
    user_pwd = input('請輸入密碼:')
    if user_pwd == pwd and user_name == name:
        print('使用者登入成功')
        while flag:
            reception = input('>>>:')
            if reception == 'exit':
                flag = False
            print(reception)
    else:
        print('使用者名稱或密碼錯誤')

for迴圈

for迴圈可以做到的,while迴圈都可以做到,但是for迴圈語法更加的簡單,所以使用頻率更高,而涉及到迴圈取值時,一般考慮使用for迴圈而不是while迴圈

'''
for 變數名 in 迴圈物件:  #迴圈物件可以是字串、字典、集合、元組
    迴圈體程式碼

每一次迴圈都會將迴圈中的一個物件賦值給變數名,變數名也儘量要做到見名知意。
'''
# 使用for迴圈遍歷 name_list = ['jason', 1, ['name', 'age']]
for i in name_list:
    print(i)
>>>jason
>>>1
>>>['name', 'age']
#依次取出字串 的每一個字元
for i in 'hello '
    print(i)
>>>h
>>>e
>>>l
>>>l
>>>o
>>> 

迴圈字典

'''
只能獲得字典中key的值,無法獲得value的值
'''
dict_1 = {'name' : 'jason', 'age' : 18, 'height' : 180}
for i in dict_1:
    print(i)
>>>name
>>>age
>>>height

迴圈元組

for i in (1,2,3,4,5):
    print(i)
>>>1
>>>2
>>>3
>>>4
>>>5

迴圈集合

for i in {11, 22,3,44}:
    print(i)
>>>3
>>>11
>>>44
>>>22
# 集合和字典的內部都是無序的

range關鍵字

range在python2和python3中是有區別的,在python2中將會直接產生一個列表,在元素很多的情況下比較佔用空間,在python2中有一個 xrange方法,跟python3中的range方法一樣,而python3中不再有xrange方法

#range的使用方法
for i in range(10):
    print(i)  #括號內只寫一個數字,預設從零開始,輸出的值是0~9,顧頭不顧尾

for i in range(5,10)
    print(i)  #括號內有兩個數字,自定義起始位,輸出結果 5~9

for i in range(3,10,2)
    print(i)  #括號內有三個數字,自定義起始位置和步長,輸出結果 3,5,7,9
'''
步長可以為負數,將由小到大的遍歷順序改為,由大到小
'''

資料型別的內建方法

資料型別的內建方法,是為了是我們更加便捷的操作資料,在pycharm中,可以通過,資料型別+.的方式來檢視該型別的內建方法

int

# 1.型別轉換
'''
將純整數的字串,轉換成整型數字
'''
print(int('123'))
>>>123
# 2.進位制轉換
'''
可以將其它進位制的數轉換為十進位制
'''
print(int('0b1100100', 2))  #二進位制
print(int('0o144', 8))  #8進位制
print(int('0x64', 16))  #16進位制
#十進位制,轉換為其他進位制
print(bin(100))
print(oct(100))
print(hex(100))
>>>0b1100100
>>>0o144
>>>0x64

float

#型別轉換
'''
可以將純數字組成的字串轉換成float型,無論整數小數都可以
'''
print(float('11'), float('12.55'))
>>>11.0 12.55

字串內建方法

1.型別轉換

'''
可以將所有型別的資料都轉換成字串
'''
print(type(str([1,2,3,4])), type(str({'name':'jason', 'age':18})))
>>><class 'str'> <class 'str'>

#以s1 = 'hello world'為例

2.索引取值

print(s1[0],s1[2])
>>>h l

3.切片操作

'''
切片操作,有三個值,分別是,起始位,終止位,步長
'''
print(s1[0:5])##跟range類似,顧頭不顧尾
>>>hello
#步長
print(s1[2:9:2])
>>lowr  #間隔一位取一個值,預設步長為1
'''
切片的預設順序為從左到右取值,而當步長為負數時,取值順序將變為從右像左
'''
print(s1[-2:-7:-1])
>>>lrow 
'''
當步長不為負數,即不改變從左到右的取值順序時
從右向左無法取值
'''
print(s1[-1:-5])  #輸出值為空

成員運算

'''
成員運算,判斷個體是否在群體之中
'''
print('ll' in s1)
>>>True

統計字串中字元的個數

print(len(s1))
>>>11

移除字串首尾指定的字串

'''
變數名.strip()預設可以移除變數首尾的所有空格,也可移除指定符號
'''
name = '     mm     '
print(name)
print(name.strip())
>>>     mm     
>>>mm
#通過strip方法移除末尾的*
name = '******mm****'
print(name.strip('*'))
>>>mm

切割字串

'''
在python中,可以使用split方法,根據指定字元切割字串,字串切割後,是一個列表
'''
data = 'tom!123!hello'
print(data.split('!'))
>>>['tom', '123', 'hello']