Python基础day03 作业解析【5道 字符串题、3道 列表题、2道 元组题】
- 視頻、源碼、課件、軟件、筆記:超全面Python基礎(chǔ)入門教程【十天課程】博客筆記匯總表【黑馬程序員】
- Python基礎(chǔ)day03【字符串(定義、輸入輸出、常用方法)、列表(定義、基本使用、增刪改查、嵌套)、元組】
目錄
1、字符串
題目1 [加強(qiáng)訓(xùn)練]
題干
訓(xùn)練目標(biāo)
訓(xùn)練提示
參考方案
操作步驟
參考答案
題目2 [加強(qiáng)訓(xùn)練]
題干
訓(xùn)練目標(biāo)
訓(xùn)練提示
參考方案
操作步驟
參考答案
題目3 [加強(qiáng)訓(xùn)練]
題干
訓(xùn)練目標(biāo)
訓(xùn)練提示
參考方案
操作步驟
參考答案
題目4 [加強(qiáng)訓(xùn)練]
題干
訓(xùn)練目標(biāo)
訓(xùn)練提示
參考方案
操作步驟
參考答案
題目5 [加強(qiáng)訓(xùn)練]
題干
訓(xùn)練目標(biāo)
訓(xùn)練提示
參考方案
操作步驟
參考答案
2、列表
題目1 [加強(qiáng)訓(xùn)練]
題干
訓(xùn)練目標(biāo)
訓(xùn)練提示
參考方案
操作步驟
參考答案
題目2 [加強(qiáng)訓(xùn)練]
題干
訓(xùn)練目標(biāo)
訓(xùn)練提示
參考方案
操作步驟
參考答案
題目3 [加強(qiáng)訓(xùn)練]
題干
訓(xùn)練目標(biāo)
訓(xùn)練提示
參考方案
操作步驟
參考答案
3、元組 tuple
題目1 [加強(qiáng)訓(xùn)練]
題干
訓(xùn)練目標(biāo)
訓(xùn)練提示
參考方案
操作步驟
參考答案
題目2 [加強(qiáng)訓(xùn)練]
題干
訓(xùn)練目標(biāo)
訓(xùn)練提示
參考方案
操作步驟
參考答案
1、字符串
題目1 [加強(qiáng)訓(xùn)練]
題干
如果需要使用變量保存以下字符串,我們?cè)撊绾螘鴮懘a。
魯迅說:"我沒有說過這句話"。
訓(xùn)練目標(biāo)
讓學(xué)員知道含有字符串嵌套的方式。
訓(xùn)練提示
在python中,有兩種表現(xiàn)形式都可以定義為字符串類型,是哪兩種方式,是否可以混合使用呢?
參考方案
使用 " " 和 ' ' 都可以對(duì)字符串進(jìn)行定義。
操作步驟
想要在在一個(gè)字符串中包含雙引號(hào)"", 字符串可以使用單引號(hào)定義
想要在在一個(gè)字符串中包含單引號(hào)'', 字符串可以使用雙引號(hào)定義
參考答案
# 在python中,''可以嵌套在""中,用以表示字符串中的字符串 words = "魯迅說:'我沒有說過這句話'" print(words)# 還可以使用三引號(hào) words = """魯迅說:'我沒有說過這句話'""" print(words)題目2 [加強(qiáng)訓(xùn)練]
題干
做一個(gè)簡單的用戶信息管理系統(tǒng):
提示用戶依次輸入姓名,年齡和愛好。并且在輸入完成之后,一次性將用戶輸入的數(shù)據(jù)展示出來。
訓(xùn)練目標(biāo)
字符串的聲明、字符串的輸入、字符串的輸出
訓(xùn)練提示
在python中,通過 "" 或者 '' 聲明一個(gè)字符串類型的變量
使用input()函數(shù)從鍵盤獲取數(shù)據(jù)
通過%s 的格式化操作符來輸出字符串類型
參考方案
通過input函數(shù)進(jìn)行字符串?dāng)?shù)據(jù)的錄入
使用 string 類型保存錄入的數(shù)據(jù)
使用 %s 格式化輸出保存的數(shù)據(jù)
操作步驟
通過input函數(shù)進(jìn)行字符串?dāng)?shù)據(jù)的錄入
使用 string 類型保存錄入的數(shù)據(jù)
使用 %s 格式化輸出保存的數(shù)據(jù)
參考答案
# 錄入數(shù)據(jù),并保存在變量中 name = input("請(qǐng)輸入姓名:") age = input("請(qǐng)輸入年齡:") hobby = input("請(qǐng)輸入您的愛好:")# 格式化輸出數(shù)據(jù) print("您的姓名是%s, 您的年齡是%s, 您的愛好是%s" % (name, age, hobby)) # 使用 f-string print(f"您的姓名是{name}, 您的年齡是{age}, 您的愛好是{hobby}")題目3 [加強(qiáng)訓(xùn)練]
題干
現(xiàn)有字符串如下,請(qǐng)使用切片提取出ceg,words = "abcdefghi"。
訓(xùn)練目標(biāo)
字符串的切片使用
訓(xùn)練提示
參考方案
操作步驟
參考答案
a = "abcdefghi" b = a[-7:-1:2] print(b) # ceg題目4 [加強(qiáng)訓(xùn)練]
題干
james有一個(gè)關(guān)于爬蟲的項(xiàng)目,他需要在一個(gè)字符串中查找python這個(gè)關(guān)鍵字, 當(dāng)前他通過index()函數(shù)進(jìn)行查找,雖然可以實(shí)現(xiàn)查找的需求,但是總會(huì)在沒有查找到關(guān)鍵字的時(shí)候報(bào)錯(cuò),為什么會(huì)報(bào)錯(cuò),如何優(yōu)化?
訓(xùn)練目標(biāo)
訓(xùn)練提示
find函數(shù)如果查找到則返回索引值,如果查不到,則返回-1
index函數(shù)如果查找到則返回索引值,如果查不到,則報(bào)錯(cuò)
參考方案
操作步驟
參考答案
# 只需要使用find函數(shù)替換掉index函數(shù)即可, # 在功能上, find函數(shù)index函數(shù)完全一致,不同的是index函數(shù)在沒有查找到關(guān)鍵字的情況下會(huì)報(bào)ValueError的異常, # 因此在一般開發(fā)環(huán)境下通常都會(huì)使用find函數(shù)題目5 [加強(qiáng)訓(xùn)練]
題干
words = " great craTes Create great craters, But great craters Create great craters "
訓(xùn)練目標(biāo)
訓(xùn)練提示
字符串的相關(guān)操作來解決上述問題
使用判斷語句來判斷語句成立的條件
參考方案
使用in判斷某一個(gè)子字符串是否在母字符串中
使用replace函數(shù)替換子字符串
使用lower函數(shù)將字符串變?yōu)樾?/p>
使用title函數(shù)將單詞的首字母大寫
使用strip函數(shù)去除字符串首尾的空白
操作步驟
使用in判斷某一個(gè)子字符串是否在母字符串中
使用replace函數(shù)替換子字符串
使用lower函數(shù)將字符串變?yōu)樾?/p>
使用title函數(shù)將單詞的首字母大寫
使用strip函數(shù)去除字符串首尾的空白
參考答案
words = " great craTes Create great craters, But great craters Create great craters "# 判斷單詞great是否在這個(gè)字符串中 if 'great' in words:# 將每一個(gè)great替換成greatswords = words.replace("great", "greats")# 將單詞變成小寫words = words.lower()# 將每一個(gè)單詞的首字母都大寫words = words.title()# 去除首尾的空白words = words.strip()# 最后進(jìn)行輸出print(words)else:print("great不在該字符串中")2、列表
題目1 [加強(qiáng)訓(xùn)練]
題干
有一個(gè)列表,判斷列表中的每一個(gè)元素是否以s或e結(jié)尾,如果是,則將其放入一個(gè)新的列表中,最后輸出這個(gè)新的列表。
list = ["red", "apples", "orange", "pink", "bananas", "blue", "black", "white"]
訓(xùn)練目標(biāo)
讓學(xué)員知道列表的循環(huán)和值的獲取,以及列表的操作方法。
訓(xùn)練提示
如何找到列表中的每一個(gè)元素?
如何判斷列表中的元素以什么字符結(jié)尾?
參考方案
使用循環(huán)遍歷的方式獲取列表中的每一個(gè)元素?
列表中的元素為字符串,所以可以使用下標(biāo)[-1] 來獲取最后一個(gè)字符的值,然后判斷.
操作步驟
遍歷列表中的每一個(gè)元素
if 判斷 最后一個(gè)字符是否是s或者e
如果是,使用 append() 方法,將數(shù)據(jù)追加到新的列表中.
參考答案
my_list = ["red", "apples", "orange", "pink", "bananas", "blue", "black", "white"]# 用來存放以e或者s結(jié)尾的字符串 new_list = []for i in my_list:# 判斷列表中每一個(gè)元素是否以s或e結(jié)尾if i[-1] == 's' or i[-1] == 'e':new_list.append(i)# 打印出這個(gè)新的列表 print(new_list)方法二:使用字符串中的方法來判斷。
my_list = ["red", "apples", "orange", "pink", "bananas", "blue", "black", "white"]# 用來存放以e或者s結(jié)尾的字符串 new_list = []for i in my_list:# 判斷列表中每一個(gè)元素是否以s或e結(jié)尾if i.endswith('s') or i.endswith('e'):new_list.append(i)# 打印出這個(gè)新的列表 print(new_list)題目2 [加強(qiáng)訓(xùn)練]
題干
給定一個(gè)列表,首先刪除以s開頭的元素,刪除后,修改第一個(gè)元素為"joke",并且把最后一個(gè)元素復(fù)制一份,放在joke的后邊。
my_list = ["spring", "look", "strange", "curious", "black", "hope"]
訓(xùn)練目標(biāo)
列表的相關(guān)操作
訓(xùn)練提示
通過for循環(huán)遍歷列表,獲取到每一個(gè)元素
通過列表的操作方法對(duì)列表進(jìn)行修改
參考方案
通過for循環(huán)獲取每一個(gè)元素
通過remove刪除列表中的元素
通過insert函數(shù)在指定位置插入元素
操作步驟
通過for循環(huán)獲取每一個(gè)元素,判斷是否以s開頭
如果條件成立,則通過remove刪除選中的元素
獲取到最后一個(gè)元素,通過replace將元素放在指定的位置上
參考答案
my_list = ["spring", "look", "strange", "curious", "black", "hope"] # 列表,刪除數(shù)據(jù)后,數(shù)據(jù)前移【列表中的某一個(gè)元素被刪除后,后續(xù)元素會(huì)自動(dòng)前移】。 # print(my_list[:]) # ['spring', 'look', 'strange', 'curious', 'black', 'hope'] for i in my_list[:]: # my_list[:]切片,取出所有元素,默認(rèn)步長為1# 刪除以s開頭的元素,if i[0] == 's':my_list.remove(i)# 修改第一個(gè)元素為"joke" my_list[0] = "joker"# 獲取最后一個(gè)元素 last_one = my_list[-1]# 將最后一個(gè)元素放在joke的后面 my_list.insert(1, last_one)print(my_list)題目3 [加強(qiáng)訓(xùn)練]
題干
將下列兩個(gè)列表合并,將合并后的列表去重,之后降序并輸出。
list1 = [11, ?4, 45, 34, 51, 90]
list2 = [4, 16, 23, 51, 0]
訓(xùn)練目標(biāo)
列表操作方法的使用
訓(xùn)練提示
如何合并兩個(gè)列表?
如何進(jìn)行列表去重?
如何排序并降序輸出?
參考方案
合并列表可以使用 extend()方法或者兩個(gè)列表相加。
列表去重有兩種方案
自己實(shí)現(xiàn)方法實(shí)現(xiàn),借助一個(gè)新的列表,循環(huán)遍歷原列表,判斷元素是否在新的列表中,如果在,遍歷下一個(gè)元素,如果不在,添加到新的列表中。
使用 set() 集合去重
sort 函數(shù)可以實(shí)現(xiàn)排序,參數(shù)reverse=True對(duì)列表進(jìn)行倒序排序
操作步驟
參考答案
方案 1
list1 = [11, 4, 45, 34, 51, 90] list2 = [4, 16, 23, 51, 0]# 1. 使用 + 合并兩個(gè)列表 my_list = list1 + list2# 2. 列表去重 # 2.1 定義新的空列表保存去重后的數(shù)據(jù) my_list1 = [] # 2.2 遍歷合并后的列表 for i in my_list:# 2.3 判斷i 是否在my_list1 中if i in my_list1:# 2.3.1 如果存在,直接下一次循環(huán)continueelse:# 2.3.2 將i添加到my_list1 中.my_list1.append(i)# 3. 循環(huán)結(jié)束,得到去重后的列表 my_list1,進(jìn)行排序 my_list1.sort(reverse=True)# 4. 輸出最后的結(jié)果 print(my_list1)方案 2 暫時(shí)不用管。后邊會(huì)學(xué)習(xí)。
使用集合(set), 去重,
set 也是一個(gè)容器,具有自動(dòng)去重的功能(后續(xù)會(huì)學(xué)習(xí))
目前只需要了解即可。
list1 = [11, 4, 45, 34, 51, 90] list2 = [4, 16, 23, 51, 0]# 列表拼接 list3 = list1 + list2# 列表去重 list4 = set(list3) list5 = list(list4)# 列表降序輸出 list5.sort(reverse=True)print(list5) # [90, 51, 45, 34, 23, 16, 11, 4, 0]3、元組 tuple
題目1 [加強(qiáng)訓(xùn)練]
題干
有如下兩行代碼:
tuple1 = (2)
tuple2 = (2,)
請(qǐng)問tuple1與tuple2有什么不同?
訓(xùn)練目標(biāo)
定義一個(gè)元素的元組
訓(xùn)練提示
通過肉眼能看到的只是一個(gè)逗號(hào)的區(qū)別,那么在python里面他是怎么理解的呢?
參考方案
用type()方法來分別對(duì)這兩個(gè)變量進(jìn)行區(qū)別
操作步驟
用type(tuple1),與type(tuple12)的結(jié)果進(jìn)行比較
參考答案
tuple1 = (2) tuple2 = (2,) print(type(tuple1)) # <class 'int'> print(type(tuple2)) # <class 'tuple'> # 對(duì)于tuple1 = (2),python解釋器會(huì)將小括號(hào)理解成一個(gè)運(yùn)算符號(hào),那么這時(shí)候 返回的值是一個(gè)int類型 # 所以對(duì)于只有一個(gè)元素的元組來說,要?jiǎng)?chuàng)建一個(gè)元組,那么就必須要加逗號(hào)題目2 [加強(qiáng)訓(xùn)練]
題干
有如下代碼,請(qǐng)回答問題?
my_tuple = ("itcast", "python", "CPP", 18, 3.14, True)
使用下標(biāo)的方法,輸出元組中的元素 "CPP"
使用 for 循環(huán)遍歷元組
使用 while 循環(huán)遍歷元組
訓(xùn)練目標(biāo)
元組的下標(biāo)操作
元組的 for 循環(huán)遍歷
元組的 while 循環(huán)遍歷
訓(xùn)練提示
python 中的下標(biāo)是從 0 開始,還是從 1 開始?
如何進(jìn)行 for 遍歷?
如何進(jìn)行 while 遍歷?while 的條件怎么寫?
參考方案
下標(biāo)從 0 開始,故 CPP 的下標(biāo)是 2
使用 for ... in ... 遍歷
while 循環(huán),需要使用下標(biāo),判斷條件可以借助 len()實(shí)現(xiàn)
操作步驟
使用下標(biāo)的方法,取 CPP 的值
for 循環(huán)遍歷
while 循環(huán)遍歷
參考答案
my_tuple = ("itcast", "python", "CPP", 18, 3.14, True)# 1. 使用下標(biāo)的方法,輸出元組中的元素 `"CPP"`使用下標(biāo)的方法, result = my_tuple[2] print(result)# 2. 使用 for 循環(huán)遍歷元組 for i in my_tuple:print(i)print("-" * 20)# 3. 使用 while 循環(huán)遍歷元組 i = 0 while i < len(my_tuple):print(my_tuple[i])i += 1加油~? ?—— 2021.02.22
總結(jié)
以上是生活随笔為你收集整理的Python基础day03 作业解析【5道 字符串题、3道 列表题、2道 元组题】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python基础day03【字符串(定义
- 下一篇: Python基础day04【字典(介绍、