一、编码:
1、编码只是梳理
2、编码涉及的函数:
3、实例:
字符串内存图
二、字符串
1、定义:由一系列字符组成的不可变序列容器,存储的是字符的编码值。
不可变:指字符串一旦定义,其内存地址就已经确定不能改变
序列:指字符的编码在内存中按照一定的顺序存储
2、字符串的字面值:
(1)单双引号:
(2)三引号:
(3)转义字符:
3、字符串格式化:
实例:
二、列表
1、列表定义:
内存图:
2、创建列表:
3、添加列表元素:
4、删除列表元素:
5、定位元素:
6、遍历元素:
三、容器通用操作
1、数学运算
实例:
2、成员运算:
实例:
3、索引(index)
索引内存图
实例:
4、切片
实例
四、综合实例演练
练习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)