本教程的知識(shí)點(diǎn)為:計(jì)算機(jī)組成 計(jì)算機(jī)是由什么組成的化撕? 1. 硬件系統(tǒng): 2. 軟件系統(tǒng): 目標(biāo) 運(yùn)算符的分類 1. 算數(shù)運(yùn)算符 2. 賦值運(yùn)算符 3. 復(fù)合賦值運(yùn)算符 判斷語句和循環(huán)語句 if嵌套 1. if嵌套的格式 2. if嵌套的應(yīng)用 if嵌套執(zhí)行流程 容器:字符串、列表挺身、元組侯谁、字典 字符串介紹 一. 認(rèn)識(shí)字符串 1.1 字符串特征 字符串輸出 容器:字符串、列表章钾、元組墙贱、字典 列表的相關(guān)操作 1添加元素("增"append, extend, insert)1 append extend 容器:字符串、列表贱傀、元組惨撇、字典 字典的常見操作1 1查看元素1 2修改元素2 3添加元素3 函數(shù)介紹 1什么是函數(shù)1 小總結(jié): 函數(shù)定義和調(diào)用 1定義函數(shù)1 多函數(shù)程序的基本使用流程 1. 使用全局變量 2. 使用函數(shù)的返回值、參數(shù) 3. 函數(shù)嵌套調(diào)用 函數(shù)返回值(二) 函數(shù)應(yīng)用:學(xué)生管理系統(tǒng) 遞歸函數(shù) 1什么是遞歸函數(shù)1 2遞歸函數(shù)的作用2 看階乘的規(guī)律 文件操作介紹 1什么是文件1 2文件的作用2 文件的打開與關(guān)閉 1打開文件1 面向?qū)ο缶幊探榻B 面向?qū)ο?1. 概述 2. 生活舉例 類和對(duì)象 init()方法 說明: 問題: 有參數(shù)的init()方法 說明: 繼承介紹以及單繼承 1. 現(xiàn)實(shí)中的繼承 2. 程序中的繼承 單繼承:子類只繼承一個(gè)父類 說明: super()的使用 問題: 知識(shí)點(diǎn): 私有權(quán)限 面向?qū)ο笕筇匦裕悍庋b府寒、繼承魁衙、多態(tài) 靜態(tài)方法和類方法 1. 類方法 2. 靜態(tài)方法 總結(jié) 異常 模塊 1Python中的模塊1 2import2 3from…import3 注意
完整筆記資料代碼->:https://gitee.com/yinuo112/Backend/tree/master/Python/嘿馬python基礎(chǔ)入門全體系教程/note.md
感興趣的小伙伴可以自取哦~
全套教程部分目錄:
部分文件圖片:
容器:字符串报腔、列表、元組剖淀、字典
學(xué)習(xí)目標(biāo):
- 能夠說出容器類型有什么用
- 能夠說出常用 Python 容器的名字
- 能夠說出切片語法的用途
- 能夠說出容器中的索引指的是什么
- 能夠說出如何定義一個(gè)字符串
- 能夠說出字符串容器的特性
- 能夠說出至少5個(gè)字符串方法名字和作用
- 能夠使用切片語法獲得指定索引區(qū)間的子串
- 能夠說出如何使用 while 和 for 循環(huán)來遍歷字符串
- 能夠說出如何定義一個(gè)列表
- 能夠說出列表容器和字符串容器的區(qū)別
- 能夠說出至少5個(gè)列表方法名字和作用
- 能夠使用切片語法獲得列表指定索引區(qū)間的元素
- 能夠說出如何使用 while 和 for 循環(huán)來遍歷列表中的元素
- 能夠說出如何定義一個(gè)列表
- 能夠說出元組和列表的區(qū)別
- 能夠說出如何使用 while 和 for 循環(huán)來遍歷元組中的元素
- 能夠說出元組支持哪些操作
- 能夠說出如何定義一個(gè)字典
- 能夠說出字典和列表的區(qū)別
- 能夠說出如何使用 for 循環(huán)來遍歷列表中的鍵纯蛾、值和鍵值對(duì)
- 能夠說出字典鍵和值的特點(diǎn)
字符串介紹
一. 認(rèn)識(shí)字符串
字符串是 Python 中最常用的數(shù)據(jù)類型。我們一般使用引號(hào)來創(chuàng)建字符串纵隔。創(chuàng)建字符串很簡單翻诉,只要為變量分配一個(gè)值即可。
a = 'hello world'
b = "abcdefg"
print(type(a))
print(type(b))
注意:控制臺(tái)顯示結(jié)果為<class 'str'>
捌刮, 即數(shù)據(jù)類型為str(字符串)碰煌。
1.1 字符串特征
- 一對(duì)引號(hào)字符串
name1 = 'Tom'
name2 = "Rose"
- 三引號(hào)字符串
name3 = ''' Tom '''
name4 = """ Rose """
a = ''' i am Tom,
nice to meet you! '''
b = """ i am Rose,
nice to meet you! """
注意:三引號(hào)形式的字符串支持換行。
思考:如果創(chuàng)建一個(gè)字符串I'm Tom
?
c = "I'm Tom"
d = 'I\'m Tom'
小總結(jié):
- 雙引號(hào)或者單引號(hào)中的數(shù)據(jù)绅作,就是字符串
字符串輸出
1.格式化操作符
name = '君哥'
position = '講師'
address = '北京市'
print('--------------------------------------------------')
print("姓名:%s" % name)
print("職位:%s" % position)
print("公司地址:%s" % address)
print('--------------------------------------------------')
結(jié)果:
--------------------------------------------------
姓名: 君哥
職位: 講師
公司地址: 北京市
--------------------------------------------------
2.f-strings
f-strings 提供一種簡潔易讀的方式, 可以在字符串中包含 Python 表達(dá)式. f-strings 以字母 'f' 或 'F' 為前綴, 格式化字符串使用一對(duì)單引號(hào)芦圾、雙引號(hào)、三單引號(hào)俄认、三雙引號(hào). 格式化字符串中
name = '君哥'
age = 33
format_string1 = f'我的名字是 {name}, 我的年齡是 {age}'
format_string2 = f"我的名字是 {name}, 我的年齡是 {age}"
format_string3 = F'''我的名字是 {name}, 我的年齡是 {age}'''
format_string4 = F"""我的名字是 {name}, 我的年齡是 {age}"""
format_string5 = f'3 + 5 = {3 + 5}'
a = 10
b = 20
format_string6 = f'3 + 5 = {a + b}'
# 兩個(gè)花括號(hào)會(huì)被替換為一個(gè)花括號(hào), 注意{{}} 不表示表達(dá)式
format_string7 = F'我的名字是 {{name}}, 我的年齡是 {{age}}'
print(format_string1)
print(format_string2)
print(format_string3)
print(format_string4)
print(format_string5)
print(format_string6)
print(format_string7)
字符串輸入
之前在學(xué)習(xí)input的時(shí)候个少,通過它能夠完成從鍵盤獲取數(shù)據(jù),然后保存到指定的變量中梭依;
注意:input獲取的數(shù)據(jù)稍算,都以字符串的方式進(jìn)行保存,即使輸入的是數(shù)字役拴,那么也是以字符串方式保存
demo:
userName = input('請(qǐng)輸入用戶名:')
print("用戶名為:%s" % userName)
password = input('請(qǐng)輸入密碼:')
print("密碼為:%s" % password)
結(jié)果:(根據(jù)輸入的不同結(jié)果也不同)
請(qǐng)輸入用戶名:itheima
用戶名為: itheima
請(qǐng)輸入密碼:haohaoxuexitiantianxiangshang
密碼為: haohaoxuexitiantianxiangshang
下標(biāo)和切片
1. 下標(biāo)索引
所謂“下標(biāo)”
糊探,就是編號(hào),就好比超市中的存儲(chǔ)柜的編號(hào)河闰,通過這個(gè)編號(hào)就能找到相應(yīng)的存儲(chǔ)空間
- 生活中的 "下標(biāo)"
超市儲(chǔ)物柜
高鐵二等座
高鐵一等座
綠皮車
- 字符串中"下標(biāo)"的使用
列表與元組支持下標(biāo)索引好理解科平,字符串實(shí)際上就是字符的數(shù)組,所以也支持下標(biāo)索引姜性。
如果有字符串:name = 'abcdef'
瞪慧,在內(nèi)存中的實(shí)際存儲(chǔ)如下:
如果想取出部分字符,那么可以通過下標(biāo)
的方法,(注意python中下標(biāo)從 0 開始)
name = 'abcdef'
print(name[0])
print(name[1])
print(name[2])
運(yùn)行結(jié)果:
a
b
c
2. 切片
切片是指對(duì)操作的對(duì)象截取其中一部分的操作。字符串荸哟、列表、元組都支持切片操作妓湘。
切片的語法:[起始:結(jié)束:步長]
注意:選取的區(qū)間從"起始"位開始,到"結(jié)束"位的前一位結(jié)束(不包含結(jié)束位本身)乌询,步長表示選取間隔榜贴。
我們以字符串為例講解。
如果取出一部分妹田,則可以在中括號(hào)[]中唬党,使用:
name = 'abcdef'
print(name[0:3]) # 取 下標(biāo)0~2 的字符
運(yùn)行結(jié)果:
name = 'abcdef'
print(name[0:5]) # 取 下標(biāo)為0~4 的字符
運(yùn)行結(jié)果: name = 'abcdef'
print(name[3:5]) # 取 下標(biāo)為3鹃共、4 的字符
運(yùn)行結(jié)果: name = 'abcdef'
print(name[2:]) # 取 下標(biāo)為2開始到最后的字符
運(yùn)行結(jié)果: name = 'abcdef'
print(name[1:-1]) # 取 下標(biāo)為1開始 到 最后第2個(gè) 之間的字符
運(yùn)行結(jié)果: >>> a = "abcdef"
>>> a[:3]
'abc'
>>> a[::2]
'ace'
>>> a[5:1:2]
''
>>> a[1:5:2]
'bd'
>>> a[::-2]
'fdb'
>>> a[5:1:-2]
'fd'
想一想
- (面試題)給定一個(gè)字符串a(chǎn)Str, 請(qǐng)反轉(zhuǎn)字符串
# 索引是通過下標(biāo)取某一個(gè)元素
# 切片是通過下標(biāo)去某一段元素
s = 'Hello World!'
print(s[4])
print(s)
print(s[:]) # 取出所有元素(沒有起始位和結(jié)束位之分),默認(rèn)步長為1
print(s[1:]) # 從下標(biāo)為1開始驶拱,取出 后面所有的元素(沒有結(jié)束位)
print(s[:5]) # 從起始位置開始霜浴,取到 下標(biāo)為5的前一個(gè)元素(不包括結(jié)束位本身)
print(s[:-1]) # 從起始位置開始,取到 倒數(shù)第一個(gè)元素(不包括結(jié)束位本身)
print(s[-4:-1]) # 從倒數(shù)第4個(gè)元素開始蓝纲,取到 倒數(shù)第1個(gè)元素(不包括結(jié)束位本身)
print(s[1:5:2]) # 從下標(biāo)為1開始坷随,取到下標(biāo)為5的前一個(gè)元素,步長為2(不包括結(jié)束位本身)
# python 字符串快速逆置
print(s[::-1]) # 從后向前驻龟,按步長為1進(jìn)行取值
字符串常見操作
如有字符串mystr = 'hello world itcast and itcastcpp'
,以下是常見的操作
<1>find1>
檢測 str 是否包含在 mystr中缸匪,如果是返回開始的索引值翁狐,否則返回-1
- 語法
字符串序列.find(子串, 開始位置下標(biāo), 結(jié)束位置下標(biāo))
- 示例
mystr.find(str, start=0, end=len(mystr))
<2>index2>
跟find()方法一樣,只不過如果str不在 mystr中會(huì)報(bào)一個(gè)異常.
- 語法
字符串序列.index(子串, 開始位置下標(biāo), 結(jié)束位置下標(biāo))
- 示例
mystr.index(str, start=0, end=len(mystr))
<3>count3>
返回 str在start和end之間 在 mystr里面出現(xiàn)的次數(shù)
- 語法
字符串序列.count(子串, 開始位置下標(biāo), 結(jié)束位置下標(biāo))
- 示例
mystr.count(str, start=0, end=len(mystr))
<4>replace4>
把 mystr 中的 str1 替換成 str2,如果 count 指定凌蔬,則替換不超過 count 次.
- 語法
字符串序列.replace(舊子串, 新子串, 替換次數(shù))
- 示例
mystr.replace(str1, str2, mystr.count(str1))
<5>split5>
以 str 為分隔符切片 mystr露懒,如果 maxsplit有指定值,則僅分隔 maxsplit 個(gè)子字符串
- 語法
字符串序列.split(分割字符, num)
- 示例
mystr.split(str=" ", 2)
<6>capitalize6>
把字符串的第一個(gè)字符大寫
mystr.capitalize()
<7>title7>
把字符串的每個(gè)單詞首字母大寫
>>> a = "hello itcast"
>>> a.title()
'Hello Itcast'
<8>startswith8>
檢查字符串是否是以 hello 開頭, 是則返回 True砂心,否則返回 False
- 語法
字符串序列.startswith(子串, 開始位置下標(biāo), 結(jié)束位置下標(biāo))
2.示例
mystr.startswith(hello)
<9>endswith9>
檢查字符串是否以obj結(jié)束懈词,如果是返回True,否則返回 False.
mystr.endswith(obj)
<10>lower10>
轉(zhuǎn)換 mystr 中所有大寫字符為小寫
mystr.lower()
<11>upper11>
轉(zhuǎn)換 mystr 中的小寫字母為大寫
mystr.upper()
<12>ljust12>
返回一個(gè)原字符串左對(duì)齊,并使用空格填充至長度 width 的新字符串
mystr.ljust(width)
<13>rjust13>
返回一個(gè)原字符串右對(duì)齊,并使用空格填充至長度 width 的新字符串
mystr.rjust(width)
<14>center14>
返回一個(gè)原字符串居中,并使用空格填充至長度 width 的新字符串
mystr.center(width)
<15>lstrip15>
刪除 mystr 左邊的空白字符
mystr.lstrip()
<16>rstrip16>
刪除 mystr 字符串末尾的空白字符
mystr.rstrip()
<17>strip17>
刪除mystr字符串兩端的空白字符
>>> a = "\n\t itcast \t\n"
>>> a.strip()
'itcast'
<18>rfind18>
類似于 find()函數(shù),不過是從右邊開始查找.
mystr.rfind(str, start=0,end=len(mystr) )
<19>rindex19>
類似于 index()辩诞,不過是從右邊開始.
mystr.rindex( str, start=0,end=len(mystr))
<20>partition20>
把mystr以str分割成三部分,str前坎弯,str和str后
mystr.partition(str)
<21>rpartition21>
類似于 partition()函數(shù),不過是從右邊開始.
mystr.rpartition(str)
<22>splitlines22>
按照行分隔,返回一個(gè)包含各行作為元素的列表
mystr.splitlines()
<23>isalpha23>
如果 mystr 所有字符都是字母 則返回 True,否則返回 False
mystr.isalpha()
<24>isdigit24>
如果 mystr 只包含數(shù)字則返回 True 否則返回 False.
mystr.isdigit()
<25>isalnum25>
如果 mystr 所有字符都是字母或數(shù)字則返回 True,否則返回 False
mystr.isalnum()
<26>isspace26>
如果 mystr 中只包含空格译暂,則返回 True抠忘,否則返回 False.
mystr.isspace()
<27>join27>
mystr 中每個(gè)元素后面插入str,構(gòu)造出一個(gè)新的字符串
- 語法
字符或子串.join(多字符串組成的序列)
- 示例
mystr.join(str)
想一想
- (面試題)給定一個(gè)字符串a(chǎn)Str,返回使用空格或者'\t'分割后的倒數(shù)第二個(gè)子串
列表介紹
想一想:
前面學(xué)習(xí)的字符串可以用來存儲(chǔ)一串信息外永,那么想一想崎脉,怎樣存儲(chǔ)咱們班所有同學(xué)的名字呢?
定義100個(gè)變量伯顶,每個(gè)變量存放一個(gè)學(xué)生的姓名可行嗎囚灼?有更好的辦法嗎?
答:
列表
<1>列表的格式1>
變量A的類型為列表
namesList = ['xiaoWang','xiaoZhang','xiaoHua']
比C語言的數(shù)組強(qiáng)大的地方在于列表中的元素可以是不同類型的
testList = [1, 'a']
<2>打印列表2>
demo:
namesList = ['xiaoWang','xiaoZhang','xiaoHua']
print(namesList[0])
print(namesList[1])
print(namesList[2])
結(jié)果:
xiaoWang
xiaoZhang
xiaoHua