2019-04-27第二天学习成果

字符串常见操作

my_str = 'hello world neuedu and neueducpp'

1.find()

检查str中是否包含在my_str中,如果在返回开始的索引值,否则返回-1
index1 = my_str.find('neuedu')
 print(index1)
index2 = my_str.find('neuedu', 0 , 10)
 print(index2)

2.index()

跟find()一样 只不过str不在mystr中要报一个异常
index3 = my_str.index('neuedu', 0 , 10)
# # print(index3)

4.replace()

把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次
name= ' hello world haha '
new_name = name.replace('ha', 'Ha')
print(new_name)
name= ' hello world haha '
new_name = name.replace ( 'ha' , 'Ha' , 1 )
print (new_name)
#¥599  ------>  $599
price = "¥599"
price = price.replace('¥', '$')
print(price)

5.split()

以str为分隔符分割name,如果maxsplit指定值,那么近分割maxsplit个子串
name = 'hello world ha ha'
name_list = name.split ( " " )
print ( name_list )
name_list1 = name.split ( " " , 2)
print ( name_list1 )

6.capitalize()

把字符串的一个字符大写
my_str2 = my_str.capitalize()
print( my_str2)

7.title()

把字符串的每个单词首字母大写
my_str3 = my_str.title()
print( my_str3 )

8 startwith()

检测字符串是否以str为开头
my_str4 = my_str.startswith( 'hello' )
print( my_str4 )
my_str5 = my_str.startswith( 'hello' )
print ( my_str5)

9 endwith()

检测字符串是否以str结尾
my_str6 = my_str.endswith('cpp')

10.upper()

把字符串的所有变为大写
my_str7 = my_str.upper()

11.lower()

字符串的所有变为小写
my str8 = my_str7.lower()
print(my_str8)

12.rjust()

返回一个原字符串右对齐的并用空格填充
my_str_space = "hello"
new_my_str_space = my_str_space.rjust(10)
print (new_my_str_space)

13.ljust()

返回一个原字符串右对齐的并用空格填充
new_my_str_space1 = my_str_space.ljust(100)
print (new_my_str_space1 )
print ( len ( new_my_str_sapce1 ) )

14.center()

new_my_str_space2 = my_str_space.center(50)
print ( new_my_str_space2 )
print ( len( new_my_str_sapce2 ) )

15.lstrip()

print ( new_my_str_space2 )#50
print ( len ( new_my_str_space2.lstrip()
print ( len ( new_str2 ))
print ( new_str2 )

16.rstrip()

清除字符串右边的空白字符
new_str3 = new_str2.rstrip( )
print ( len ( new_str3 ) ) #5
print ( new_str3 )

17.strip()

删除两端的空白字符
str1 = '\n\tdadadad\t'
print(len(new_my_str_space2))
new_str4 = new_my_str_space2.strip()
print(len(new_str4))
print(len(str1))
str2 = str1.strip()
print(len(str2))

18.rfind()

类似于 find()函数,不过是从右边开始查找.
index5 = my_str.rfind ( ' neuedu ' )
print ( index 5 )

19.rindex()

类似于 index(),不过是从右边开始.
index5 = mystr.rfind('neuedu')
print(index5)

20.partition ()

把mystr以str分割成三部分 str前、str、str后
print ( my_str )
t_mystr = my_str.partition( ' neuedu ')
print ( t_mystr ) # 元组

21.rpartition()

类似于 partition()函数,不过是从右边开始.

22.spitlines()

按照行分割,返回一个包含各行作为元素的列表
line = ' hello\nworld'
listline= line.splitlines ()
print ( list_line)

23.isalpha()

判断字符串是否都是字母
alpha = my_str.isalpha ( )
print ( alpha )
alpha2 = ' dddddddd '
alpha3 = alpha2.isalpha ( )
print ( alpha3 )

24.isdigit()

判断字符串是否都是数字

25.isalnum()

判断是否只有字母或数字

26.isspace()

如果 mystr 中只包含空格,则返回 True,否则返回 False.

27 join()

mystr 中每个元素后面插入str,构造出一个新的字符串
str4 =  " "
list1 = [ ' my ' , ' name ' , ' is ' , ' songxioabao ' ]
my_name = str4.join ( list1 )
print ( my_name )
# _ /  ,
my_name = "_".join ( list1 )
print ( my_name )

*常用的 find replace split join strip


价值一个亿的AI核心代码
while True:
     print('AI说:'+input().strip('吗?')+'!')
while True:
    print(input('').repalce('吗','').replace('?','!'))
列表 c数组很像 但是list可以存储不同类型的数据
name_list = ['鲁班','xiaoming',1024]
print(name_list)
print(type(name_list))
访问
print(name_list[0])

遍历

for

for name in name_list:
    print(name)

while

i=0
while i < len(name_list):
    print(name_list[i])
    i += 1

列表的相关操作

1.添加

'''
str = input ( '请输入您要添加的内容 ’)
name_list.append(str)
print('添加后',name_list)
'''
list1 = []
for i in range (10):
        list1.append(i)
print(list1)

insert

在指定位置index前插入 元素object
a = [0,1,2]
a.insert(1,10)
print(a)

extend

可以将另外一个集合逐一添加到列表中
a = [1,2]
b = [3,4]
a.append(b)
print(a)
a.extend(b)

2.修改

update

name_list[1] = '小明'
print(name_list)

3.查找

in/not in

find_name = '小明'
if find_name in name_list: #(not in)
        print('小明在列表中')
else:
        print('不在')

index count

a = ['a','b','c','a','b']
index1 = a.index('a',1,4) #左闭右开
print(index1)
counts = a.count('b')
print(counts)

4.删除

del

根据下标进行删除
del name_list[0]
print('删除后',name_list)

pop

删除最后一个元素

remove

根据元素的值进行删除

5.排序

--from modename import name1,name2

'''
from random import randint
num = randint(-10,10) #[-10,10]
print(num)
'''
num_list = []
for _ in range(10):
        num_list.append(randnt(1,20)
print(num_list)
num_list.sort()
print('正序排序',num_list)
num_list.sort(reverse=True)
print('逆序排序',num_list)
new_list = sorted(num_list)
print(num_list)
print(new_list)

区别
1.sort()对原来的列进行修改排序 sorted(num_list)返回新的,原来的没有
2.sort()属于列表的成员方法,sorted()对所有可迭代对象进行操作
3.ls.sort(key reberse) sorted(ls)

字符串的常用操作

print(dir(' '))
print(dir( [ ] ))

列表的嵌套

--列表里面还有列表

school_name = [['qinghua','beida'],['nankai','tianda'],['dongqing','yanshang']]
print(school_name)
print(school_name[0][1])
print('++++++++++++++++++++++++')
print(school_name[0, 1])

列表推导式

--所谓的列表推导式,就是指的轻量级循环创建列表

#list1 = []
 for _ in range(10):
     list1.append('不给我鲁班我就送')
print(list1)

list2 = [i for i in range(2, 17, 2)]
 print(list2)
 list3 = ["不给我鲁班我就送" for _ in range(5)]
 print(list3)
from random import randint
# 生成10个元素 ,范围在【-10 , 10】区间的列表
l = [randint(-10, 10) for _ in range(10)]
print(l)
# 选出大于等于0 的数据
res = []
for x in l:
    if x >= 0:
        res.append(x)
print('使用for循环筛选:',res)
# 循环的过程中使用if
res2 = [x for x in l if x >=0]
print("使用列表解析筛选",res2)

列表转化成字符串

my_list = ['Welcome','to','ML','World']
# my_list_to_str = str(my_list)
# print(my_list_to_str)
print(' '.join(my_list))

列表和字符串的 *

str1 = 'hehe'*3
print(str1)
list4 =['6',9,0, 3,14]*5
print(list4)

numbers = [i for i in range(11)]
print(numbers)

一个学校,有3个办公室,现在有8位老师等待工位的分配,

请编写程序,完成随机的分配

import string
from random import randint
# import random.randint as randint
# 定义3个办公室
offices = [[],[],[]]
# 定义8位老师
names = list(string.ascii_uppercase[:8])
# names = list(names)
print(names)
for name in names:
    # 【0,2】 产生一个随机数
    index = randint(0, 2)
    offices[index].append(name)
print(offices)
i = 1
for tempNames in offices:
    print('办公室{}的人数为{}'.format(i, len(tempNames)))
    i += 1
    print('成员为:')
    for name in tempNames:
        print('{}'.format(name),end='')
    print('\n')
    print('-'*30)


元组

 a = ('ddd',111,0.88)
tuple
print(type(a))
序列: 列表/字符串/元组
访问
print(a[0])
修改 不能修改 包括不能删除
a[1] = 99.9
index count
a = ('a', 'b','c', 'b', 'a')
index1 = a.index('a')
print(index1)
c = a.count('b')
print(c)
******************************
单个元素的元组
b = (100,)*3
# 是不是
print(b)
print(type(b))
同时遍历两个列表
zip() 用于将可迭代对象作为参数,讲对象中的对应的与元素打包成

--一个元组,然后返回这些元组对象 节约内存

a = [1, 2, 3]
b = [4, 5, 6]
c = [4, 5, 6, 7 ,8]
zipped = zip(a, b)
print(zipped)
print(list(zipped))
zipped1 =zip(a, c)
print(list(zipped1)) #长度不一致,与最短的对象相同
heros = ['后羿', '安琪拉']
skills = ['惩戒之箭','烤串']
for hero,skill in zip(heros, skills):
    print(hero,'------>',skill)


字典

--key --> value

info = {'name': '刘强东', 'age': 45,
        'id': 32432432432432432,'addr':'北京'}

访问

--根据 键进行访问

 print(type(info))
print(info['name'])
# 访问不存在的就会报错
print(info['sex'])

--当我们不确定字典中是否存在某个key,而且还要获得其value,可以使用get

mail = info.get('mail', '122@jingdong.com')
age = info.get('age', 20)
print(mail)
print(age)
修改
info['name'] = '马云'
print(info)

####### 添加

info['sex'] = '男性'
print('添加后',info)

####### 删除操作

# del 根据key删除
del info['name']
print('删除后',info)
del info
print('删除后',info)
clear
info.clear()
print('after clear ',info)

常用操作

len
print(len(info)) # k-y 的个数
keys
keys = info.keys()
print(keys)
values
values = info.values()
print(values)
#(keys values)
items = info.items()
print(items)
for key, value in info.items():
    print(key,'======>',value)

字典解析

# 创建一个班级的分数
from random import randint
grades = { 'Student{}'.format(i):randint(50, 100) for i in range(1,21)}
print(grades)

筛选出 高于90 分的人

print(len(d))
print(d)

集合解析

set1 = {randint(0, 20) for _ in range(20)}
print(set1)

找到能被3整除的

res = { x for x in set1 if x%3 ==0}
print(res)


函数定义

def 函数名(num):
pass
函数名(num)
def caculateNum(num):
    """
    计算 1 ~ num 之间的累加和
    :param num: 累加和的末尾
    :return:   累加和
    """
    res = 0
    for i in range(1, num+1):
        res += i
    return res

res = caculateNum(100)
print(res)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,233评论 6 495
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,357评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,831评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,313评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,417评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,470评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,482评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,265评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,708评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,997评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,176评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,827评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,503评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,150评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,391评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,034评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,063评论 2 352

推荐阅读更多精彩内容