上节课作业:
1、执行python脚本的两种方式
2、阐述位、字节的关系
3、简述ascii unicode utf-8 gbk之间的关系
4、请写出"李杰"分别用utf-8和gbk编码所占的位数
5、python单行注释和多行注释分别用什么?
6、声明变量注意事项有哪些
7、如有一下变量n1=5,请使用int的提供方法,得到该变量最少
bit_length
8、布尔值分别有什么
# "" => 假
# "ab" => 真
# 0 => 假
# 其他 => 真
a="123"
b=int(a)
a=123
b=str(a)
a=123
bool(a)
b="i"
bool(b)
9、阅读代码,请写出执行结果
a="alex"
b=a.capitalize()
print(a)
print(b)
请写出输出结果:
alex
Alex
10、写代码, 有如下变量,请按照要求实现每个功能
name="alex"
a.移除name变量对应的值两边的空格,并输出移除后的内容
v1=name.strip()
print(v1)
b.判断name变量对应的值是否以"al"开头,并输出结果
v2=name.startswith("al")
print(v2)
c.判断name变量对应的值是否以"x"结尾,并输出结果
v3=name.endswith("x")
print(v3)
d.将name变量对应的值中的"l"替换为"p",并输出结果
v4=name.replace("l","p")
print(v4)
e.将name对应的值根据"l"分割,并输出结果
v5=name.split("l")
print(v5)
f.请问上一题中e分割之后得到的值是什么类型?
字符串
g.将name变量对应的值变大写,并输出结果
v6=name.upper()
print(v6)
h.将name变量对应的值变小写,并输出结果
v7=name.lower()
print(v7)
i.请输出name变量对应的值的第二个字符
print(name[1])
j.请输出name变量对应的值的前三个字符
index=0
while index<3:
print(nane[index])
index+=1
21、字符串是否是可迭代对象?如可以使用for循环每一个元素?
for item in name: #只要能执行for循环,就是可迭代对象
print(item)
22、使用代码实现:
a.利用下划线将列表的每一个元素拼接成字符串,li="alexeri"
t="_"
b=t.join(li)
print(b)
b.利用下划线将列表的每一个元素拼接成字符串,li=["alex","eri","rain"]
c=t.join(li)
23、python2中的range和python3中的range的区别
2:
range 立即创建
xrange for循环时才一个一个创建
3:
for循环时才一个一个创建
range(100,1,-1)
24、实现一个整数加法计算器:
如:
content=input("请输入内容:") #如5+9或
v1,v2=content.split('+')
v1=int(v1)
v2=int(v2)
print(v1+v2)
25、计算用户输入的内容中有几个十进制小数?几个字母?
如:
content=input("请输入内容:") #如asduiaf87654321jkl
num1=0
num2=0
for item in content:
if "a"<=item<="z":
num1 +=1
if "0"<=item<="9"
num2+=1
print(num1,num2)
26、简述int和9等数字以及和"xxoo"等字符串的关系+
27、制作趣味模板程序
需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意实现
test="敬爱的{a}最喜欢在{b}地方干{c}"
v=test.format(a=input("名字"),b=input("地点"),c=input("爱好"))
如:敬爱的xxx最喜欢在xxx地方干xxx
28、制作随机验证码
流程:
用户执行程序
给用户显示需要输入的验证码
用户输入的值
用户输入的值和显示的值相同时,否则继续生成随机验证码
29、开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符;
如:"苍老师" "东京热"为***
v="asdadfg"
v=v.replace("s","***")
v=v.replace("a","***")
print(v)
30、制作表格
循环提示用户输入:用户名、密码、邮箱(要求用户输入的长度不超过20个字符,如果)
如果用户输入q或Q表示不再继续输入,将用户输入的内容以表格形式
s=""
while True:
v1=input(">>>")
v2=input(">>>")
v3=input(">>>")
temp="{a} {b} {c}
"
v=temp.format(v1,v2,v3)
s+=v()
break
print(s.expandtabs(20))
list 列表 #类
li=[1,12,9,"age",["是正文","庞麦郎"],"alex"] #对象
#中括号括起来 ,分割每个元素 列表中元素可以是数字、字符串 可无限嵌套列表,布尔值 所有的都能放进去
#一个集合,内部可以放置任何东西
1、列表格式
2、列表可以嵌套任何类型
3、索引取值
print(li[3])
4、切片
print(li[3:5]) 子列表
5、#for循环
#while循环
for item in li:
print(item)
#列表的元素可以被修改
li=[1,12,9,"age",["是正文","庞麦郎"],"alex"]
6、索引修改和删除
li[1]=120
print(li)
li[1]=[11,22,33,44]
print(li)
7、切片方式修改和删除
li[1:3]=[120,90]
print(li)
#删除 第一种方式
del li[1]
print(li)
del li[1:3]
print(li)
in操作
li=[1,12,9,"age",["是正文","庞麦郎"],"alex"]
v=12 in li
print(v)
9、操作
li=[1,12,9,"age",["是正文",["19",10],"庞麦郎"],"alex"]
li[4][1][0]
li=[1,12,9,"age",["是正文",["19",10],"庞麦郎"],"alex",True]
a="123"
int(a)
a=123
str(a)
#字符串转换列表 内部使用for循环
s="poiuytrewqasdfghjkl"
new_li=list(s)
print(new_li)
#列表转字符串 需要自己写for循环 既有数字又有字符串
li=[11,22,33,"123","alex"]
s=""
for i in li:
s=s+str(i)
print(s)
列表中只有字符串 直接使用字符串join方法
li=["123","alex"]
v="".join(li)
print(v)
li=[11,22,33,44]
#参数
#v1=li.append(5)
#print(v1) #none
#print(li) #[11,22,33,44,5]
1、#原来值最后追加
li.append(5)
li.append("alex")
li.append([1234,2323])
print(li)
2 清空列表
li.clear()
print(li)
3 copy 浅拷贝
li.copy()
v=li.copy()
print(v)
4计算元素出现的次数
v=li.count(22)
print(v)
5扩展原来列表
li=[11,22,33,44]
li.extend([9898,"不得了"])
print(li)
li.extend("不得了")
print(li)
6根据值获取当前值索引位置(左边优先)
li.index(33)
print(li)
7在指定索引位置插入
li.insert(0,99)
print(li)
8默认删除某个值(指定索引或者默认最后一个)并获取删除的值
v=li.pop()
print(li)
print(v)
v=li.pop(1)
print(li)
print(v)
9删除列表中的指定值,左边优先
li.remove(33)
print(li)
#pop remove del li[0] del[7:9] clear
10将当前列表进行反转
li=[11,22,33,22,44]
li.reverse()
print(li)
11列表的排序
li=[11,44,22,33,22]
li.sort() #从小到大排
print(li)
li.sort(reverse=true) #从大到小排
补充:字符串创建之后,不可修改
v="alex"
v=v.replace("e","el")
print(v)
li=[11,11,33,44]
li[0]=999
s="alex"
s[0]="E" # 不可修改
列表,有序 元素可以被修改
列表
list
li=[111,22,33,44]
元组 元素不可被修改,不能增加或者删改
tuple
1、书写格式
tu=(111,22,33,44,) #一般写元组的时候,推荐后面加个逗号
2#索引
v=tu[0]
print(v)
3#切片
v=tu[1:3]
print(v)
4可以for循环 可迭代对象
for item in tu:
print(item)
5转换
s="asfgg"
li=["asdf",1231]
tu=(123,123,"asdf")
v1=tuple(s)
print(v1)
v2=tuple(li)
print(v2)
v3=list(tu)
print(v3)
v4="".join(tu) #只含有字符串
自己写for循环
li.extend((11,22,33))
6#元组的一级元素不可修改
tu=(111,"alex",(11,22),[(33,44)],True, 33,44)
tu[0] #元素有序
tu[3][0][0] #取33
tu[3][0]=567 #可以
print(tu)
方法
count(22) 获取指定元素在元组中的次数
index(22)
#1字典结构
dict
info={
"k1":"v1", #键值对
"k2":"v2"
}
#2 字典的value可以是任何值
info={
"k1":18
"k2":True
"k3":[
11,
22'
33'
{
"kk1":"vv1",
"kk2":"vv2"
"kk3":(11,22,33,44)
}
]
"k4":( )
}
print(info)
#3列表、字典不能作为字典的key
info={
1:"asdf",
"k1":"asdf",
False:"123",
#[11,22]:123 不行
( 11,22):123
}
print(info)
#4字典无序
info={
"k1":18
"k2":True
"k3":[
11,
[],
()
22'
33'
{
"kk1":"vv1",
"kk2":"vv2"
"kk3":(11,22,33,44)
}
]
"k4":( )
}
5索引方式找到指定元素
v=info["k1"]
print(v)
v=info["k3"][5]["kk3"][0] #11
#6字典支持del删除
del info["k1"]
print(info)
del info["k3"][5]["kk1"]
#7字典支持for循环
for item in info.keys():
print(item) #输出key
for item in info.values():
print(item) #输出值
for item in info.keys():
print(item,info[item])
相当于
for k,v in info.items():
print(k,v)
clear
copy
fromkeys
dic={
"k1":"v1",
"k2":"v2"
}
#根据序列,创建字典,并指定统一的值
v=dict.fromkeys(["k1",123,"999"],123)
print(v) #{123:123,"k1":123,"999":123}
v1=dic["k1"]
print(v1)
#根据key获取值,key不存在时,可以指定默认值(None)
v2=dic.get("k1",11111)
print(v2)
#删除并获取值
v=dic.pop("k1",90)
print(dic,v)
k,v=dic.popitem()
print(k,v)
#设置值,
如果已存在,就不设置,获取当前key对应的值
不存在,设置,获取当前key对应的值
v=dic.setdefault("k1","123")
print(dic,v)
#
dic.update({"k1":"111111","k3":"123"})
print(dic)
dic.update(k1=123,k3=456,k5="asdf")
print(dic)
keys()
values()
items()
get
update
整理
一、数字
int()
二、字符串
replace
find
join
strip
upper
lower
startswith
split
format
template="i am {name} age:{age}"
v=template,format(name="alex",age=19)
v=template,format(**{"name":"alex","age":19})
三、列表
append
extend
insert
索引 切片 循环
四、元组
忽略
索引 切片 循环 一级元素不能修改
五、字典
get
update
keys
items
values
for,索引
dic={
"k1":"v1"
}
v="k1" in dic
print(v)
v="v1" in dic.values()
print(v)
六、布尔值
0 1
bool()
None "" () {} [] 0 ==False
2018-08-15