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