day07总结

1.字符串补充

1.格式字符串:字符串中通过 ‘格式站位符’ 来表示字符串中变化的部分
  • 格式:一个包含格式站位符的字符串%(给格式站位符赋值的列表)

格式站位符:%s - 字符串占位
%d - 整数
%.Nf - 浮点数 可以使用N约束后面的小数位数
%c - 字符 输入一个字符,
如果输入数字,则会将其作为编码转化为字符
%x/%X - x整数(16进制)

name = 'sss'
age = 23
sex = '男'
message = '%s今年%d岁, 性别:%c' % (name, age, sex)
print(message)
# 输入学生姓名 年龄 性别 以xx今年x岁,性别x的格式打印
2.常用对象方法
  • str1.count(str2)
    count()统计str2 在str1中出现的次数
  • str1.find(str2, 开始下标, 结束下标)
    返回str2在str1中指定范围内首次出现 起始位置的下标值,没有则返回-1
str1 = '  hao are you  '
print(str1.find('are', 3, 5))
  • join 字符串.join(序列)
    将序列中的元素(字符串)用字符串1连接在一起, 产生一个新的字符串
print('$'.join('abc'))
print('++'.join(['aa', 'ee', 'ss']))
print(str1.strip(), str1)
  • 字符串1.split(字符串2) 在字符串1中把字符串2当做切点,
    分割字符串1,产生的新各个字符串用列表保存
str2 = 'how are you?0h~'
s_print = ''
#统计str2中所有元素出现的次数
for s in str2:
    if s not in s_print:
        print(s, str2.count(s))
        s_print += s

#求字符串中出现次数最多的字符 及出现次数
max_count = 0
max_s = ''
for s in str2:
    count = str2.count(s)
    if count > max_count:
        max_count = count
        max_s = s
#找出字符串中指定字符串出现的下标并打印
str3 = 'and you how are you?0h~'
str4 = 'you'
start_index = 0
while True:
    index = str3.find(str4, start_index)
    if index == -1:
        break
    else:
        print(index, end=',')

    start_index = index + len(str4)
print()

练习:实现join的功能 用字符串1 将字符串2中所有的字符连接起来

str5 = 'aa'
str6 = '123444'
new_str = ''
for char in str6:
    new_str += char + str5

new_str = new_str[:-len(str5)]
print(new_str)
#取出数字并用字符拼接
str5 = '+'
str6 = 'asd235dsdsg55'
new_str = ''
for char in str6:
    if '0' <= char <= '9':
        new_str += char + str5

new_str = new_str[:-len(str5)]
print(new_str)

2.list列表

  • 什么时候用列表:需要用一个变量保存多个程序
  1. 什么是列表
    列表是python内置的容器型数据类型(序列),可变(支持增删改)且有序(支持通过下标操作)
    用中括号将多个元素括起来,多个元素用逗号隔开:[元素1,元素2,元素3....]

  2. 列表中的元素:python内置数据类型对应的数据,或者自定义的类型数据都可以

  • 不同元素类型可以不一样
list1 = [120, 12.9, True, 'abc', [1, 2, 3], lambda x: x*10]
print(list1)
num = 10
# 注意:赋值运算不能作为元素,其他都可以将结果作为元素存贮在列表中
list2 = [num, 100+200]

3.查 - 获取列表元素 同字符串

# 获取单个元素:列表[下标]
names = ['海贼王', '火影忍者', '死神', '犬夜叉', '妖精']
print(names[0])

# 获取部分元素-切片(同字符串):列表[开始下标:结束下标:步长]
# 列表切片结果是列表
print(names[1:4])
print(names[:])  #属于浅拷贝
  1. 遍历
    a.直接遍历
    for 变量 in 列表: 变量取到元素
    循环体
    b. 通过下标遍历
    for 变量 in range(len(列表)): 变量取到下标
    循环体
#遍历元素
for item in names:
    print(item)
#遍历索引
for index in range(len(names)):
    print(index, names[index])
#统计平均分和不及格人数
scores = [90, 80, 54, 40, 70, 57, 54]
sum_score = 0
notPass = 0
for score in scores:
    sum_score += score
    if score < 60:
        notPass += 1
print('平均分%.2f,不及格%d人' % (sum_score/len(scores), notPass))

补充求和函数 sum
sum(序列) - 求序列中所有元素的和;
序列要求元素类型一致,且支持加法运算

print(sum(scores), sum(range(101)))
  1. 增 - 添加元素
 # 列表.append(元素)  - 在指定列表的最后添加元素
persons = ['路费', '宝儿姐', '张楚楠']
persons.append('容嬷嬷')
persons.append('赵云')
print(persons)

# 2.列表.insert(下标, 元素)  -在指定列表的 指定下标前 插入指定元素
numbers = [1, 20, 34, 50]
numbers.insert(2, 22)
print(numbers)

# 练习:输入一个数字,然后将其添加到一个有序列表中,要求加入后不改变其排列顺序
numbers = [1, 20, 34, 50, 100, 200, 1000]
num = 10
for index in range(len(numbers)):
    if numbers[index] > num:
        numbers.insert(index, num)
        break
else:
    numbers.append(num)
print(numbers)
  1. 删除元素
# del  列表[下标] - 将指定列表中指定下标对应元素删除
numbers = [1, 20, 34, 50, 100, 200, 1000]
del numbers[2]
print(numbers)
# 列表.remove(元素) - 将指定列表中第一个指定元素删掉,如元素不存在,会报错
names.remove('海贼王')
print(names)

# 列表.pop()   -移除列表中最后一个元素
# 列表.pop(下标)  -移除列表中指定对应下标的元素
# 会返回移除的元素
del_name = names.pop()
print(names, del_name)
del_name = names.pop(0)
print(names, del_name)
names = ['海贼王', '火影忍者', '死神', '海贼王', '犬夜叉', '海贼王', '妖精']
# 删除所有的海贼王,remove, del pop
while True:
    if '海贼王' in names:
        names.remove('海贼王')
    else:
        break

# 清空 列表.clear()  删除列表中所有元素 保留空列表
  1. 改 - 修改列表中的元素
 #列表[下标] = 新值  将列表中,指定下标对应元素,改成新值
nums = [1, 2, 3]
nums[0] = 100
print(nums)
  1. in/not in
# 元素 in 列表  判断列表中是否包含指定元素
print(['b', 'a'] + ['a'])
# remove, append, insert没有返回值

9.补充删除列表遍历的规则

scores = [10, 50, 90, 89, 89, 89, 40, 10]
# 删除所有小于60的数
# 按元素遍历:通过remove删除的时候可能出现 删不干净的问题
for score in scores:
    if score < 60:
        scores.remove(score)
print(scores)
# 解决思路
# 先备份一份
socore2 = scores.copy()
# 遍历备份,操作原本

# 问题2, 通过下标遍历删除满足要求的元素时,出现下标越界
for index in range(len(scores)):
    if scores[index] < 60:
        del scores[index]
print(scores)
#将range(len(scores))产生的序列计算后保存起来,按此遍历,
# 后续len()的改变不会对保存的序列操作,

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

推荐阅读更多精彩内容

  • 在高楼的缝隙间 我看见 巨大的太阳沉沉的坠落 我拼命跑上山 还是错过了最后的太阳 我静静的坐在台阶上 黑暗伴着寒冷...
    可能会失眠阅读 127评论 0 0
  • 今天偶然翻看笔记本的时候看到了一个邮戳日期为2015.9.4号的章,地点是西藏拉萨,那是盖在天堂时光旅行书店明信片...
    正齐读道阅读 581评论 0 2
  • 今天是失业的第二天,周六。早晨拖到七点半起床,起床后吃早餐。吃完早餐,带儿子去上绘画的课。 这个绘画课是免费的十五...
    彩彩_cc阅读 194评论 0 1