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 [email protected] pwd1

...

b.提示用户请输入要查看的页面,当用户输入指定的页面,则显示指定数据

注意:
-每页显示10条数据
-用户输入页面是非10进制数字,则提示输入内容格式错误


猜你喜欢

转载自www.cnblogs.com/mypython2018/p/9658109.html