0004-20180422-自动化第五章-python基础学习笔记
内容回顾:
1.数据类型
2.for和while循环
continue
break
#如下循环将怎么打印结果?
for i in range(1,10):
print(i)
for i in range(10,20):
print(i)
#如下循环将怎么打印结果?----结果只打印1
for i in range(1,10):
print(i)
break
for i in range(10,20):
print(i)
#如下循环将怎么打印结果?----只打印1,10-19
for i in range(1,10):
print(i)
for i in range(10,20):
print(i)
break
#如下循环将怎么打印结果?----1,10;2,10;...9,10结束
for i in range(1,10):
print(i)
for i in range(10,20):
print(i)
break
#如果需要打印1,10,2---如何实现
flag = False
for i in range(1,10):
print(i)
if flag:
break
for i in range(10,20):
print(i)
flag = True
break
#使用continue########################
#如下循环将怎么打印结果?----只打印1-9 ,第二个for循环不会执行
for i in range(1,10):
print(i)
continue
for i in range(10,20):
print(i)
######################################
#如下循环将怎么打印结果?---- 只打印1-9 ,第二个for循环的结果不会被打印
for i in range(1,10):
print(i)
for i in range(10,20):
continue
print(i)
#for 和while一起循环,但while将进行永久无限循环
for i in range(1, 10):
print(i)
while True:
print(i)
#range循环嵌套##################
#如下循环将怎么打印结果?1,1-9;2,2-9 ...9,9
for i in range(1,10):
print(i)
for j in range(i,10):
print(j)
#如下循环将怎么打印结果?1,10-2;2,10-3...9,10
for i in range(1,10):
print(i)
for j in range(10,i,-1):
print(j)
###################################
3.编码
ascii - 8
unicode - 16,32
utf-8 -8~32
gbk -16
4字符串格式化
- “asdf%s,sdfsdf%d" %('11',4)
- “asdf%s,sdfsdf" %'11' #只一个时,可以不用括号
- “asdf%s,sdfsdf%%" %'11' #如果需要显示百分号,需要两个%
- 占位符用在变量后面也可以进行格式化
tpl = "我叫%sfdf"
name = tpl %('骑兵',)
name = tpl %('步兵',)
5.变量
name = 'xxx'
#不能使用py已经使用的内置名称作为变量名称,如list,str,tuple ,dict,bool,int等
6.条件语句
if xxx:
pass
elif xxxx:
pass
else:
pass
7. 长度
len(xxx)
8.索引操作
str:
v = "xxxx"
v[0]
tuple:
list
dict: #无序
9. 运算符
- 除法py2和py3的区别
- 字符串相乘
- 字符串相加
- += -=
- or and 顺序(如果第一个为True,并且第一个运算符为or,后面不用再看了)
- in ,not in
dic = {
'k1': 'v1',
'k2': 'v2'
}
li = [11,22,33,44]
#1.列表,查看是否存在其中
if 11 in li :
pass
#2.字典,查看key是否在其中
"k1" in dic
for item in dic:
print(item)
for k in dic.keys():
print(k)
if "k1" in dic:
pass
#3.字典, 查看value是否存在
v1 in dic.values():
#4.字典循环实现#3的需求,检查"v1"是否在字典 dic = {'k1': 'v1','k2': 'v2'}里
val = "v1"
result = False
for item in dic.values():
if item == val:
result = True
break
print(result)
10. py2,py3区别
-
raw_input()
input()
-
range
xrange
range
-
ascii(#-*-encoding:utf-8 -*-)
utf-8
-
print "alex" py2支持
print(alex) py2支持,py3支持
11. 字符串功能
- 大小写
- 首字母大写
- 分割
split('*',1)
分割成已的如两部分时,可以这样:
a,b = split('*',1)
- 去除空白
- 替换
- "xx".join(["11","22","abc"]) #可迭代的对象#列表中元素必须是字符串
- 是否是10进制数
判断字符串是否以XX开头:
方法1:
name = "aleX"
if name[0:2] == 'al':
pass
else:
pass
方法2:
name = "aleX"
if name.startswith('al'):
pass
else:
pass
判断字符串是否以XX结尾:
name = "aleX"
if name.endswith('al'):
pass
else:
pass
字符串的---子序列:
msg = "asdfbgnekimkg"
#单独,称为字符 如 a 或e等
#多个字符组成并且属于这个字符串的字符一起称为----称为子序列 如asdf等
12.列表
- 追加
- 插入,可指定位置
- 反转
- 长度
- for 循环
- 索引的删除 # del li[0]
#切片和步长 li[0:3:1]
嵌套:[
1,[33,44],"xxx"
]
#补充####################:
li = [11,22,33,44,66]
1.索引为奇数的值,删除
#补充:删除列表元素时,删除后会影响列表长度,从而使得索引取值时,容易出现错误
#方法1:
li = [11, 22, 33, 44, 66]
new_list = []
for i in range(0,len(li)):
if i%2 == 0:
new_list.append(li[i])
li = new_list
print(li)
#方法2:---从后面往前面找奇数
li = [11, 22, 33, 44, 66]
for i in range(len(li)-1,-1,-1):
if i%2 == 1:
del li[i]
print(li)
2.切片+步长也可以删除元素
li = [11, 22, 33, 44, 66]
#del li[0:4]
del li[0:5:2]
print(li)
13.tuple
- 元素,不可变
- a = (1,) #元组中一个元素时,记得加上逗号,加上逗号为元组类型,如果元素为数字不加逗号,则为int类型;如果元素为字符串,不加逗号为str类型
val = (1,)
print(val,type(val))
val = ("aa",)
print(val,type(val))
14.字典
dic = {'k1':"v1",'k2':"v2"}
data = dic.get('kk1') #None
len
dic['k1'] = "v1"
for
val = "v1" in dic # False
#出错点:
#题: dic = {'k1': 'v1','k2': 'v2,'k11': 'v11',} 把key= 'k1’的键值对删除
del dic['k1']
#题: dic = {'u1': 'v1','k2': 'v2,'k3': 'v3',} 把key= k的键值对删除
#不要在循环字典的过程中,修改当前字典大小
方法1:
dic_key_list = []
for key in dic: #只循环
dic_key_list.append(key)
#print(dic_key_list)
for row in dic_key_list: #循环其他内容,然后修改字典
if 'k' in row:
#print(row)
del dic[row]
print(dic)
15. int
- 最少用多少个二进制位表示
16. 字符串和布尔值相互转化
- v = "123"
val = int(v)
v = 123
val = str(str)
int -数字永远不可能与列表和元组互相转换
str -字符串与列表和元组的关系
字符串转换为列表和元组
v = "sdfafdffeff132344"
val = list(v) #默认会循环所有字符串
val = tuple(v) #默认会循环所有字符串
列表与元组互相转换:
list
v = (1,2,3)
val = list(v)
tuple
v = [11,22,33,44]
v = tuple(v)
列表或元组换为字符串:
列表转换为字符串:
v = ['礼券','龙哥','老头']
val = str(v) #"['礼券','龙哥','老头']" ----默认此方法不行---可使用jion
--->
val = "".join(v)
print(val) #"礼券龙哥老头"
元组转换为字符串:
v = ('礼券','龙哥','老头')
val = "".join(v)
print(val) #"礼券龙哥老头"
17.布尔值
True,False
False: 0,None,"",{},[],()
#备注:其他语言中,null相当于py中的None
#null 指指向一块空的内存,所有创建的空的对象都执行此空间----null,py中的None功能类似此
#################
#################
第五章复习课程笔记:
内容回顾:
1.数据类型
2.for和while循环
continue
break
#如下循环将怎么打印结果?
for i in range(1,10):
print(i)
for i in range(10,20):
print(i)
#如下循环将怎么打印结果?----结果只打印1
for i in range(1,10):
print(i)
break
for i in range(10,20):
print(i)
#如下循环将怎么打印结果?----只打印1,10-19
for i in range(1,10):
print(i)
for i in range(10,20):
print(i)
break
#如下循环将怎么打印结果?----1,10;2,10;...9,10结束
for i in range(1,10):
print(i)
for i in range(10,20):
print(i)
break
#如果需要打印1,10,2---如何实现
flag = False
for i in range(1,10):
print(i)
if flag:
break
for i in range(10,20):
print(i)
flag = True
break
#使用continue########################
#如下循环将怎么打印结果?----只打印1-9 ,第二个for循环不会执行
for i in range(1,10):
print(i)
continue
for i in range(10,20):
print(i)
######################################
#如下循环将怎么打印结果?---- 只打印1-9 ,第二个for循环的结果不会被打印
for i in range(1,10):
print(i)
for i in range(10,20):
continue
print(i)
#for 和while一起循环,但while将进行永久无限循环
for i in range(1, 10):
print(i)
while True:
print(i)
#range循环嵌套##################
#如下循环将怎么打印结果?1,1-9;2,2-9 ...9,9
for i in range(1,10):
print(i)
for j in range(i,10):
print(j)
#如下循环将怎么打印结果?1,10-2;2,10-3...9,10
for i in range(1,10):
print(i)
for j in range(10,i,-1):
print(j)
###################################
3.编码
ascii - 8
unicode - 16,32
utf-8 -8~32
gbk -16
4字符串格式化
- “asdf%s,sdfsdf%d" %('11',4)
- “asdf%s,sdfsdf" %'11' #只一个时,可以不用括号
- “asdf%s,sdfsdf%%" %'11' #如果需要显示百分号,需要两个%
- 占位符用在变量后面也可以进行格式化
tpl = "我叫%sfdf"
name = tpl %('骑兵',)
name = tpl %('步兵',)
5.变量
name = 'xxx'
#不能使用py已经使用的内置名称作为变量名称,如list,str,tuple ,dict,bool,int等
6.条件语句
if xxx:
pass
elif xxxx:
pass
else:
pass
7. 长度
len(xxx)
8.索引操作
str:
v = "xxxx"
v[0]
tuple:
list
dict: #无序
9. 运算符
- 除法py2和py3的区别
- 字符串相乘
- 字符串相加
- += -=
- or and 顺序(如果第一个为True,并且第一个运算符为or,后面不用再看了)
- in ,not in
dic = {
'k1': 'v1',
'k2': 'v2'
}
li = [11,22,33,44]
#1.列表,查看是否存在其中
if 11 in li :
pass
#2.字典,查看key是否在其中
"k1" in dic
for item in dic:
print(item)
for k in dic.keys():
print(k)
if "k1" in dic:
pass
#3.字典, 查看value是否存在
v1 in dic.values():
#4.字典循环实现#3的需求,检查"v1"是否在字典 dic = {'k1': 'v1','k2': 'v2'}里
val = "v1"
result = False
for item in dic.values():
if item == val:
result = True
break
print(result)
10. py2,py3区别
-
raw_input()
input()
-
range
xrange
range
-
ascii(#-*-encoding:utf-8 -*-)
utf-8
-
print "alex" py2支持
print(alex) py2支持,py3支持
11. 字符串功能
- 大小写
- 首字母大写
- 分割
split('*',1)
分割成已的如两部分时,可以这样:
a,b = split('*',1)
- 去除空白
- 替换
- "xx".join(["11","22","abc"]) #可迭代的对象#列表中元素必须是字符串
12.列表
- 追加
- 插入,可指定位置
- 反转
- 长度
- for 循环
- 索引的删除 # del li[0]
#切片和步长 li[0:3:1]
嵌套:[
1,[33,44],"xxx"
]
#补充####################:
li = [11,22,33,44,66]
1.索引为奇数的值,删除
#补充:删除列表元素时,删除后会影响列表长度,从而使得索引取值时,容易出现错误
#方法1:
li = [11, 22, 33, 44, 66]
new_list = []
for i in range(0,len(li)):
if i%2 == 0:
new_list.append(li[i])
li = new_list
print(li)
#方法2:---从后面往前面找奇数
li = [11, 22, 33, 44, 66]
for i in range(len(li)-1,-1,-1):
if i%2 == 1:
del li[i]
print(li)
2.切片+步长也可以删除元素
li = [11, 22, 33, 44, 66]
#del li[0:4]
del li[0:5:2]
print(li)
13.tuple
- 元素,不可变
- a = (1,) #元组中一个元素时,记得加上逗号,加上逗号为元组类型,如果元素为数字不加逗号,则为int类型;如果元素为字符串,不加逗号为str类型
val = (1,)
print(val,type(val))
val = ("aa",)
print(val,type(val))
14.字典
dic = {'k1':"v1",'k2':"v2"}
data = dic.get('kk1') #None
len
dic['k1'] = "v1"
for
val = "v1" in dic # False
#出错点:
#题: dic = {'k1': 'v1','k2': 'v2,'k11': 'v11',} 把key= 'k1’的键值对删除
del dic['k1']
#题: dic = {'u1': 'v1','k2': 'v2,'k3': 'v3',} 把key= k的键值对删除
#不要在循环字典的过程中,修改当前字典大小
方法1:
dic_key_list = []
for key in dic: #只循环
dic_key_list.append(key)
#print(dic_key_list)
for row in dic_key_list: #循环其他内容,然后修改字典
if 'k' in row:
#print(row)
del dic[row]
print(dic)
========================================
========================================
第五章练习题:
1、执行pyth脚本的两种方式
2、简述位、字节的关系
3、简述ascii、unicode、utf-8、gbk的关系
4、请写出“李杰”分别用utf-8和gbk编码所占的位数
5、pyth单行注释和多行注释分别用什么?
6、声明变量注意事项有哪些?
7、如果有一下变量n1=5,请使用int的提供的方法,得到该变量最少可以用多少个二进制表示?
用bit.lenth
8、布尔值分别有什么?
9、阅读代码,请写出执行的结果
a = "alex"
b = a.capitalize()
print(a)
print(b)
请写出输出结果
10、写代码,有如下变量,请按要求事项每个功能
name = “ aleX”
a.移除name变量对应的值两边的空格,并输出移除后的内容
strip
b.判断name变量对应的值是否以"al"开头,并输出结果
方法1:通过索引取前两个值
方法2:startswith
c. 判断name变量对应的值是否以"X"结尾,并输出结果
endswith
d.将name变量对应的值中的"l"替换为"p",并输出结果
replace
e.将name变量对应的值根据"l"分割,并输出结果。
split
f.请问,上一题e分割之后得到值是什么类型(可选)?
列表
g.将name变量对应的值变大写,并输出结果
upper
h.将name变量对应的值变小写,并输出结果
lower
i.请输出name变量对应的值的第2个字符?
[0]
j.请输出name变量对应的值的前3个字符?
[0:3]
k.请输出name变量对应的值的后2个字符?
[-2:]
l.获取子序列,仅不包含最后一个字符。如oldboy 则获取oldbo; root 则获取roo
[0:-1]
11、写代码:使用while和for循环分别打印字符串每个元素。
for循环:
name = "alex"
for v in name
print(v)
while循环:
name = "alex"
num = 0
while num < len(name):
print(name[num])
num += 1
for 和range一起实现:
name = "alex"
for v in rang(0,len(name)):
print(name[v])
12、请用代码实现:
li = ['alex','eric','rain']
利用下划线将列表的每一个元素拼接成字符串“alex_eric_rain”
"_".join(li)
13、实现一个整数加法计算器:
如:
content = input('请输入内容:') #如用户输入: 5+ 9 或5 + 9,然后分割再进行
content = input('>>>') # 5 + 9
a,b = content.split('+')
a = int (a)
b = int (b)
print(a+b)
14、计算用户输入的内容中有几个整数?
如:
content = input('请输入内容:') #如 asduiaf87123jkjsfd-213928
content = input('>>>') #asduiaf87123jkjsfd-213928
v = "asduiaf87123jkjsfd-213928"
val = 0
for count in v:
if count.isdecimal():
val +=1
print(val)
15、简述int 和9等数字以及str 和"xxoo"等字符串的关系?
9是int类的对象
"xxoo"是str类的对象
16、制作趣味模板程序
需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意实现
如:敬爱可亲的XXX,最喜欢在XXX地方干XXX
17、制作随机验证码,不区分大小写。
流程:
-用户执行程序
-给用户显示需要输入的验证码
-用户输入的值
用户输入的值和显示的值相同时显示正确信息,否则继续生成随机验证码继续等待用户输入随机验证码
18、开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符:
如敏感词列表 li = ["苍老师","东京热"],则将用户输入内容中出向任意敏感字符替换为***
改变版---扩展题:
#如果用户输入的内容中存在任意关键字,则提示用户重新输入
#否则,打印结束
li = ["老狗","成绩","海角"]
#has_key为True表示有关键字,为False表示没有关键字
while Ture:
has_key = False
content = input('>>>') #我叫老狗,我爱海角
#循环所有关键字,查看是否内容中存在?
for k in li:
if k in content:
print('请重新输入:')
has_key = Ture
break
if has_key == False:
break
19、查找列表中元素,移除每个元素的空格,并查找以a或A开头,并且以c结尾的所有元素。
li = ["alec","aric","Alex","Tony","rain"]
tu = ("alec","aric","Alex","Tony","rain")
dic = {'k1':'alex','k2':'aric','k3':'Alex','k4':'Tony'}
li = ["alec","aric","Alex","Tony","rain"]
for item in li:
item = item.strip()
#if item[0] == "a" or item[0] == "A" and item[-1] == "c": #---此行为错误写法
正确写法:
if (item[0] == "a" or item[0] == "A") and item[-1] == "c":
或者if item[-1] == "c" and item[0] == "a" or item[0] == "A"
或者使用关键字startswith或endswith
pass
20、写代码,有如下列表,按照要求事项每一个功能
li = ['alex','eric','rain']
a.计算列表长度并输出
len(li)
b. 列表中追加元素"seven",并输入添加后的列表
li = ['alex','eric','rain']
v = li.append('seven')
print(v) #None
print(li) #['alex','eric','rain','seven']
c.请在列表的第1个位置插入元素"Tony",并输出添加后的列表
li = ['alex','eric','rain']
v = li.insert()
d.请修改列表第2个位置的元素为"Kelly",并输出修改后的列表
f.请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
g.请删除列表中的第3个元素,并输出删除元素后的列表
h.请删除列表中的第2至4个元素,并输出删除元素后的列表
i.请将列表所有的元素翻转,并输出翻转后的列表
j.请使用while , len输出列表的索引值,如:0,1,2,3,4..
k.请使用for循环输出列表的所有元素
21.写代码,有如下列表,请按照功能要求实现每一个功能
li = ["hello",'seven',["mon",["h","kelly"],'all'],123,446]
a.请根据索引输出"kelly"
print(li[2][1][1])
b.请使用索引找到'all'元素并将其修改为"ALL",如:li[0][1][9]...
li[2][2] = li[2][2].upper()
print(li)
22、写代码,有如下元组,按照要求实现每一个功能
tu = ('alex','eric','rain')
a.计算元组长度并输出
b.获取元组的第2个元素,并输出
c.获取元组的第1-2个元素,并输出
d. 请使用for输出元组的元素
e.请使用while ,len 输出元组的索引值, 如0,1,2,3
23.有如下变量,请实现要求的功能
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”
26、字典
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,输出修改后的字典
24、元素分类
有如下集合[11,22,33,44,55,66,77,88,99],将大于66的值保存至字典的第一个key中,将小于66的保存至字典的第二个key中
即:{'k1':大于66的所有的列表,'k2':小于66的所有的列表值}
li = [11,22,33,44,55,66,77,88,99]
dic = {'k1':[],'k2':[]}
for item in li:
if item > 66:
dic.get('k1').append(item)
elif item < 66:
dic.get('k2').append(item)
print(dic)
#24扩展:
#题目:
li = [11,22,33,44,55,66,77,88,99]
dic = {}
#在循环中创建分别创建k1和k2,并将大于66的作为k1的值,小于66的作为k2的值
#######
for item in li:
if item > 66:
if 'k1' not in dic:
dic['k1'] =[item,]
else:
dic['k1'].append(item)
#print(dic)
elif item < 66:
if 'k2' not in dic:
dic['k2'] = [item, ]
else:
dic['k2'].append(item)
#print(dic)
print(dic)
25.输出商品列表,用户输入序号,显示用户选中的商品
商品 li = ['手机','电脑','鼠标垫','游艇']
要求:页面显示 序号+ 商品名称, 如:
1 手机
2 电脑
...
26.列举字符串,数字中布尔值是False的所有值
27.有两个列表
l1 = [11,22,33]
l2 = [22,33,44]
a.获取内容相同的元素列表
b.获取l1中有,l2中没有的元素列表
c.获取l2中有,l1中没有的元素列表
d.获取l1和l2中内容都不同的元素
28、购物车
功能要求:
要求用户输入自己拥有的资产,如2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于资产,提示账号余额不足,否则,购买成。
goods =[
{"name":"电脑","price":1999}
{"name":"鼠标","price":10}
{"name":"游艇","price":20}
{"name":"美女","price":998}
]
39、分页显示内容
a.通过for循环创建301条数据,数据类型不限,如:
alex-1 alex1@live.com pwd1
...
b.提示用户请输入要查看的页面,当用户输入指定的页面,则显示指定数据
注意:
-每页显示10条数据
-用户输入页面是非10进制数字,则提示输入内容格式错误
=====================================脚本===================================
复习相关脚本:
1 """ 2 #4 字符串格式化: 3 tpl = "我叫%s" 4 name = tpl %('骑兵',) 5 #name = tpl %('步兵',) 6 print(name) 7 """ 8 9 10 11 #3.for循环 12 13 """ 14 #如下循环将怎么打印结果? 15 for i in range(1,10): 16 print(i) 17 for i in range(10,20): 18 print(i) 19 """ 20 21 """ 22 #如下循环将怎么打印结果?----结果只打印1 23 for i in range(1, 10): 24 print(i) 25 break 26 for i in range(10, 20): 27 print(i) 28 """ 29 30 """ 31 #如下循环将怎么打印结果?----只打印1,10-19 32 for i in range(1,10): 33 print(i) 34 for i in range(10,20): 35 print(i) 36 break 37 """ 38 39 """ 40 #如下循环将怎么打印结果?----1,10;2,10;...9,10结束 41 for i in range(1,10): 42 print(i) 43 for i in range(10,20): 44 print(i) 45 break 46 """ 47 48 49 """ 50 #如果需要打印1,10,2---如何实现 51 flag = False 52 for i in range(1,10): 53 print(i) 54 if flag: 55 break 56 for i in range(10,20): 57 print(i) 58 flag = True 59 break 60 61 """ 62 63 """ 64 #如下循环将怎么打印结果?----只打印1-9,第二个for循环不会执行 65 for i in range(1, 10): 66 print(i) 67 continue 68 for i in range(10, 20): 69 print(i) 70 """ 71 72 """ 73 #如下循环将怎么打印结果?---- 只打印1-9 ,第二个for循环的结果不会被打印 74 for i in range(1, 10): 75 print(i) 76 for i in range(10, 20): 77 continue 78 print(i) 79 """ 80 81 """ 82 #for 和while一起循环,但while将进行永久无限循环 83 for i in range(1, 10): 84 print(i) 85 while True: 86 print(i) 87 """ 88 89 """ 90 for i in range(1,10): 91 print(i) 92 for j in range(i,10): 93 print(j) 94 """ 95 96 """ 97 for i in range(1,10): 98 print(i) 99 for j in range(10,i,-1): 100 print(j) 101 """ 102 103 """ 104 #字典, 查看key是否存在 105 dic = {'k1': 'v1','k2': 'v2'} 106 "k1" in dic 107 for k in dic.keys(): 108 print(k) 109 if "k1" in dic.keys(): 110 print("k1") 111 """ 112 113 114 """ 115 #字典, 查看value是否存在 116 dic = {'k1': 'v1','k2': 'v2'} 117 "v1" in dic 118 for v in dic.values(): 119 print(v) 120 if "v1" in dic.values(): 121 print("v1") 122 """ 123 124 """ 125 字典循环实现上述的需求,检查"v1"是否在字典 126 dic = {'k1': 'v1','k2': 'v2'} 127 val = "v1" 128 result = False 129 for item in dic.values(): 130 if item == val: 131 result = True 132 break 133 print(result) 134 135 """ 136 137 #12 138 # 补充####################: 139 # 列表中索引为奇数的值,删除 140 141 """ 142 #方法1: 143 li = [11, 22, 33, 44, 66] 144 new_list = [] 145 for i in range(0,len(li)): 146 if i%2 == 0: 147 new_list.append(li[i]) 148 li = new_list 149 print(li) 150 """ 151 152 """ 153 #方法2:---从后面往前面找奇数 154 li = [11, 22, 33, 44, 66] 155 for i in range(len(li)-1,-1,-1): 156 if i%2 == 1: 157 del li[i] 158 print(li) 159 """ 160 161 """ 162 #2.切片+步长也可以删除元素 163 li = [11, 22, 33, 44, 66] 164 #del li[0:4] 165 del li[0:5:2] 166 print(li) 167 168 """ 169 170 171 # 值为奇数的值,删除 172 173 #元组 174 """ 175 val = ("aa",) 176 print(val,type(val)) 177 """ 178 179 180 #字典 181 """ 182 #取字典中不存在的key值时,为none 183 dic = {'k1':"v1",'k2':"v2"} 184 data = dic.get('kk1') 185 print(data) 186 """ 187 188 """ 189 #把key= 'k1’的键值对删除 190 dic = {'k1':"v1",'k2':"v2",'k11':"v11"} 191 del dic['k1'] 192 print(dic) 193 194 """ 195 196 """ 197 #不要在循环字典的过程中修改当前字典大小!!! 198 dic = {'u1':"v1",'k2':"v2",'k3':"v3"} 199 dic_key_list = [] 200 for key in dic: 201 dic_key_list.append(key) 202 #print(dic_key_list) 203 for row in dic_key_list: 204 if 'k' in row: 205 #print(row) 206 del dic[row] 207 print(dic) 208 209 """ 210 211 #16 212 #列表和元组转换为字符串 213 """ 214 #列表转换为字符串 215 v = ['礼券','龙哥','老头'] 216 val = "".join(v) 217 print(val) 218 219 """ 220 221 """ 222 #元组转换为字符串 223 v = ('礼券','龙哥','老头') 224 val = "".join(v) 225 print(val) 226 227 """
练习题相关脚本:
1 """ 2 #20题: 3 #b 4 li = ['alex','eric','rain'] 5 v = li.append('seven') 6 print(v,'test') 7 print(li) 8 """ 9 10 """ 11 #21题 12 #b 13 li = ["hello",'seven',["mon",["h","kelly"],'all'],123,446] 14 li[2][2] = li[2][2].upper() 15 print(li) 16 """ 17 18 """ 19 #24题: 20 li = [11,22,33,44,55,66,77,88,99] 21 dic = {'k1':[],'k2':[]} 22 for item in li: 23 if item > 66: 24 dic.get('k1').append(item) 25 #dic['k1'].append(item) 26 elif item < 66: 27 dic.get('k2').append(item) 28 print(dic) 29 """ 30 31 #24扩展: 32 #题目: 33 li = [11,22,33,44,55,66,77,88,99] 34 dic = {} 35 #在循环中创建分别创建k1和k2,并将大于66的作为k1的值,小于66的作为k2的值 36 ####### 37 for item in li: 38 if item > 66: 39 if 'k1' not in dic: 40 dic['k1'] =[item,] 41 else: 42 dic['k1'].append(item) 43 #print(dic) 44 elif item < 66: 45 if 'k2' not in dic: 46 dic['k2'] = [item, ] 47 else: 48 dic['k2'].append(item) 49 #print(dic) 50 print(dic)