python day 5

試著忘記壹切 提交于 2020-03-09 03:23:43

1、昨日内容回顾

自己背

2、作业讲解

#以下作业均为自己自学完成,暂无标准答案     
           # 作业一:
li = ['a大','a二','a三','a四','a五']
# 1)计算列表的长度并输出。
s = len(li)
print(s)
# 2)列表中追加元素'seven',并输出添加后的列表
li.append('seven')
print(li)
# 3)请在列表的第1个位置插入元素"Tony,并输出添加后的列表。
li.insert(0,'tony'.capitalize())
print(li)
# 4)请修改列表第2个位置的元素为'老三',并输出修改后的列表。
li[2] = '老三'.capitalize()
print(li)
# 5)请将列表l2=[1,'a'3,4,'heart']的每一个元素添加到列表li中,一行代码实现,不允许循环添加。
l2=[1,'a',3,4,'heart']
li.extend(l2)
print(li)
# 6)请将字符串s= 'qwert’的每一个元素添加到列表li中,一行代码实现,不允许循环添加。
s = 'qwert'
li.extend(s)
print(li)
# 7)请删除列表中的元素'a三',并输出添加后的列表。
li.pop(2)
print(li)
# 8)请删除列表中的第2个元素,并输出删除的元素和删除元素后的列表
del li[2:3]
print(li)
# 9)请删除列表中的第2至4个元素,井输出删除元素后的列表。
del li [2:5]
print(li)
# 10)请将列表所有得元素反转,并输出反转后的列表
li.reverse()
print(li)
# 11)请计算出'a大'元素在列表li中出现的次数并输出该次数。
s = li.count('a大')
print(s)
'''
            # 作业二:
'''
# 2.写代码,有如下列表,利用切片实现每一个功能。
li= [1,3,2,'a',4,'b',5,'C']
# 1)通过对li列表的切片形成新的列表11,l1 = [1,3,2]
l1 = li[0:3]
print(l1)
# 2)通过对li列表的切片形成新的列表12,12 = ['a'4,'b']
l2 = li[3:6]
print(l2)
# 3)通过对li列表的切片形成新的列表13,13= [1,2,4,5]
l3 = li[0::2]
print(l3)
# 4)通过对li列表的切片形成新的列表14,14= [3,'a','b','c']
l4 = li[1:len(li):2]
print(l4)
# 5)通过对li列表的切片形成新的列表15,15= ['c']
l5 = li[-1:]
print(l5)
# 6)通过对Ii列表的切片形成新的列表16,16= ['b','a',3]
l6 = li[-3:-8:-2]
print(l6)
'''
            # 作业三:

# 3,写代码,有如下列表,按照要求实现每一个功能。
li = [2,3,'k',['qwe',20,['k1',['tt','3','1']],89],'ab','1']
# 1)将列表lis中的'tt'变成大写(用两种方式)。
li[3][2][1][0] = li[3][2][1][0].upper()
print(li)
li[3][2][1][0] = 'TT'
print(li)
# 2)将列表中的数字3变成字符串'100'(用两种方式)。
li[1] = '100'
print(li)
li[1] = str(li[1]).replace('3','100')
print(li)
# 3)将列表中的字符串'1'变成数字101 (用两种方式)。
li[-3][-2][-1] = 101
print(li)

           # 作业四:
 # 4,请用代码实现:
li = ['alex','eric','rain']
# 利用下划线将列表的每-一个元素拼接成字符串"alex_ eric_rain"
s = '_'.join(li)
print(s)

 

3、字典 dict

# 数据类型划分:可变数据类型,不可变数据类型

不可变数据类型:元组,bool值,int(本身不可更改,1就是1),str(对ste的任何操作都是形成了一个新的str,原str不可更改)。  可哈希

可变数据类型:list,dict,set。       不可哈希

dict 的 key 必须是不可变数据类型,可哈希

        value: 任意数据类型。

dict 优点:二分查找去查询 ,储存大量的关系型数据

  特点:3.5之前的版本字典都是无序的,3.6版本以后是有序的

 

 4、字典的增删改查

  # 字典的增
dic1 = {'name':'liang','age':21,'hobby':'python'}
  # 增加,覆盖
dic1['high'] = 170    # 没有键值对的时候增加
print(dic1)
dic1['hobby'] = 'run' # 有键值对的时候覆盖
print(dic1)
  # setdefault :有键值对不做任何改变,没有才添加
dic1.setdefault('weight')   # 默认增加键值对,但结果为:'weight':None
# dic1.setdefault('weight',130) # 增加键值对结果为:'weight':130
print(dic1)
# 字典的删
dic1 = {'name':'liang','age':21,'hobby':'python'}
  # PoP:有返回值,按键去删
dic1.pop('age')
print(dic1)
# 没有键则报错
dic1.pop('weight')
print(dic1)
# 删除一个不知道有没有的键,若有则显示键值,若没有则显示返回值None(返回值可设置)
print(dic1.pop('name',None))
  # popitem:随机删除,有返回值,元组里边是删除键值,3.6默认删最后一个。
dic1.popitem()
print(dic1)
  # clear:清空字典
dic1.clear()
print(dic1)
  # del  删除键值对,若没有则报错
del dic1['name']
print(dic1)
 # 字典的改
dic1 = {'name':'liang','age':21,'hobby':'python'}
# 覆盖就是改的一种
'''
dic1['age'] = 16
'''
# update:覆盖添加
dic2 = {'name':'fan','weight':'70'}
dic2.update(dic1) # 没有的添加,有的不改变
print(dic1)
print(dic2)
# 字典的查
'''dic1 = {'name':'liang','age':21,'hobby':'python'}
print(dic1.keys(),type(dic1.keys()))  #字典的键
print(dic1.values()) # 字典的值
print(dic1.items())  # 字典元组里的键值

# 字典的查 keys:字典的键循环:
for i in dic1:  # 什么都不写默认的是键循环
    print(i)
for i in dic1.keys():
    print(i)
    
# 字典的查 values:字典的值循环
for i in dic1.values():
    print(i)
    
# 字典的查items : 打印元组,元组内为键
for i in dic1.items():
    print(i)
# 字典的查 打印元组,只显示键值
for k,v in dic1.items():  
    print(k,v)

# 直接查键值
v1 = dic1['name']
print(v1)
# 直接查键值 未找到报错
v2 = dic1['name2']
print(v2) 
# 直接查键值 未找到显示你设置的字符,默认为None
s = dic1.get('name1','没有这个键')
print(s)
 '''
# 穿插一个面试题'''a,b = 1,2print(a,b) # 一行代码转换a b 的值a = 1b = 2a,b = b,aprint(a,b)# a,b = [1,2],[3,4] 以最小单位为对应对象a,b = [1,2]  print(a,b)'''

 

5、字典的嵌套

 # 字典的嵌套
dic = {
    'name':['jingwen','xiaoC','liangliang'],
    'py9':{
        'time':'2017',
        'add':'yima',
        'relation':'brother'
    },
    'age':'18'
}
# 更改年龄
dic['age'] = 21
print(dic)
#  'name'后加一个日天
dic['name'].append('日天')
print(dic)
#更改'xaioC'为大写
dic['name'][1] = dic['name'][1].upper()
print(dic)
#对py9增加一个键值对 female:1
dic['py9']['female'] = 1
print(dic)
# 例题:测出字符串里整数的个数,如:sdfasdf123sdf324sdf35
# isalpha用法:
'''如果字符串是字母字符串,则返回true,否则返回false,
如果字符串中的所有字符都是字母,那么字符串就是字母。             
字符串中至少有一个字符。'''
info = input('>>>')
for i in info:
    if i.isalpha():
        info = info.replace(i," ")
l = info.split()
print(len(l))

 

6、作业:

              # 作业
    # 1,有如下变量(tu是个元祖),请实现要求的功能。
tu= ("alex",[11,22,{"k1":'V1',"k2":["age","name"],"k3":(11,22,33)},44])
# a.讲述元祖的特性。
# b.请问tu变量中的第一个元素 “alex” 是否可被修改?。
# c.请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素"Seven" 。
# d.请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven" 。

    # 2,字典 dic,
dic= {"k1":"v1","k2":"v2","k3":[11,22,33]}
#a.请循环输出所有的key
#b.请循环输出所有的value.
#c.请循环输出所有的key和value.
#d.请在字典中添加一个键值对,"k4": "v4",输出添加后的字典。
#e.请在修改字典中“k1” 对应的值为"alex",输出修改后的字典。
#f.请在k3对应的值中追加一个元素44,输出修改后的字典。
#g.请在k3对应的值的第1个位置插入个元素18,输出修改后的字典。

    # 3、元素分类.
#有如下值 li = [11,22,33,44,55,66,77,88,99,90],
# 将所有大于66的值保存至字典的第一个key中。
# 将小于66的值保存至第二个key的值中。
# 即: {'k1': 大于66的所有值列表,'k2':小于66的所有值列表}

    # 4、输出商品列表,用户输入序号,显示用户选中的商品
# 商品li = ["手机","电脑","鼠标垫","游艇"]要求: 
# 1,页面显示序号+商品名称,如:
#       1 手机
#       2 电脑
#       ... ...
# 2,用户输入选择的商品序号,然后打印商品名称
# 3,如果用户输入的商品序号有误,则提示输入有误,并重新输入。
# 4,用户输入Q或者q,退出程序。
    
    # 默写内容:
 # 1)字典的增删改查
 # 2)过滤敏感字符代码的默写

  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!