day2-列表、元組、字典、字符串

1.列表(list)

names=['悟空','艾瑪','克林','龜仙人','天津飯','餃子','烏龜']
print(names)

---》列表,然后打印。

names=['悟空','艾瑪','克林','龜仙人','天津飯','餃子','烏龜']# list section
section1=names[0] #下標從0開始
#print(section1) #結果為'悟空'seciton2=names[1:5] #取下標1至下標5之間的切片,包括1,但不包括5
#print(seciton2) #['艾瑪', '克林', '龜仙人', '天津飯']section3=names[1:-1] #取下標1至下標-1(烏龜)之間的切片,包括1,但不包括-1
#print(section3) #['艾瑪', '克林', '龜仙人', '天津飯', '餃子']####以下是兩種從頭截取#####
section4=names[0:3] #從頭截取,到下標3位置,不包括3
section5=names[:3] #從頭截取,到下標3位置,不包括3
#print(section4) #['悟空', '艾瑪', '克林']
#print(section5) #['悟空', '艾瑪', '克林']####以下試試截取到末尾#####
section6=names[3:] #從3截取到末尾
#print(section6) #['龜仙人', '天津飯', '餃子', '烏龜']
section7=names[3:-1] #不包括-1,所以這樣無法截取到末尾
#print(section7) #['龜仙人', '天津飯', '餃子']####加大運動量,我要跳著前進#####
section8=names[0::2] #從頭到尾,隔一取一
#print(section8) #['悟空', '克林', '天津飯', '烏龜']
section9=names[::2] #效果同上
#print(section9) #['悟空', '克林', '天津飯', '烏龜']section10=names[:] #all
print(section10) #['悟空', '艾瑪', '克林', '龜仙人', '天津飯', '餃子', '烏龜']

---》以上為截取示例。

#############接下來試試增、刪、改################

names=['悟空','艾瑪','克林','龜仙人','天津飯','餃子','烏龜']# 新增
# names.append('比克大魔王') #我大魔王來了,哈哈哈
# print(names) #['悟空', '艾瑪', '克林', '龜仙人', '天津飯', '餃子', '烏龜', '比克大魔王']
# names.insert(3,'安琪') #龜仙人,美女來了。。。
# print(names) #['悟空', '艾瑪', '克林', '安琪', '龜仙人', '天津飯', '餃子', '烏龜', '比克大魔王']#修改
# names[2]='貝吉塔' #離我家艾瑪遠一點
# print(names) #['悟空', '艾瑪', '貝吉塔', '龜仙人', '天津飯', '餃子', '烏龜']#刪除
# del names[-2] #餃子被吃掉啦。。。
# print(names) #['悟空', '艾瑪', '克林', '龜仙人', '天津飯', '烏龜']
# names.remove('龜仙人') #走開好色仙人
# print(names) #['悟空', '艾瑪', '克林', '天津飯', '餃子', '烏龜']
# names.pop() #可憐的烏龜,沒存在感,消失了都沒人知道
# print(names) #['悟空', '艾瑪', '克林', '龜仙人', '天津飯', '餃子']

#############擴展、拷貝、統計、排序&反轉################

#擴展
kids=['悟飯','特蘭克斯','撒旦']
names.extend(kids) #熊孩子來
print(names) #['悟空', '艾瑪', '克林', '龜仙人', '天津飯', '餃子', '烏龜', '悟飯', '特蘭克斯', '撒旦']#拷貝(淺淺的copy,后面會介紹deepcopy)
n_copy=names.copy()
n_copy[0]='大圣'
names[0]='至尊寶'
print('n_copy:',n_copy)
print('names:',names)#統計,只統計第一層
name_count=names.count('烏龜')
print(name_count)#排序
names[-1]='1'
names[-2]='b'
names[-3]='@'
names.sort()
print(names)#反轉
names.reverse()
print(names)

#############列表循環、獲取下標################

#列表循環
for n in names:print(n)#獲取下標(只返回找到的第一個下標)
name=names.index('克林')
print(name)

#############我要深深的copy################

names=['悟空','艾瑪','克林','龜仙人','天津飯','餃子','烏龜']#拷貝
# n_copy=names.copy()
# n_copy[0]='大圣'
# names[0]='至尊寶'
# print('n_copy:',n_copy)
# print('names:',names)# immortals=['天神','界王','大界王','界王神','烏龜']
# names.insert(1,immortals)
#print(names)
########套了一層列表,繼續試試copy###########
# n_copy=names.copy()
# names[0]='至尊寶' #一層正常copy
# names[1][0]='bobo' #修改二層列表,打印看看,咋都變了呢?
# n_copy[1][0]='喵喵' #修改二層列表,打印看看,咋都變了呢?
# print('n_copy:',n_copy)
# print('names:',names)
#####淺copy,只復制一層,子列表未被復制一份,所以一個修改后,兩者都變,可以理解為指向同一內存地址########我想深深的copy咋整?############
# import copy
# n_copy=copy.deepcopy(names)
# names[1][0]='bobo' #deepcopy,達到了想要的效果
# n_copy[1][0]='喵喵' #deepcopy,達到了想要的效果
# print('n_copy:',n_copy)
# print('names:',names)

?

2.元組(tuple)

names=('悟空','艾瑪','克林','龜仙人','天津飯','餃子','烏龜','餃子')
name_count=names.count('餃子') #tuple count
name_index=names.index('天津飯') #tuple index
print(names) #('悟空', '艾瑪', '克林', '龜仙人', '天津飯', '餃子', '烏龜', '餃子')
print('count:',name_count) #count: 2
print('index of 天津飯:',name_index) #index of 天津飯: 4# tuple loop
for n in names:print(n)

---》使用類似列表

3.字典(dict)

'''
字典特性
1.dict是無序的
2.key值必須是唯一的
'''
infos={
'stu1101':'TengLan Wu',
'stu1102':'LuoLa LongZe',
'stu1103':'MaryYa XiaoZe'
}
info=infos['stu1101'] #key-value取值
infos['stu1104']='Jinkong Cang' #新增元素
infos['stu1101']='武藤蘭' #修改
#infos.pop('stu1104') #標準刪除姿勢
#del infos['stu1104'] #換個姿勢刪除
#infos.popitem() #隨機刪除一個

#標注查找
# if 'stu1101' in infos:
# print('Yes,it is exsit.')
# else:
# print('not exsit')

#獲取
# print(infos.get('stu1101')) #獲取
# print(infos['stu1101']) #同上
##########But,if key is non-exsitent!#############
# print(infos.get('stu1106')) #stu1106不存在,返回none
# print(infos['stu1106']) #會報錯KeyError: 'stu1106'

---》最簡單的字典

#多級字典嵌套及操作
addresses={'江蘇':{'徐州':{'銅山':{'漢王':{},'大廟':{},'大彭':{}},'泉山':{'Town1': {},'Town2': {},'Town3': {}},'鼓樓':{}},'南京':{},'蘇州':{}},'北京':{},'上海':{}
}# #第一層
# print('--------L1--------')
# for province in addresses:
#     print(province)
# #第二層
# print('--------L2--------')
# for city in addresses['江蘇']:
#     print(city)
# #第三層
# print('--------L3--------')
# for district in addresses['江蘇']['徐州']:
#     print(district)
# #第四層
# print('--------L4--------')
# for town in addresses['江蘇']['徐州']['銅山']:
#     print(town)###############下面來實現多級菜單#####################
exit_flag=False
while not exit_flag:for province in addresses:print(province)choice_province=input('choice province--->>')if choice_province in addresses:while not exit_flag:for city in addresses[choice_province]:print(city)choice_city=input('choice city--->>')if choice_city in addresses[choice_province]:while not exit_flag:for district in addresses[choice_province][choice_city]:print(district)choice_district=input('choice district--->>')if choice_district in addresses[choice_province][choice_city]:while not exit_flag:for town in addresses[choice_province][choice_city][choice_district]:print(town)last_level=input('this is the last level--->>')if last_level=='b':breakelif last_level=='q':exit_flag=Trueelse:print('enter b/q')else:if choice_district == 'b':breakelif choice_district == 'q':exit_flag = Trueelse:print('enter b/q')else:if choice_city == 'b':breakelif choice_city == 'q':exit_flag = Trueelse:print('enter b/q')else:if choice_province == 'b':breakelif choice_province == 'q':exit_flag = Trueelse:print('enter b/q')

---》多級字典嵌套及操作,循環打印三級菜單

?

4.字符串(string)

#string
var1='Hello World!'
# print(var1)
# print(var1[0])
# print(var1[-1])
# print(var1[:])#不可修改--如下(TypeError: 'str' object does not support item assignment)
# var1[0]='HH'
# print(var1)# name1='albert'
# print(name1.capitalize()) #首字母大寫
# name2='Tom'
# print(name2.casefold()) #首字母小寫
# name3='Spring'
# print(name3.center(20,'-')) #共20個字符,name3放中間
# name4='my name is nidaye'
# print(name4.count('i')) #統計字符串中‘’的個數
# print(name4.encode()) #將字符串編碼改成bytes格式
# print(name4.endswith('ye')) #判斷字符串name4是否以‘ye’結尾,是返回True
# print('Alex\tli'.expandtabs(20)) #'\t'位置以20個空格填充
# print(name4.find('m')) #返回第一個找回的‘m’,找到返回其索引,否則返回-1#字符串傳參的若干種方法
# msg1='my name is %s, and age is %d' %('tony1',11)
# print(msg1)
# msg2='my name is {}, and age is {}'.format('tony2',22)
# print(msg2)
# msg3='my name is {name}, and age is {age}'.format(name='tony3',age=33)
# print(msg3)
# msg4='my name is {0}, and age is {1}'.format('tony4',44)
# print(msg4)#字典傳值
# msg5='my name is {name}, and age is {age}'.format_map({'name':'tony5','age':55})
# print(msg5)
# print(msg5.index('n')) #返回第一個'n'所在的索引
# print(msg5.partition('is')) #把‘is’、‘is’之前、‘is’之后,作為元組的三個元素,構成一個元組?
# print(msg5.replace('m','M',1)) #把第一個'm',改為'M'
#
# print('9'.isdigit()) #判斷一個字符串是否為數字
# print(msg5.isalnum()) #判斷一個字符串是否為數字和字母
#
# print('|'.join(['n','d','y']))
#
# intab='aeiou' #this is the string having actual characters.真實
# outtab='12345' #this is the string having corresponding mapping character.映射
# trantab=str.maketrans(intab,outtab) #建立對應關系
#
# str='This is the string example...wow'
# print(str.translate(trantab)) #以映射數字替換相應字母name5='NiDaYe'
# print(name5.swapcase()) #大小寫變換
# print(name5.zfill(20)) #打印20個字符,不夠以0填充
#
# print(name5.rjust(20,'-')) #共20個字符,右對齊,不夠左側填充‘-’
# print(name5.ljust(20,'-')) #共20個字符,左對齊,不夠右側填充‘-’
#
# print(name5.isidentifier()) #判斷一個字符串是否符合命名規則

?

5.簡易購物車

product_list=[('Ipone',5000),('Coffee',35),('Bike',2000),('Book',50),('Mac pro',9800),('Watch',500)
]
#print(product_list[0][1])
#print(len(product_list))
cart=[]
salary=input('enter you salary--->>')
if salary.isdigit():salary=int(salary)while True:for index,item in enumerate(product_list):print(index,item)choice_product=input('choice you product--->>')if choice_product.isdigit():choice_product=int(choice_product)if choice_product>=0 and choice_product<len(product_list):salary=salary-product_list[choice_product][1]if salary>0:cp_item=product_list[choice_product]cart.append(cp_item)print('you have choice %s to you cart,you current balance is %d'%(cp_item,salary))else:print('沒錢買個毛線啊!')elif choice_product=='q':for i in cart:print('you cart:',i)print('you current balance is:',salary)exit()else:print('enter num')
else:input('enter num')

  

?

轉載于:https://www.cnblogs.com/zhuyiqiang/p/8671400.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/250649.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/250649.shtml
英文地址,請注明出處:http://en.pswp.cn/news/250649.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

開漏輸出、推挽輸出的區別

推挽輸出:可以輸出高,低電平,連接數字器件。 輸出 0 時&#xff0c;N-MOS 導通&#xff0c;P-MOS 高阻&#xff0c;輸出0。 輸出 1 時&#xff0c;N-MOS 高阻&#xff0c;P-MOS 導通&#xff0c;輸出1&#xff08;不需要外部上拉電路&#xff09;。 開漏輸出:輸出端相當于三極管…

羅馬數字

古羅馬帝國開創了輝煌的人類文明&#xff0c;但他們的數字表示法的確有些繁瑣&#xff0c;尤其在表示大數的時候&#xff0c;現在看起來簡直不能忍受&#xff0c;所以在現代很少使用了。之所以這樣&#xff0c;不是因為發明表示法的人的智力的問題&#xff0c;而是因為一個宗教…

匯編 --- 從磁盤(扇區2到18)上讀取數據到內存中

下面代碼讀取柱面:0,磁頭:0,扇區從2到18的數據到內存 0x8200~0xa3ff處 需要明白以下幾點: 給定柱面,磁頭,一個扇形區域是512字節,對應的物理可以理解為512個燈泡組(一個燈泡組有8個小燈泡)確定讀取到內存中的位置 為什么是0x8200:因為0x8000~0x81ff這512個字節要留給啟動區.為…

那些值得思考的PHP問題

那些值得思考的PHP問題 1、關于弱類型 函數strpos是返回字符串str2在str1的位置&#xff0c;沒有找到則返回false&#xff0c;然而如果在實際應用上返回的位置是0&#xff0c;在if語句中0也被當作false&#xff0c;所以我們需要對false做類型判斷&#xff0c; $str1 yabadaba…

Lvs Tun隧道模式配置

######## TUN是IP Tunneling &#xff0c;IP隧道的簡稱&#xff0c;它將調度器收到的IP數據包封裝在一個新的IP數據包中&#xff0c;轉交給應用服務器&#xff0c;然后實際服務器的返回數據會直接返回給用戶。 工作原理&#xff1a; 用戶請求負載均衡服務器&#xff0c;當IP數…

mysql-常用sql

記錄下工作中常用的sql 刪除重復數據 delete from student where id not in (select min(id) from student group by name); -- 該語句在mysql下會報錯&#xff0c; -- 執行報錯&#xff1a;1093 - You cant specify target table student for update in FROM clause -- 原因是…

優雅的使用Laravel之phpstorm配置

優雅的使用Laravel之phpstorm配置 先打開一個Laravel 項目&#xff0c;然后在project tool 窗口選擇根節點、然后右鍵->Composer | Init composer 。 如果你的電腦里沒有composer.phar&#xff0c;可以點擊鏈接來下載。然后點擊項目 composer->add denpendency.. 搜索ba…

算法 --- 求兩個集合的并集

const unionL (l1, l2)>{for(let i0; i <l1.length; i){if(l2.indexOf(l1[i]) -1){l2.push(l1[i])}}return l2 }let l1 [1,2,3,4]; let l2 [1,2,5]; console.log(unionL(l1,l2)); //[1, 2, 5, 3, 4]

java實驗四——找鞍點

package hello;public class 實驗四 {public static void main(String[] args) {// TODO Auto-generated method stubint[][] a {{9,8,6},{2,3,1},{8,5,2}};System.out.println("二維數組為&#xff1a;");for(int i0;i<a.length;i){for(int j0;j<a[i].length;…

BZOJ 4551樹題解

好吧&#xff0c;洛谷的數據比較水暴力就可以過。。。。&#xff08;而且跑到飛快&#xff09; 不過&#xff08;BZ水不過去&#xff09;還是講講正規的做法。 其實一眼可以看出可以樹剖&#xff0c;但是&#xff0c;碼起來有點麻煩。 其實有一種更簡單的離線做法。 我們很容易…

es6 --- 使用Symbol保護私有變量

定義一個人物類 假設其屬性有姓名和性別我們希望,性別在聲明后就固定不變 傳統方法 var Person (function(){var _gender ;function P(name, gender){this.name name;_gender gender;}P.prototype.getGender function(){return _gender;}return P; })();var p1 new Pe…

組合數

long long factorial(int n) {long long m 1;for(int i1;i<n;i)m*i;return m; } long long C(int n,int m) {return factorial(n)/(factorial(m)*factorial(n-m));//可能會溢出 } 正解&#xff1a; long long C(int n,int m) {if(m<n-m) m n-m;long long ans 1;for(in…

Mysql中的聯合索引、前綴索引、覆蓋索引

Mysql中的聯合索引、前綴索引、覆蓋索引 索引 索引是一種特殊的文件&#xff0c;它們包含著對數據表里所有記錄的引用指針。更通俗的說&#xff0c;數據庫索引好比是一本書前面的目錄&#xff0c;能加快數據庫的查詢速度。 聯合索引 又名復合索引&#xff0c;由兩個或多個列…

LVM邏輯卷管理

什么是邏輯卷&#xff1f;因為可以將文件系統像卷一樣伸長或縮短之故。 LVM做法&#xff0c;將幾個物理分區或磁盤&#xff0c;通過軟件組合成為一塊看起來是獨立的大磁盤&#xff08;VG&#xff09;&#xff0c;然后將這塊大磁盤再經過分成可使用分區&#xff08;LV&#xff0…

es6 --- 自制迭代器

對象 對象如下 const obj {left: 100,top: 200 }不可迭代 for(let attr of obj){console.log(attr); }迭代規則 可迭代,所具有的屬性[Symbol.iterator] 需要自己給obj添加迭代規則 obj[Symbol.iterator] () >{// 獲取obj的所有鍵let keys Object.keys(obj);let len …

軟件工程的實踐項目課程的自我目標

對實踐項目完成后學習到的能力的預期&#xff1a;這算是自己第一次參加的團隊合作的軟件實踐吧&#xff0c;以前自己搞的小“玩意”&#xff0c;實難登大雅之堂&#xff0c;期待實踐項目后--->1、自己的代碼能力能夠有較明顯的提高&#xff0c;代碼更加規范。 2、提升團隊合…

[Shell] swoole_timer_tick 與 crontab 實現定時任務和監控

手動完成 "任務" 和 "監控" 主要有下面三步&#xff1a; 1. mission_cron.php&#xff08;定時自動任務腳本&#xff09;&#xff1a; <?php /*** 自動任務 定時器 (5s 執行).** swoole_timer_tick 解決秒級定時&#xff1b;* 如需調整&#xff0c;注意…

關于項目調研

一、檸檬時代app 1、作品內容&#xff1a; 該作品主要為每一所高校的大學生量身定制的手機生活助手&#xff0c;由您自主運營的校園手機客戶端。開放的自定義平臺&#xff0c;匯聚本校周邊所有生活服務、外賣商家、娛樂休閑、新鮮事兒、知名社團、周邊商鋪、校園達人等欄目。 …

html 標簽

html概述 超文本標記語言&#xff08;英語&#xff1a;HyperText Markup Language&#xff0c;簡稱&#xff1a;HTML&#xff09;是一種用于創建網頁的標準標記語言。HTML是一種基礎技術&#xff0c;常與CSS、JavaScript一起被眾多網站用于設計令人賞心悅目的網頁、網頁應用程序…

es6 --- forEach的實現

forEach的第一個參數 接收回調函數 let a [a, b, c]; a.forEach((v, k ,s)>{console.log(v, k ,s);console.log(this); })v: valuek: keys: 代表數組a本身this指向當前函數執行所在的作用域,即window forEach的第二個參數. forEach第1個參數用于接收回調函數,第2個參數…