str
1 格式化输出
%法
第一种 %s+tuple %d+tuple
name = input('请输入你的姓名:')
age = input('请输入你的年龄:')
hobby = input('请输入你的爱好:')
msg = '我叫%s,今年%d岁,爱好%s' % (name,int(age),hobby)
第二种 %(name)+dict
dic = {'name':'老男孩','age':51,'hobby':'无所谓'}
msg = '我叫%(name)s,今年%(age)d岁,爱好%(hobby)s' % dic
print(msg)
note在格式化输出中单纯的显示% 用%% 解决
name = input('请输入你的姓名:')
age = input('请输入你的年龄:')
msg = '我叫%s,今年%d岁,学习进度为1%%' % (name,int(age))
print(msg)
{}+format
三种用法
第一种用法:{}+ format +()
s = '我叫{},今年{},爱好{}'.format('MT',18,'母牛')
print(s)
第二种用法:{num}+format+()
s = '我叫{0},今年{1},爱好{2},我依然叫{0},今年还是{1}'\
.format('MT',18,'母牛')
print(s)
第三种 键值对:{name}+format+dict
s = '我叫{name},今年{age},爱好{hobby}'.format(age=18, name='MT', hobby='闷儿')
print(s)
2 str 索引与切片
索引与切片 s[起始索引:截止索引:步长]
s =' 我喜欢python'
索引
s1 = s[0]
print(s1)
s2 = s[2]
print(s2)
s3 = s[-1]
print(s3)
切片 顾头不顾腚
s4 = s[0:3]
print(s4)
s41 = s[:3]
print(s41)
s5 = s[3:7]
print(s5)
s6 = s[:]
print(s6)
步长
s7 = s[:5:2]
print(s7)
s8 = s[:7:3]
print(s8)
反向步长
s7 = s[-1:-5:-1]
print(s7)
常用操作方法
*** 首字母大写,其他字母小写
s = 'python'
s1 = s.capitalize()
print(s1)
***全部大写,全部小写
s2 = s.upper()
s3 = s.lower()
print(s2,s3)
code = 'aeQu'.upper()
your_code = input('请输入验证码').upper()
if your_code == code:
print('验证码输入成功')
* 居中center
s = 'pthon'
s4 = s.center(30)
print(s4)
s4 = s.center(30,'*')
print(s4)
**大小写翻转
s5 = s.swapcase()
print(s5)
s = 'woshiwangqingbin'
每个单词的首字母大写(非字母隔开)
s6 =s.title()
print(s6)
***判断以什么为开头,以什么为结尾。
s = 'wangqingbin'
startswith endswith()
s7 = s.startswith('w')
s71 = s.startswith('wq')
s72 = s.startswith('wang')
s73 = s.startswith('wangqing')
s74 = s.startswith('q', 4)
print(s74)
print(s7,s71,s72,s74)
***去除首尾的 空格,换行符\n,tab \t
去除左边的空格,换行符,tab lstrip()
去除右边的空格,换行符,tab rstrip()
去除两边的空格strip()
s = ' wangqingbin '
s = '\nwangqingbin\t'
print(s)
print(s.strip())
print(s.lstrip())
print(s.rstrip())
name = input('请输入用户名:').strip()
if name == 'wangqingbin':
print(666)
s = ',wangqingbin'
print(s.strip(',wang'))
*** find index 通过元素找索引
find
S.find(sub[, start[, end]]) -> int or Return -1 on failure.
s = 'wang'
print(s.find('w'))
print(s.find('a',3))
print(s.find('x'))
index
raise ValueError on failure
print(s.index('x'))
*** count 寻找元素出现的个数 可切片
s = 'alexex'
print(s.count('e'))
print(s.count('ex'))
***replace 替换
s = ’123王庆斌王庆斌123‘
s1 = s.replace('王庆斌', '小粉嫩')
print(s1)
s2 = s.replace('王庆斌', '小粉嫩',1)
print(s2)
s3 = s.replace('王庆斌', 'sb')
print(s3)
***** split 分割 str ---> list
s = 'wang qing bin'
print(s.split(' '))
s1 = 'wang,qing,bin'
print(s1.split(','))
s2 = 'wangaqingsabin'
print(s2.split('a'))
s3 = 'wangaqingsabin'
print(s3.split('a',1)) # 分割次数
* isxxx
print(name.isalnum()) #字符串由字母或数字组成
print(name.isalpha()) #字符串只由字母组成
print(name.isdigit()) #字符串只由数字组成
name='123a'
if name.isdigit():
name = int(name)
print(name,type(name))
else:
print('您输入的由非数字元素')
*****len
s = 'fdsafdsaf'
print(len(s))
count = 0
s = 'fdsafdsag'
print(s[0])
print(s[1])
print(s[2])
while count < len(s):
print(s[count])
count += 1
for i in s:
print(i)
list
索引,切片,步长
li = ['wang', 123, True, (1, 2, 3, 'bin'), [1, 2, 3, 'qing',], {'name':'wang'}]
print(li[0])
print(li[2])
print(li[1:4])
print(li[:5:2])
print(li[-1:-3:-1])
li = [1,'a','b','a',2,3,'wang']
增
append
li.append('bin')
print(li.append('bin'))
li.append([1,2,3])
name_list = ['wang' ,'qing','bin','cute','pi']
while True:
name = input('请输入新员工姓名:Q/q')
if name.upper() == 'Q':break
else:
name_list.append(name)
print('已成功添加新员工%s' % name)
print(name_list)
print(li)
加
>>> a=[1,2,3]
>>> b=[2,3,4]
>>> print(id(a))
60916920
>>> print(id(a+b))
61421568
>>>a+b
[1,2,3,2,3,4]
insert 插入
li.insert(2,'小三')
print(li)
extend 迭代添加,到最后
li.extend('ABC')
li.extend([1,2,3])
print(li)
删
pop 按索引删除
li.pop() # 默认删除最后一个
li.pop(1) # 默认删除最后一个
s = li.pop(1)
print(s)
print(li)
remove
li.remove('a')
print(li)
clear 清空内容
li.clear()
print(li)
del 删除列表 切片删除
删除列表
del li
print(li)
切片删除
del li[:3]
del li[:3:2]
print(li)
改
改 按照索引改
print(li[1])
li[1] = 'A'
print(li[1])
li[1] = [11,22,33,44]
print(li)
按照切片去改
li[:3] = 'Q'
print(li)
li[:3] = 'sonesb'
print(li)
li[:3] = [11,22,33,44]
print(li)
查
索引,切片步长,查看
print(li[:3])
for 循环
for i in li:
print(i)
l1 = [1, 2, 1, 7, 5, 4, 9, 8, 3]
index 通过元素找索引
print(li.index('a'))
其他操作方法:
sort 从小到大,正向排序
l1.sort()
print(l1)
从大到小,反向排序
l1.sort(reverse=True)
print(l1)
翻转reverse
l1.reverse()
print(l1)
len 长度
print(len(l1))
li = [1,'a','b','a',2,3,'少年阿宾']
count
print(l1.count(1))
tuple
查
tu = (1,2,'wang','qing')
print(tu[:2])
print(tu[2])
for i in tu:
print(i)
儿子不能改,孙子可能改
tu1 = (1,2,'alex',[1,'cte'],(1,2,3),'binge')
tu1[3].append('1')
print(tu1)
li = [1,(1,2,3)]
可加(重新返回)
>>> a=(1,2,3)
>>> b=(2,3,4)
>>> a+b
(1, 2, 3, 2, 3, 4)
count()
len()
index()
note: range 当成一个数字列表,范围
for i in range(100): # [0,1,2,。。。99]
print(i)
for i in range(0,10,2): # [0,1,2,。。。99]
print(i)
for i in range(10,0,-1): # [0,1,2,。。。99]
print(i)
li = [2,3,'12',4,5]
for i in li:
print(li.index(i))
for i in range(0,len(li)):
print(i)
li = [1,2,3,['12','123','binge'],4]
'''
for i in li:
print(i)
for ....
'''
dict
dic = {"name":"wqbin",
"age":18,
"sex":"male",
}
print(dic)
哈希表:
print(hash('name'))
print(hash('fsagffsadgsdafgfdsagsadfgfag'))
print(hash('age'))
增
第一种: 有则覆盖,无则添加
dic['hobby'] = 'girl'
print(dic)
dic['name'] = 'wusir'
print(dic)
第二种 setdeafult 无则添加,有则不变。
dic.setdefault('hobby')
dic.setdefault('hobby','girl')
dic.setdefault('name','ritian')
print(dic)
删
pop 有返回值
print(dic.pop('age'))
print(dic)
dic.pop('hobby') # 报错
print(dic.pop('hobby', None)) # 返回你设定的值
clear() 清空
dic.clear()
print(dic)
del
del dic
print(dic)
del dic['name']
print(dic)
dic.popitem() # 随机删除 有返回值
print(dic.popitem())
print(dic)
改
dic['name'] = '斌哥'
print(dic)
两个字典的改
dic = {"name":"逼格","age":18,"sex":"male"}
dic2 = {"name":"斌哥","weight":75}
dic2.update(dic) # 将dic键值对,覆盖并添加到dic2
print(dic)
print(dic2)
查
print(dic['name'])
print(dic['name1']) # 报错
print(dic.get('name'))
print(dic.get('name1')) # 默认返回None
print(dic.get('name1','没有此键值对')) # 默认返回None
其他方法:
keys() values() items()
print(dic.keys(),type(dic.keys()))
print(dic.keys())
keys()
for i in dic.keys():
print(i)
for i in dic:
print(i)
li = list(dic.keys())
print(li)
values()
print(dic.values())
for i in dic.values():
print(i)
items()
print(dic.items())
for i in dic.items():
print(i)
特殊类型 dict 转化 成list
print(list(dic.keys()))
概念:分别赋值
a,b = 2,3
print(a,b)
a,b = (2,3)
print(a,b)
a,b = [2,3]
print(a,b)
a = 4 ,b = 5
a = 4
b = 5
a,b = b,a
print(a,b)
print(dic.items())
for k,v in dic.items():
print(k,v)
字典的嵌套
dic = {"name_list":['张三','lisi','隔壁王叔叔'],
'dic2':{'name':'阿宾','age':12},
}
1 ,给列表追加一个元素:'旺旺'
l1 = dic['name_list']
l1.append('旺旺')
dic['name_list'].append('旺旺')
print(dic)
2,给列表lisi全部大写
print(dic['name_list'][1].upper())
dic['name_list'][1] = dic['name_list'][1].upper()
print(dic)
3,给dic2 对应的字典添加一个键值对:hobby:girl.
dic['dic2']['hobby'] = 'girl'
print(dic)
练习1
1、使用while循环输入 1 2 3 4 5 6 8 9 10
2、求1-100的所有数的和
sum = 0
count = 1
while count < 101:
sum = sum + count
count += 1 # count = count + 1
print(sum)
3、输出 1-100 内的所有奇数
count = 1
while count < 101:
print(count)
count += 2
count = 1
while count < 101:
if count % 2 == 1:
print(count)
count += 1
4、求1-2+3-4+5 ... 99的所有数的和
sum = 0
count = 1
while count < 100:
if count % 2 == 0:
sum -= count
else:
sum += count
count += 1
print(sum)
5、用户登陆(三次机会重试)
username = 'OldBoy'
password = '123'
i = 0
while i < 3:
name = input('请输入用户名:')
pwd = input('请输入密码:')
if name == username and pwd == password:
print('登陆成功')
break
else:
print('用户名或密码错误')
i += 1
6、写代码:计算 1 - 2 + 3 ... + 99 中除了88以外所有数的总和?
sum = 0
count = 0
while count < 99:
count += 1
if count == 88:
continue
if count % 2 == 0:
sum -= count
else:
sum += count
print(sum)
7、用户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使字符串格式化)
username = 'wqb'
password = '123'
i = 0
while i < 3:
name = input('请输入用户名:')
pwd = input('请输入密码:')
if name == username and pwd == password:
print('登陆成功')
break
else:
print('用户名或密码错误,还剩%s机会' % (2-i))
i += 1
if i == 3:
choice = input('是否还想在试试?Y')
if choice == 'Y':
i = 0
else:
print('还要不要脸了....')
8、实现一个整数加法计算器(两个数相加):
如:content = input(‘请输入内容:’)
如用户输入:5+9或5+ 9或5 + 9,然后进行分割再进行计算。
content = input("请输入内容:").strip().split('+')
print(content)
num = int(content[0]) + int(content[1])
print(num)
9,计算用户输入的内容中有几个整数。
如:content = input(‘请输入内容:’) # 如fhdal234slfh98769fjdla
content = input('请输入内容:')
count = 0
for i in content:
if i.isdigit():
count += 1
print(count)
content = input("input:")
n = len(content)
m = 0
ls = []
s = ''
while m < n:
if content[m].isdigit():
s = s+content[m]
if not content[m+1].isdigit():
ls.append(int(s))
m+=1
s = ''
else:
m+=1
for x in ls:
print(ls)
content = input("请输入你想输入的内容:")
s = ''
ls = []
n = len(content)
m = 0
num = 0
while m<n:
if content[m].isdigit():
s = s + content[m]
if not content[m+1].isdigit():
ls.append( int(s))
s = ''
m+=1
else:
m+=1
print(len(ls))
for x in ls:
print(type(x))
print(x)
s = 'fdsafdsa'
for i in s:
print(i)
else:
print(666)
10、写代码,有如下列表,按照要求实现每一个功能。
lis = [2,3,'k',['qwe',20,['k1',['tt',3,’1’]],89],’ab’,’adv’]
1)将列表lis中的’tt’变成大写(用两种方式)。
2)将列表中的数字3变成字符串’100’(用两种方式)。
3)将列表中的字符串’1’变成数字101(用两种方式)。
lis = [2,3,'k',['qwe',20,['k1',['tt',3,'1']],89],'ab','adv']
lis[3][2][1][0] = 'TT'
print(lis)
lis[3][2][1][0] = lis[3][2][1][0].upper()
print(lis)
lis[3][2][1][1] = '100'
print(lis)
lis[3][2][1][1] = str(lis[3][2][1][1] + 97)
print(lis)
lis[3][2][1][2] = int(lis[3][2][1][2]) + 100
print(lis)
lis[3][2][1][2] = int(lis[3][2][1][2] + '01')
print(lis)
11、查找列表li中的元素,移除每个元素的空格, for i.strip()
并找出以’A’或者’a’开头,
并以’c’结尾的所有元素,
并添加到一个新列表中,最后循环打印这个新列表。
li = [‘taibai ’,’alexC’,’AbC ’,’egon’,’ Ritian’,’ Wusir’,’ aqc’]
for
li = ['tso ','aC','AbC ','on','ck',' sir',' aqc']
l1 = []
for i in li:
i = i.strip()
if i[0].upper() == 'A' and i[-1] == 'c':
l1.append(i)
print(l1)
l1 = []
for i in li:
i = i.strip()
if (i.startswith('A') or i.startswith('a')) and i.endswith('c'):
l1.append(i)
print(l1)
12、开发敏感词语过滤程序,提示用户输入评论内容,
如果用户输入的内容中包含特殊的字符:
敏感词列表 li = ["苍老师","东京热","武藤兰","波多野结衣"]
则将用户输入的内容中的敏感词汇替换成***,并添加到一个列表中;
如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中
li = ['苍老师','东京热','武藤兰','波多野结衣']
ret = input('input:') # ***东京热武藤兰波多野结衣小泽玛利亚松岛枫
l1 = []
for i in li:
ret = ret.replace(i,"*"*len(i)) # ******武藤兰波多野结衣小泽玛利亚松岛枫
l1.append(ret)
print(l1)
lis = []
for i in li:
ret = ret.replace(i,len(i) * '*')
lis.append(ret)
print(lis)
13
av_catalog = {
"欧美":{
"www.youporn.com": ["很多免费的,世界最大的","质量一般"],
"www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
"letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
"x-art.com":["质量很高,真的很高","全部收费,屌丝请绕过"]
},
"日韩":{
"tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","verygood"]
},
"大陆":{
"1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
}
}
1,给此 ["很多免费的,世界最大的","质量一般"]列表第二个位置插入一个元素:'量很大'。
av_catalog['欧美'][ "www.youporn.com"].insert(1,'量很大')
print(av_catalog)
2,将此 ["质量很高,真的很高","全部收费,屌丝请绕过"]列表的 "全部收费,屌丝请绕过" 删除。
av_catalog['欧美']["x-art.com"].remove("全部收费,屌丝请绕过")
print(av_catalog)
3,将此 ["质量很高,真的很高","全部收费,屌丝请绕过"]列表的 "全部收费,屌丝请绕过" 删除。
4,将此["质量怎样不清楚,个人已经不喜欢日韩范了","verygood"]列表的 "verygood"全部变成大写。
5,给 '大陆' 对应的字典添加一个键值对 '1048' :['一天就封了']
6,删除此"letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"]键值对。
7,给此["全部免费,真好,好人一生平安","服务器在国外,慢"]列表的第一个元素,加上一句话:'可以爬下来'
av_catalog['大陆']['1024'][0] = av_catalog['大陆']['1024'][0] + '可以爬下来'
print(av_catalog)
av_catalog['大陆']['1024'][0] += '可以爬下来'
print(av_catalog)
14、有字符串"k :1|k1 :2|k2 :3|k3 :4" 处理成字典 {'k':1,'k1':2....}
s = 'k:1|k1:2|k2:3|k3:4'
li = s.split('|')
dic = {}
for i in li:
dic[i.split(':')[0]] = int(i.split(':')[1])
print(dic)
dic = {'k':1,'k1':2}
dic = {}
for i in s.strip().split('|'): # ['k:1','k1:2'。。。。]
i = i.strip().split(':') # ['k ','1']
dic[i[0].strip()] = int(i[1])
print(dic)
15、元素分类
有如下值li= [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。即: {'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表}
dic = {'k1':[],'k2':[]}
li= [11,22,33,44,55,77,88,99,90]
for i in li:
if i > 66:
dic['k1'].append(i)
else:
dic['k2'].append(i)
print(dic)
li= [11,22,33,44,55,77,88,99,90]
dic = {}
for i in li:
····
16、输出商品列表,用户输入序号,显示用户选中的商品
商品 li = ["手机", "电脑", '鼠标垫', '游艇']
要求:
1:页面显示 序号 + 商品名称,如:
1 手机
2 电脑 …
2: 用户输入选择的商品序号,然后打印商品名称
3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
4:用户输入Q或者q,退出程序。
li = ["手机", "电脑", '鼠标垫', '游艇']
while True:
for i in li:
print('{}\t{}'.format(li.index(i)+1,i))
num = input('请输入商品序号:q/Q退出').strip()
if num.isdigit():
num = int(num)
if num > 0 and num <= len(li):
print(li[num - 1])
else:
print('您输入的选项,超出范围,请重新输入')
elif num.upper() == 'Q':break
else:
print('输入的有非数字,请重新输入')