第五天:python字符串和列表

一、簡單函數的使用

1.定義函數格式如下:

   # 定義一個函數
   def test():
       print '----哈哈----'
       print '----這是我的第一個函數----'

   # 調用函數
   test()

2.時間函數

開發中,經常需要打印一些調試的信息,此時就又必須要輸出時間,這就需要一些時間函數

例1:

   import time  # 引入time模塊

   currentTime = time.time()   
   print "當前時間戳爲:", currentTime

運行結果:

   當前時間戳爲: 1465527332.44

例2:

   import time

   localtime = time.localtime(time.time())   
   print "本地時間爲 :", localtime

運行結果:

 本地時間爲 : time.struct_time(tm_year=2016, tm_mon=6, tm_mday=10, tm_hour=10, tm_ min=57, tm_sec=14, tm_wday=4, tm_yday=162, tm_isdst=0)

例3:

   import time

   localtime = time.asctime( time.localtime(time.time()) )   
   print "本地時間爲 :", localtime

運行結果:

   本地時間爲 : Fri Jun 10 10:58:53 2016

3.日曆函數

   import calendar

   cal = calendar.month(2016, 8)   
   print "2016年8月份的日曆:"
   print cal;

運行結果:

wKioL1nV01yTz9HDAAByE-Zh0p4915.png

4.隨機數函數

   import random

   a = random.uniform(1, 5)   
   print "a =",a

   b = random.randint(10, 50)   
   print "b =",b

   c = random.randrange(0, 51, 2)   
   print "c =",c

運行結果:

wKiom1nV1B_hwVlZAAHLJ2_0avM199.png

二、字符串介紹

<1>python中字符串的格式

如下定義的變量a,存儲的是數字類型的值

    a = 100

如下定義的變量b,存儲的是字符串類型的值

    b = "hello itcast.cn"
    或者
    b = 'hello itcast.cn'

小總結:

    雙引號或者單引號中的數據,就是字符串

<2>字符串的輸出

demo:

    name = 'xiaoming'
    position = '講師'
    address = '北京市昌平區建材城西路金燕龍辦公樓1層'

    print('--------------------------------------------------')
    print("姓名:%s"%name)
    print("職位:%s"%position)
    print("公司地址:%s"%address)
    print('--------------------------------------------------')

結果:

    --------------------------------------------------
    姓名: xiaoming
    職位: 講師
    公司地址: 北京市昌平區建材城西路金燕龍辦公樓1層
    --------------------------------------------------

<3>字符串的輸入

demo:

    userName = raw_input('請輸入用戶名:')
    print("用戶名爲:%s"%userName)

    password = raw_input('請輸入密碼:')
    print("密碼爲:%s"%password)

結果:(根據輸入的不同結果也不同)

    請輸入用戶名:dongGe
    用戶名爲: dongGe
    請輸入密碼:haohaoxuexitiantianxiangshang
    密碼爲: haohaoxuexitiantianxiangshang

wKiom1nV1W-SkPK2AABf6PGImZk427.gif


<4>字符串的索引(下標)

字符串中“下標”的使用

如果有字符串:name='abcdef',在內存中實際存儲如下:

wKiom1nV2DzDm56PAABq_2iPjd8577.png

如果想取出部分字符,那麼可以通過下標的方法,(注意python中下標從0開始)

   name = 'abcdef'

   print(name[0])
   print(name[1])
   print(name[2])

運行結果:

wKioL1nV2F-gMzkBAACrMLMjnx8514.png

如果取出一部分,則可以在中括號[]中,使用:

   name = 'abcdef'

   print(name[0:3]) # 取 下標0~2 的字符

運行結果:

wKiom1nV2P-B6ADjAACt51KOuTQ133.png



   name = 'abcdef'

   print(name[3:5]) # 取 下標爲3、4 的字符

運行結果:

wKioL1nV2O_gLPngAACqx2lw77Y884.png



   name = 'abcdef'

   print(name[2:]) # 取 下標爲2開始到最後的字符

運行結果:

wKiom1nV2WnhcrORAACzX3Exyxk588.png




   name = 'abcdef'

   print(name[1:-1]) # 取 下標爲1開始 到 最後第2個  之間的字符

運行結果:

wKiom1nV2Zrw7VlpAADBIXDi72Q246.png


<5>字符串格式化操作

1.什麼是格式化

看如下代碼:

    age = 10
    print("我今年%d歲"%age)

    age += 1
    print("我今年%d歲"%age)

    age += 1
    print("我今年%d歲"%age)

    ...

在程序中,看到了%這樣的操作符,這就是python中格式化時用的運算符

修改以上的程序,如下:

    age = 10
    while i<=13:
        print("我今年%d歲"%age)
        age += 1

2.常用的格式符號

格式符號轉換
%c字符
%s通過str() 字符串轉換來格式化
%i有符號十進制整數
%d有符號十進制整數
%u無符號十進制整數
%o八進制整數
%x十六進制整數(小寫字母)
%X十六進制整數(大寫字母)
%e索引符號(小寫'e')
%E索引符號(大寫“E”)
%f浮點實數
%g%f和%e 的簡寫
%G%f和%E的簡寫

<6>字符串常見操作

如有字符串mystr='hello world itcast and itcastcpp',以下是常見的操作

1.find

檢測str是否包含在mystr中,如果是返回開始的索引值,否則返回-1

mystr.find(str, start=0, end=len(mystr))

wKiom1nV257DtfWlAABDz0Y0jlc152.png

wKioL1nV21PzUmUSAABGyJ6qnVw842.png

2.index

跟find()方法一樣,只不過如果str不在mystr中會報一個異常

mystr.index(str, start=0, end=len(mystr))

wKioL1nV28GR8M_yAAC1-62Eg10748.png


3.count

返回str在start和end之間,在mystr裏面出現的次數

mystr.count(str, start=0, end=len(mystr))

wKiom1nV3GTimDuoAABENLzhE1Y545.png

4.replace

把mystr中的str1替換成str2,如果count指定,則替換不超過count次

mystr.replace(str1, str2,  mystr.count(str1))

wKioL1nV3hjD2ErQAABjnuVnJ4A890.png

5.split

以str爲分割符切片mystr,如果maxsplit有指定值,則僅分割maxsplit個子字符串

mystr.split(str=" ", 2)

wKiom1nV3t2TERGgAABo2V5RB70867.png

6.capitalize

把字符串的第一個字符大寫

mystr.capitalize()

wKiom1nV3ynDn9e8AABZM-6hBqg209.png


7.startswith

檢查字符串是否是以obj開頭,是則返回True,否則返回False

mystr.startswith(obj)

wKiom1nV34qQ4_wUAABuAQU-inI489.png


8.endswith

檢查字符串是否以obj結束,如果是返回True,否則返回False

mystr.endswith(obj)

wKioL1nV36_TtWSYAABsyfKrf6k479.png

9.lower

轉換mystr中所有大寫字符爲小寫

mystr.lower()

wKioL1nV3-jznUTHAABaArEehmA721.png

10.upper

轉換mystr中小寫字母爲大寫

mystr.upper()

wKiom1nV4GuQ4M1tAABTLYItgl0775.png


11.ljust

返回一個原字符串左對齊,並使用空格填充至長度width的新字符串

mystr.ljust(width)

wKiom1nV4RHRK5uZAAA3ebXW-OU587.png

12.rjust

返回一個原字符串右對齊,並使用空格填充至長度width的新字符串

mystr.rjust(width)

wKiom1nV4VXgYmLQAAA399A2mVw144.png

13.center

返回一個原字符串居中,並使用空格填充至長度width的新字符串

mystr.center(width)

wKiom1nV4aiTLZAYAABd-ZC2kGk430.png

14.lstrip

刪除mystr左邊的空格

mystr.lstrip()

wKioL1nV4dTQehTyAABqQ3d8_QI764.png

15.rstrip

刪除mystr字符串末尾的空格

mystr.rstrip()

wKiom1nV4lGBm1x0AAA41V4WdLw789.png


16.rfind

類似於find函數,不過是從右邊開始查找

mystr.rfind(str, start=0,end=len(mystr) )

wKioL1nV4jqzA9XfAABE3W2vUr0942.png

17.rindex

類似於index(),不過是從右邊開始

mystr.rindex( str, start=0,end=len(mystr))

wKiom1nV4uzzXIanAACKAyKwwB0478.png

18.partition

把mystr以str分割成三部分,str前,str和str後

mystr.partition(str)

wKioL1nV4v6yjMhAAABe-uDYbVo986.png

19.rpartition

類似於partition()函數,不過是從右邊開始

mystr.rpartition(str)

wKiom1nV48GQxpd3AACYo3ixzZ0663.png

20.splitlines

按照行分隔,返回一個包含各行作爲元素的列表

mystr.splitlines()

wKiom1nV5CLQqU2oAABhlJU9neI987.png

21.isalnum

如果mystr所有字符都是字母或數字則返回True,否則返回False

mystr.isalnum()

wKiom1nV5HbDvfL-AAC29z08dpg341.png

22.isalpha

如果mystr所有字符都是字母,則返回True,否則返回False

mystr.isalpha()

wKiom1nV5LzAlA4IAACNF6DkxKo882.png

23.isdigit

如果mystr只包含數字則返回True,否則返回False

mystr.isdigit()

wKiom1nV5QLDxOdhAACNATR77DA400.png

24.isspace

如果mystr中只包含空格,則返回True否則返回False

mystr.isspace()

wKiom1nV5TjzJT6EAACuW47rga8480.png

25.isupper

如果mystr所有字符都是大寫,則返回True,否則返回False

mystr.isupper()

wKiom1nV5XfAcrJZAABd6V-YE6o292.png

26.join

mystr中每個字符後面插入str,構造出一個新的字符串

mystr.join(str)

wKioL1nV5W2DOEqyAACCGlds_Qs449.png


三、列表介紹

<1>列表的格式

變量A的類型爲列表

    A = ['xiaoWang','xiaoZhang','xiaoHua']

<2>打印列表

demo:

    A = ['xiaoWang','xiaoZhang','xiaoHua']
    print A[0]
    print A[1]
    print A[2]

結果:

    xiaoWang
    xiaoZhang
    xiaoHua

<3>列表的循環遍歷

for循環

demo:

    A = ['xiaoWang','xiaoZhang','xiaoHua']
    for tempName in A:
        print tempName

結果:

    xiaoWang
    xiaoZhang
    xiaoHua

<4>列表的相關操作

列表中存放的數據是可以進行修改的,比如“增”、“刪”、“改”

1.添加元素("增"append)

通過append可以向列表添加元素

demo:

    #定義變量A,默認有3個元素
    A = ['xiaoWang','xiaoZhang','xiaoHua'] 
       
    print "-----添加之前,列表A的數據-----"
    for tempName in A:        
        print tempName    
    
    #提示、並添加元素
    temp = raw_input('請輸入要添加的學生姓名:')
    A.append(temp)    
    
    print "-----添加之後,列表A的數據-----"
    for tempName in A:        
        print tempName

wKiom1nV6OnQ2vbqAAAwy1AYFzA042.gif

2.修改元素(“改”)

修改元素的時候,要通過下標來確定要修改的是哪個元素,然後才能進行修改

demo:

    #定義變量A,默認有3個元素
    A = ['xiaoWang','xiaoZhang','xiaoHua']    
    
    print "-----修改之前,列表A的數據-----"
    for tempName in A:        
        print tempName    
        
    #修改元素
    A[1] = 'xiaoLu'

    print "-----修改之後,列表A的數據-----"
    for tempName in A:        
        print tempName

結果:

    -----修改之前,列表A的數據-----
    xiaoWang
    xiaoZhang
    xiaoHua
    -----修改之後,列表A的數據-----
    xiaoWang
    xiaoLu
    xiaoHua

3.查找元素("查"in、not in)

所謂查找,就是看看指定的元素是否存在

python中查找的常用方法爲:

    in(存在),如果存在,那麼結果爲true,否則爲false

    not in(不存在),如果不存在,那麼結果爲true,否則爲false

demo:

    #待查找的列表
    nameList = ['xiaoWang','xiaoZhang','xiaoHua']    
    
    #獲取用戶要查找的名字
    findName = raw_input('請輸入要查找的姓名:')    
    
    #查找是否存在
    if findName in nameList:        
        print '在字典中找到了相同的名字'
    else:        
        print '沒有找到'

結果1:(找到)

wKioL1nV6ijADBNZAAAl3Vr0lMA033.gif結果2:(沒有找到)

wKioL1nV6kLS6EtMAAAnVquUVZI923.gif說明:

    in的方法只要會用了,那麼not in也是同樣的用法,只不過not in判斷的是不存在


4.刪除元素(“刪”del、pop、remove)

列表元素的常用刪除方法有:

    del:根據下標進行刪除

    pop:刪除最後一個元素

    remove:根據元素的值進行刪除

demo:(del)

    movieName = ['加勒比海盜','駭客帝國','第一滴血','指環王','霍比特人','速度與激情']    
    
    print '------刪除之前------'
    for tempName in movieName:        
        print tempName    
        
    del movieName[2]    
    
    print '------刪除之後------'
    for tempName in movieName:        
        print tempName

結果:

    ------刪除之前------
    加勒比海盜
    駭客帝國
    第一滴血
    指環王
    霍比特人
    速度與激情
    ------刪除之後------
    加勒比海盜
    駭客帝國
    指環王
    霍比特人
    速度與激情

demo:(pop)

    movieName = ['加勒比海盜','駭客帝國','第一滴血','指環王','霍比特人','速度與激情']    
    
    print '------刪除之前------'
    for tempName in movieName:        
        print tempName

    movieName.pop()    
    
    print '------刪除之後------'
    for tempName in movieName:        
        print tempName

結果:

    ------刪除之前------
    加勒比海盜
    駭客帝國
    第一滴血
    指環王
    霍比特人
    速度與激情
    ------刪除之後------
    加勒比海盜
    駭客帝國
    第一滴血
    指環王
    霍比特人

demo:(remove)

    movieName = ['加勒比海盜','駭客帝國','第一滴血','指環王','霍比特人','速度與激情']    
    
    print '------刪除之前------'
    for tempName in movieName:        
        print tempName

    movieName.remove('指環王')    
    
    print '------刪除之後------'
    for tempName in movieName:        
        print tempName

結果:

    ------刪除之前------
    加勒比海盜
    駭客帝國
    第一滴血
    指環王
    霍比特人
    速度與激情
    ------刪除之後------
    加勒比海盜
    駭客帝國
    第一滴血
    霍比特人
    速度與激情




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章