码迷,mamicode.com
首页 > 其他好文 > 详细

Str+tuple+list

时间:2018-10-18 22:08:31      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:com   this   翻转   while   ace   进度   过滤   更新   ice   

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)

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)]

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(‘输入的有非数字,请重新输入‘)

Str+tuple+list

标签:com   this   翻转   while   ace   进度   过滤   更新   ice   

原文地址:https://www.cnblogs.com/wqbin/p/9813062.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!