本篇文章為大家帶來了關於python的相關知識,其中主要介紹了關於字元和列表的相關問題,包括了字串的輸入輸出、列表循環遍歷、列表的增刪改查以及清單的巢狀等等內容,下面一起來看一下,希望對大家有幫助。
推薦學習:python影片教學
#1.字串
字串表現形式
a = "100"b = "hello world"c = 'hello world'd = '100'e = ‘18.20520'
1.1len函數傳回物件的長度或數量
Python len( )方法傳回物件(字元、列表、元組、字典等)長度或項目數。
In [1]: a="abcdefg"In [2]: len(a)Out[2]: 7In [3]: b = [1,2,3,4,5,66,77,8888]In [4]: len(b)Out[4]: 8
1.2組成字串的另外一種方式:
#字串會拼接,數字會相加
In [5]: a ="lao"In [6]: b="wang"In [7]: c=a+b In [8]: c Out[8]: 'laowang'In [9]: d= "===="+a+b+"===="In [10]: d Out[10]: '====laowang===='In [11]: f="===%s===="%(a+b)In [12]: f Out[12]: '===laowang===='
2.字串的輸入輸出
2.1字串輸入
輸入訊息
name = input(“ 请输入你的姓名:”)position = input(“ 请输入你的职业:”)address = input(“ 请输入你的地址:”)
輸出訊息
print("="*50)print(" 姓名:%s\n 职业:%s\n 地址:%s" % (name,position,address))print("="*50)
2.2format的使用語法:
格式化的方式展示數據,並且可以透過多種方式展示數據。如 透過位置、透過關鍵字參數、透過映射list。
1.透過位置
print(“my name is {0},age is {1}”.format('劉備',20))
print(“my name is {},age is {}”.format('劉備',20))
print(“{1},{0},{1}”.format('劉備',20))
2.透過關鍵字參數
print(“{age},{name}”.format(age=28,name=“曹操”))
print(“{name},{name},{age }”.format(age=28,name=“曹操”))
3.透過映射list
alist = [“孫權”,20,“中國”]
blist = [“貂蟬”, 18,「中國」]
print(“my name is {1[0]}, from {0[2]}, age is {0[1]}”.format(alist,blist))
在python3中input 獲取的數據,都以字符串的方式進行保存,即使輸入的是數字,那麼也是以字符串方式保存
#判斷密碼是否正確
user_name = input(“ 请输入用户名:”)password = input(“ 请输入密码:”)if user_name == “beijing” and password == “123” :print(“ 欢迎登录北京官网!")else :print(" 你的账户或者密码错误!")
2.3下標介紹
下標索引index
所謂“下標”,就是編號,就好比超市中的存儲櫃的編號,透過這個編號就能找到對應的儲存空間。
透過下標取出部分字元
如果有字串:name = 'abcdef',在記憶體中的實際儲存如下:
##In [1] : len(name)Out[1]: 7
In [2]: name[len(name)-1]
Out[2]: 'g'
In [3]: name[-1]
Out[3]: 'g' 正數由左往右,負數由右往左
2.4切片# #切片是指對操作的物件截取其中一部分的操作。字串、列表、元組都支援切片操作。
切片的語法:[ 起始: 結束: 步長] 注意:選取的區間屬於左閉右開型,即從"起始"位元開始,到"結束"位元的前一位結束(不包含結束位元本身),注意,如果不寫步長預設是1.
步長是控制方向的,正數從左到右取,負數是從右到左取
In [1]: name="abcdefABCDEF"In [2]: name[0:3]Out[2]: 'abc'In [3]: name[0:5:2]Out[3]: 'ace'In [4]: name[-1::-1] #逆序(倒叙)Out[4]: 'FEDCBAfedcba'
下標和切片小結 [:] 提取從開頭(預設位置0)到結尾的整個字串
[start:] 從start 提取到結尾
[:end] 從開頭提取到end - 1
[start:end] 從start 提取到end - 1
[startstep] 從start 提取到end - 1,每step 個字元提取一個
[::-1]逆序
3.字串常見函數
find()、 rfind ()、 index ()、 rindex ()、 replace ()、split ()、parttion ()、rparttion ()、splitlines () 、startswith ()、endswith ()、lower ()、upper ()、…………
3.1find及rfindIn [1]: mystr="hello world yanzilu and yanziluPython"In [2]: mystr
Out[2]: 'hello world yanzilu and yanziluPython
In [3]: mystr.find("and")Out[3]: 20In [4]: mystr.find("world") #存在则返回该单词开始的下标Out[4]: 6In [5]: mystr.find("world1") #不存在则返回-1Out[5]: -1In [6]: mystr.find("yanzilu")Out[6]: 12In [7]: mystr.find("yanzilu",20,len(mystr)) #指定查找区域Out[7]: 24In [8]: mystr.rfind("yanzilu") #rfind,从右往左搜索Out[8]: 24
#3.2index 、 rindex作用和find一樣,只有一點不同,index搜尋不到的內容會報錯
In [9]: mystr.index("and") Out[9]: 20In [10]: mystr.index("yanzilu")Out[10]: 12In [11]: mystr.index("yanzilu",20,len(mystr)) #指定查找区域Out[11]: 24In [12]: mystr.rindex("yanzilu") #从右往左搜索Out[12]: 24In [13]: mystr.rindex("zhangsan") #搜索不存在的会报错---------------------------------------------------------------------------ValueError Traceback (most recent call last)<ipython-input-67-6aff7ee60ad5> in <module>----> 1 mystr.rindex("zhangsan")ValueError: substring not found</module></ipython-input-67-6aff7ee60ad5>3.3 replace 取代
In [14]: mystr
Out[14]: 'hello world yanzilu and yanziluPython'In [15]: mystr.replace("world","WORLD")Out[15]: 'hello WORLD yanzilu and yanziluPython'In [16]: mystr
Out[16]: 'hello world yanzilu and yanziluPython'In [17]: mystr.replace("yan","zhang")Out[17]: 'hello world zhangzilu and zhangziluPython'In [18]: mystr.replace("yan","zhang",1) #指定替换次数Out[18]: 'hello world zhangzilu and yanziluPython'In [19]: mystr.replace("yan","xxx",1)Out19]: 'hello world xxxzilu and yanziluPython'In [20]: mystr.replace("yan","xxx",2)Out[20]: 'hello world xxxzilu and xxxziluPython'In [21]: mystr.replace("yan","xxx",33) #替换次数可以超过最大值Out[21]: 'hello world xxxzilu and xxxziluPython'
3.4split,作用分割,切割,語法:split(str=' ',maxsplit)In [22]: mystr
Out[22]: 'hello world yanzilu and yanziluPython'In [23]: mystr.split(" ")Out[23]: ['hello', 'world', 'yanzilu', 'and', 'yanziluPython']In [24]: mystr.split("and")Out[24]: ['hello world yanzilu ', ' yanziluPython']In [25]: mystr.split(" ",3)Out[25]: ['hello', 'world', 'yanzilu', 'and yanziluPython']In [26]: mystr.split()Out[26]: ['hello', 'world', 'yanzilu', 'and', 'yanziluPython']
3.5 partition , 把mystr 以str分割成三個部分,str前,str自身,str後In [27]: mystr
Out[27]: 'hello world yanzilu and yanziluPython'In [28]: mystr.partition("and")Out[28]: ('hello world yanzilu ', 'and', ' yanziluPython')In [29]: mystr.partition("yanzilu")Out[29]: ('hello world ', 'yanzilu', ' and yanziluPython')In [30]: mystr.rpartition("yanzilu")Out[30]: ('hello world yanzilu and ', 'yanzilu', 'Python')
3.6splitlines作用,依照行分割,傳回一個包含各行作為元素的列表In [31]: mystr1
Out[31]: 'hello\nworld\nyanzilu\nand\nyanziluPython'In [32]: mystr1.splitlines()Out[32]: ['hello', 'world', 'yanzilu', 'and', 'yanziluPython']
#3.7 startswith () 判斷是否以str開頭; endswith () 判斷是否以str結尾。 In [33]: mystr
Out[33]: 'hello world yanzilu and yanziluPython'In [34]: mystr.startswith("hello")Out[34]: TrueIn [35]: mystr.startswith("Hello")Out[35]: FalseIn [36]: mystr.startswith("h")Out[36]: TrueIn [37]: mystr.endswith("Pthon")Out[37]: FalseIn [38]: mystr.endswith("Python")Out[38]: True
3.8upper 將所有字母轉換為大寫;lower 將所有字母轉換為小寫。 In [39]: mystr.upper()。
Out[39]: 'HELLO WORLD YANZILU AND YANZILUPYTHON'In [40]: mystr.lower() Out[40]: 'hello world yanzilu and yanzilupython'
3.9center為字串兩邊加上空格,居中顯示In [41]: mystr = "那一夜我伤害了你"In [42]: mystr = mystr.center(30) In [43]: mystr
Out[43]: ' 那一夜我伤害了你
3.10 lstrip刪除字串左邊的空格
In [44]: mystr.lstrip()Out[44]: '那一夜我伤害了你
3.11rstrip删除字符串右边的空格
In [45]: mystr.rstrip()Out[45]: ' 那一夜我伤害了你'
3.12 strip删除字符串两边的空格
In [46]: mystr.strip()Out[46]: '那一夜我伤害了你'
3.13isspace判断是否只包含空格
In [47]: mystr.isspace()Out[47]: FalseIn [48]: mystr = " "In [49]: mystr.isspace()Out[49]: True
3.14salpha判断字符串中是否只包含字母
In [50]: mystr = "abc" In [51]: mystr.isalpha()Out[51]: TrueIn [52]: mystr = "abc1"In [53]: mystr.isalpha()Out[53]: False
3.15isdigit判断是否只包含数字。
In [54]: mystr = "123123"In [55]: mystr.isdigit()Out[55]: TrueIn [56]: mystr = "123123aa"In [57]: mystr.isdigit()Out[57]: False
3.16isalnum判断是否只包含数字和字母。
In [58]: mystr.isalnum()Out[58]: TrueIn [59]: mystr = "123123 aa"In [60]: mystr.isalnum()Out[60]: False
3.17title将每个单词的首字母大写,其余小写
In [61]: mystr = 'hello world yanzilu and yanziluPython'In [62]: mystr.title()Out[63]: 'Hello World Yanzilu And Yanzilupython'
3.18capitalize将字符串的第一个字符大写,其余小写
In [64]: mystr.capitalize()Out[64]: 'Hello world yanzilu and yanzilupython'
3.19count统计单词出现的次数
In [65]: mystr.count("hello")Out[65]: 1In [66]: mystr.count("yan")Out[66]: 2
3.20join在每个字符后面插入str,构造出一个新的字符串。
In [67]: mystr = " "In [68]: name Out[68]: ['hello', 'world', 'yanzilu', 'and', 'yanziluPython']In [69]: mystr.join(name)Out[69]: 'hello world yanzilu and yanziluPython'In [70]: mystr = "_"In [71]: mystr.join(name)Out[71]: 'hello_world_yanzilu_and_yanziluPython'
4.列表及循环遍历
4.1列表的格式
#变量names_list的类型为列表names_list = [' 刘备',' 曹操',' 孙权'] #打印多个姓名names_list = [' 刘备',' 曹操',' 孙权']print(names_list[0])print(names_list[1])print(names_list[2]) names = [' 刘备',' 曹操',' 孙权'] for x in names print(x)i=1while i<len><h2 id="列表的增删改查">5.列表的增删改查:</h2> <p>列表中存放的数据是可以进行修改的,比如"增"、“删”、“改”</p> <h3 id="strong-列表的添加元素-增-append-extend-insert-strong"><strong>5.1列表的添加元素("增"append, extend, insert)</strong></h3> <p>append可以向列表添加元素<br> extend将另一个集合中的元素逐一添加到列表中<br> insert在指定位置index前插入元素</p> <pre class="brush:php;toolbar:false">name=[“刘备” , ”曹操” , ”孙权”]print(“增加之前:”,name)info=[“黄忠” , ”魏延”]
append追加
names.append("吕布")names.append("貂蝉")names.append(info) #append把中括号也增加上了print("增加之后:",names)
这里是引用
使用extend合并列表
info = ["黄忠","魏延"]names.extend(info)print("增加之后:",names)
这里是引用
insert在指定位置前插入元素
names.insert(0,"刘禅")print("增加之后:",names)
5.2删除元素 (" 删 "del, pop, remove)
del根据下标进行删除
pop删除最后一个元素
remove根据元素的值进行删除
names = ['刘备', '曹操', '孙权', '吕布', '貂蝉', '黄忠', '魏延']print("删除前:",names)
5.3del指定下标删除
del names[1]print("del删除后:",names)
5.4使用pop删除最后一个元素
names.pop()names.pop()print("pop删除后:",names)
5.5使用remove根据元素值进行删除
name = input("请输入您要删除的历史人物:")names.remove(name)print("remove删除后:",names)
5.6列表的修改
通过下标修改元素 (" 改 ")
names = ["刘备","曹操","孙权"]names[0] = "刘禅"print(names)
5.7查找元素("查"in, not in, index, count)
python中查找的常用方法为:
in (存在), 如果存在那么结果为True ,否则为False
not in (不存在),如果不存在那么结果为True ,否则False
index和count与字符串中的用法相同
names = ['刘备', '曹操', '孙权', '吕布', '貂蝉', '黄忠', '魏延',"曹操"]findName = input("请输入您要查找的姓名:")if findName in names: print("已经找到:%s"%findName)else: print("没有找到:%s"%findName)
In [1]: names = ['刘备', '曹操', '孙权', '吕布', '貂蝉', '黄忠', '魏延',’曹操’]In [2]: name.index(“曹操”)Out[2]:1In [3]: name.index(“曹操”,2,leb(names))Out[3]:7In [4]: name.count(“曹操”)Out[4]:2
6.排序(sort, reverse)
sort方法是将list按特定顺序重新排列,默认为由小到大(True:从小到大;False从大到小)
reverse=True可改为倒序,由大到小。
reverse方法是将list逆置。需要先排序再降序
7.列表嵌套
类似while循环的嵌套,列表也是支持嵌套的一个列表中的元素又是一个列表,那么这就是列表的嵌套
示例:
school_names = [[' 北京大学',' 清华大学'],[' 南开大学',' 天津大学'],[' 贵州大学',' 青海大学']]print(school_names)
#print(school_names)#print(len(school_names))#print(school_names[2][1])for school in school_names: print("="*30) print(school) for name in school: print(name)
8.列表嵌套的应用- - 随机安排老师工位
一个学校,有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机的分配
import random offices = [[ ],[ ],[ ]]names = ['刘备', '曹操', '孙权', '吕布', '貂蝉', '黄忠', '魏延','大乔']for office in offices: #得到一个教师的下标 index = random.randint(0,len(names)-1) #分配老师 name = names[index] office.append(name) #要移除已经完成分配的老师 names.remove(name)for name in names: #得到办公室编号 index = random.randint(0,2) offices[index].append(name)#print(offices)#打印出来哪些办公室有哪些老师i= 1for office in offices: #office = ["刘备","曹操"] print("办公室%s : 共%s人"%(i,len(office))) i+=1 for name in office: print("%s"%name,end="\t\t") print() print("="*30)
推荐学习:python视频教程
以上是簡單學習Python字元和列表(實例詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

Python3.6環境下加載Pickle文件報錯:ModuleNotFoundError:Nomodulenamed...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。