掌握python字符串容器_Python基础之容器1----字符串和列表

一、编码:

1、编码只是梳理

3fc267c75eeaffe23bef394ba43d7546.png

2、编码涉及的函数:

44aac088148a73bc75a56f62b780a70c.png

3、实例:

字符串内存图

1f11b6aa594a8f804affbf583d192ce1.png

5142e02290dc7cfae1c07f6c9f95ade0.png

二、字符串

1、定义:由一系列字符组成的不可变序列容器,存储的是字符的编码值。

不可变:指字符串一旦定义,其内存地址就已经确定不能改变

序列:指字符的编码在内存中按照一定的顺序存储

0b091d9a0678dfbd99400699c3e2da6e.png

95fadd1d696022b86a6af736723c1ca0.png

2、字符串的字面值:

(1)单双引号:

1d7ab075c4bbef0947cb51ecd674dc6c.png

(2)三引号:

52e7d7966147040375b25abf9bf10538.png

(3)转义字符:

1646afc7031f1a20c65481df1f4b7a81.png

3、字符串格式化:

9a14431a891563b5886081719cadd92d.png

实例:

2ac62ec5514040051bba7b7e5c99428c.png

0bcfc23d4df568c5376d9174d6276df2.png

二、列表

1、列表定义:

a35d714c6f739bd6a657c754cf8eca98.png

内存图:

f7f8ed07567eca6ce1a646aef487919d.png

274f0130daea52ba10c0b7c9458c9fd5.png

2、创建列表:

736092a75f4504cf23ddfc61f857a9ab.png

3、添加列表元素:

3fd456f9c72f670daac6c065d61fbed4.png

4、删除列表元素:

cdbb6434958aae56761c1cf8afa8a545.png

5、定位元素:

90da5483a809df982196a3f5193e1659.png

6、遍历元素:

97d9ed0beac3910006c6998ec9c03afc.png

三、容器通用操作

1、数学运算

89815237545e4d47557f89a5427432d5.png

实例:

06b97c8a9780808ac42488fcabc38ec1.png

2、成员运算:

c7a825f055e568827393fe569c170b40.png

实例:

2cb51b17eeeafc1ec08e5735a45666a2.png

3、索引(index)

88b98700cb697474a538c4c86da5a179.png

索引内存图

09c946f6e42765f9b8bc1e9fa0d55451.png

实例:

2ae78087d51c55b3383acb7151870ed4.png

4、切片

8592195f800ddeb8bf0ea174be51bcfc.png

实例

f8fc8dc6915b04f167b705357222de1f.png

四、综合实例演练

练习1:在控制台中获取一个字符串,打印每个字符的编码值.

str_input = input("请输入文字:")for item instr_input:

print(ord(item))

练习2:在控制台中循环输入编码值,显示字符.直到输入负数时,退出.

whileTrue:

number= int(input("请输入编码值:"))if number < 0:breakprint(chr(number))

练习3:在控制台中,获取一个字符串.

1.  打印第一字符

2.  打印最后一个字符

3.  如果是奇数,打印中间的字符串(len(字符串))

4.  打印倒数3个字符

5.  倒叙打印字符串

str_input = input("请输入字符串:")

#1. 打印第一字符

print(str_input[0])

# print(str_input[-len(str_input)])

#2. 打印最后一个字符

print(str_input[-1])

# print(str_input[len(str_input)- 1])

#3. 如果是奇数,打印中间的字符串(len(字符串))if len(str_input) % 2 == 1:

print(str_input[len(str_input)//2])

#4. 打印倒数3个字符

print(str_input[-3:])

#5. 倒叙打印字符串

print(str_input[::-1])

练习4:在控制台中输入一个整数,根据整数打印一个矩形,要求如下

""" 输入整数: 4

****

*  *

*  *

****

"""

number = int(input("请输入:"))

# 头

print("*" *number)

# 中间for i in range(number -2):

print("*" + " "*(number - 2) +"*")

# 尾

print("*" * number)

练习5:在控制台中录入学生成绩,计算总分,最高分,最低分。

“请输入学生总数:”

“请输入第1个学生成绩:”

stu_count = int(input("请输入学生总数:"))

list01=[]for i inrange(stu_count):

score= int(input("请输入第%d个学生成绩:"%(i+1)))

list01.append(score)

print("总分:%d."%(sum(list01)))

print("最高分:%d."%(max(list01)))

print("最低分:%d."%(min(list01)))

练习6:在控制台中录入学生姓名。

要求:姓名不能重复

如果录入esc,则停止录入,打印每个学生姓名

list_names =[]whileTrue:

name= input("请输入第%d个学生姓名:" % (len(list_names) + 1))if name == "esc":break# 如果姓名不存在:if name not inlist_names:

list_names.append(name)for item inlist_names:

print(item)

练习7.获取最大/最小值

list01 = [34, 5, 6, 78, 9, 0, 5, 8, 88, 4]

# 假设第一个元素就是最大值

max= list01[0]

# 依次与后面(从第二个开始)元素进行比较for i in range(1,len(list01)):

# 发现更大的,则替换假设的.if max

max=list01[i]

# 最后假设的就是真的最大值.

print(max)

练习8: 在控制台中循环录入字符串,输入q时退出.然后显示一个新的字符串.

list_result =[]whileTrue:

str_input= input("请输入:")if str_input =="q":break# str_result= str_result +str_input

# (1)使用列表拼接

list_result.append(str_input)

#(2) 使用join合并

str_result= "".join(list_result)

print(str_result)

练习9:判断字符串是否是回文:

上海自来水来自海上

奶牛产牛奶

提示:字符串翻转  str01[::-1]

whileTrue:

Str1= input('请输入一个字符串:')if Str1 == 'q':break

else:

Str2= Str1[::-1]if Str1 ==Str2:

print('“%s”是回文字符串' %Str1)else:

print('“%s”不是回文字符串' % Str1)

练习10: 一注彩票7个球

前六个是红球:1 -- 33 之间的数字,且不能重复.

最后一个是蓝球:1 -- 16 之间的数字

(1) 在控制台中购买彩票

ticket =[]

# 前六个红球:while len(ticket) < 6:

number= int(input("请输入第%d个红球号码:"%(len(ticket) + 1)))if number <1 or number > 33:

print("不再范围内")

elif numberinticket:

print("该号码已经存在")else:

ticket.append(number)

# 蓝球:whileTrue:

number= int(input("请输入蓝球号码:"))if 1<= number <= 16:

ticket.append(number)break# 退出循环else:

print("不再范围内")

print(ticket) # 只是将列表转换为字符串 再显示

# 获取每个元素

#for item inticket:

# print(item)

(2) 随机产生一注彩票

import random

ticket=[]while len(ticket) < 6:

number= random.randint(1,33)if number not inticket:

ticket.append(number)

# 排序

# ticket.sort()

# number= random.randint(1,16)

# ticket.append(number)

ticket.append(random.randint(1,16))

# 需求:对列表执行范围的元素进行排序

# (1)通过切片返回新列表

temp= ticket[:6]

# (2)对新列表进行排序

temp.sort()

# (3)将新列表赋值给原列表

ticket[:6] =temp

print(ticket)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值