1. 程式人生 > >python基礎之流程控制、數字和字符串處理

python基礎之流程控制、數字和字符串處理

== python基礎 you else upper python3 統計 包含 文件

流程控制

條件判斷

if單分支:當一個“條件”成立時執行相應的操作。

語法結構:

if 條件:
    command

流程圖:

技術分享

示例:如果3大於2,那麽輸出字符串"very good"

#!/usr/bin/env python
# -*- coding: utf-8 -*-
if 3 > 2:
    print("very good")

if雙分支:當“條件成立”時候執行一個操作,或者“條件不成立”執行另外一個操作操作。

語法結構:

if 條件:
    command1
else:
    command2

流程圖:

技術分享

示例:輸入一個數,如果輸入的是5,那麽輸出you are right,輸入其他數,輸出you are wrong

#!/usr/bin/env python
# -*- coding: utf-8 -*-
num=input(‘please input a number:‘)
if num == 5:
    print(‘you are right‘)
else:
    print(‘you are wrong‘)

if多分支:相當於if語句嵌套,針對多個條件執行不同操作。

語法結構:

if 條件:
    command1
elif 條件:
    command2
...         #可存在多個elif判斷
    command...
else:
    commandn

流程圖:

技術分享

示例:輸入一個數字,如果在0-9範圍內,將該數字轉成二進制輸出,如果在10到19範圍內,將該數字轉成8進制輸出,在20或者更大,那麽轉換成16進制輸出

#!/usr/bin/env python
# -*- coding: utf-8 -*-
num=int(input(‘please input a number:‘))  #input輸入為str字符串格式用int轉化成整數
if num in range(10):        #range()方法是一個範圍,for循環詳細說明
    print(bin(num))        #bin()方法,轉化為二進制
elif num in range(10,20):
    print(oct(num))        #oct()方法,轉化為八進制
else:
    print(hex(num))        #hex()方法,轉化為十六進制

循環

for循環:根據標量的不同取值,重復執行一組命令操作。

語法結構:

for 變量 in 集合:
    command

流程圖:

技術分享

示例1:依次輸出數字0到10

for i in range(11):
    print(i)

range(11)表示一個範圍,從頭到尾依次是0,1,2,3,4,5,6,7,8,9,10,共十一個數字,這個範圍顧頭不顧尾,即不包括最大的那個數

示例2:依次輸出數字5到10

for i in range(5,11):
    print(i)

range(5,11),表示開頭為5,結束為11的一個範圍,包括5但不包括11

示例3:0到10數字範圍,每隔一個數輸出一個數

for i in range(0,11,2):
    print(i)

輸出結果為:0,2,4,6,8,10,range()方法的第三個數表示步數,也就是間隔的值

補充:for+else

else內的指令只在for循環結束後執行,並且該循環沒有被break或continue打斷

for i in range(0,11,2):
    print(i)
else:
    print(‘ok‘)

輸出結果:
0
2
4
6
8
10
ok

條件循環

while條件循環:重復測試指令的條件,只要條件為真則反復執行對應的命令操作,直到條件為假。如果使用true作為循環條件能夠產生無限循環。

語法結構:

while 條件 :
    command

流程圖:

技術分享

示例:打印0到100的所有的奇數

i=1
while i <=100 :
    print(i)
    i = i + 2

補充:while+else

表示while在正常循環結束後才能執行else,即循環過程中沒有被break和continue打斷,完全循環後才能執行else的指令

示例:

i=1
while i <=5 :
    print(i)
    i = i + 2
else:
    print(‘ok‘)

輸出結果:
1
3
5
ok

數字

數字類型包括:整型和浮點型(即整數和小數),布爾值,復數

數字特性:

  1、只能存放一個值,不論這個數字有多長

  2、一經定義,不可更改,因為數字是不可變的(如果不理解,看過後邊的數組tuple後就理解了)

  3、通過變量直接訪問

整型

整型可以用十進制、二進制、八進制和十六進制表示,如十進制的10、二進制的1010、八進制的12和十六進制的a都表示是整數10

print(10)
print(bin(10))   #10的十進制轉換二進制
print(oct(10))   #10的十進制轉換八進制
print(hex(10))   #10的十進制轉換十六進制,0-9和abcdef

輸出為:
10
0b1010    #0b表示二進制
0o12      #0o表示八進制
0xa      #0x表示16進制

整型在python2裏是有長度限制的,分為整型和長整型,在python3裏沒有長度限制,所以數字再長都可以叫做整型,當然可以通過長整型方法將整型編程長整型,長整型的數字最後有一個L標識。

其他常用方法(簡略):

int()  轉化為整型

abs()  求絕對值

float()  轉換層浮點型

浮點型

即小數,如1.2,0.3等

浮點數科學計數法:

print(1.3e-3)   #1.3的10的-3次方、e3表示10的3次方

布爾值

True用1表示

False用0表示

字符串

字符串

字符串是一個有序的字符的集合,用於存儲和表示基本的文件信息

字符串特性:

  1、只能存放一個值

  2、不可變

  3、按照從左到右的順序定義字符集和,索引從0開始有序訪問

定義方法:字符串定義,四種引號都是定義字符串

a=‘xyz‘
b="xyz"
c=‘‘‘xyz‘‘‘
d="""xyz"""

字符串處理

移除空白:把字符串的前後指定的字符位置移除,中間的無法移除

s1=‘abc             ‘
s2=‘**********abc*******‘
s3=‘**********a**bc*******‘
print(s1.strip(‘ ‘))
print(s2.strip(‘*‘))
print(s3.strip(‘*‘))
輸出結果:
abc
abc
a**bc

分割:指定字符為分隔符,將字符串轉換成list

s1=‘abc|def|ghi‘
print(s1.split(‘|‘))
輸出結果:
[‘abc‘, ‘def‘, ‘ghi‘]

長度:統計字符串長度,包括空格和符號

s1=‘abc             ‘
s2=‘**********abc*******‘
s3=‘**********a**bc*******‘
print(len(s1))
print(len(s2))
print(len(s3))
輸出結果:
16
20
22

索引:表示字符的位置,從0開始計數

s1=‘abc             ‘
s2=‘**********abc*******‘
s3=‘**********a**bc*******‘
print(s1[2])  #0位置為a,1位置為b,2位置為c
print(s2[11]) print(s3[-8])  #-8位置為從後開始數第8個字符,從後計數的第一個字符位置為-1位置 輸出結果: c b c

切片:根據索引位置匹配需要的字符串片段

s1=‘abcdefghi‘
print(s1[2:5])  #2,3,4位置
print(s1[2:8:2])  #匹配2,4,6位置,第二個2表示步數,每隔一個匹配一個
print(s1[-5:-3])  #倒序-5,-4位置
輸出結果:
cde
ceg
ef

其他常用方法:

首字母大寫

s1=‘abc def abc‘
print(s1.capitalize())
輸出結果:
Abc def abc

統計某個字符的數量,空格也算字符

s1=‘abc def abc‘
print(s1.count(‘a‘))
print(s1.count(‘a‘,0,4))     #表示0-4位置,不包括4位置
輸出結果:
2  #整個字符串有兩個a
1  #0,1,2,3位置有一個a

檢驗開頭和結尾字符串

s1=‘abc def abc‘
print(s1.endswith(‘c‘))
print(s1.startswith(‘a‘))
輸出結果:
True
True

查找字符串內是否包含該字符

s1=‘abc def abc‘
print(s1.find(‘b‘))
print(s1.find(‘d‘))
輸出結果:
1    #輸出的是匹配的第一個字符的索引位置
4

格式化字符串

msg1=‘Name:{},age:{},sex:{}‘
print(msg1)
print(msg1.format(‘egon‘,18,‘male‘))
msg2=‘Name:{0},age:{1},sex:{0}‘
print(msg2.format(‘aaaaaaaaaaaaaaaaa‘,‘bbbbbbbbbbbbbb‘))
msg3=‘Name:{x},age:{y},sex:{z}‘
print(msg3.format(y=18,x=‘egon‘,z=‘male‘))
輸出結果:
Name:{},age:{},sex:{}
Name:egon,age:18,sex:male
Name:aaaaaaaaaaaaaaaaa,age:bbbbbbbbbbbbbb,sex:aaaaaaaaaaaaaaaaa
Name:egon,age:18,sex:male

索引(查看索引位置)

s1=‘abc def abc‘
print(s1.index(‘a‘))  #匹配第一個a的索引位置
print(s1[s1.index(‘e‘)])  #調用用索引位置

校驗字符串是否為純數字

s1=‘123‘
print(s1.isdigit())
輸出結果:
True

替換

msg=‘hello alex‘  #賦值時候實際上是msg=str(‘hello alex‘),replace()方法是str所賦予的,即str.replace()
print(msg.replace(‘x‘,‘X‘))
print(msg.replace(‘alex‘,‘bob‘))
print(msg.replace(‘l‘,‘A‘))
print(msg.replace(‘l‘,‘A‘,1))
print(msg.replace(‘l‘,‘A‘,2))    #第二個數字為替換的次數
輸出結果:
hello aleX
hello bob
heAAo aAex
heAlo alex
heAAo alex

大寫轉換

x=‘hello‘
print(x.upper())
輸出結果:
HELLO

檢驗是否是全大寫

x=‘HELLO‘
print(x.isupper())
輸出結果:
True

小寫轉換和檢驗

x=‘HELLO‘
print(x.lower())
print(x.islower())
輸出結果:
hello
False

校驗是不是空格

x=‘     ‘        #空格不等於空
print(x.isspace())
輸出結果:
True 

開頭大寫

x=‘hello‘
print(x.title())
輸出結果:
Hello

校驗開頭是否為大寫

msg=‘Hello‘
print(msg.istitle())
輸出結果:
True

左對齊和右對齊:數字表示對齊後的長度,後邊的星號為長度不夠用星號補齊

x=‘abc‘
print(x.ljust(10,‘*‘))
print(x.rjust(10,‘*‘))
輸出結果:
abc*******
*******abc

大小寫交換

x=‘Ab‘
print(x.swapcase())
輸出結果:
aB

python基礎之流程控制、數字和字符串處理