Python基础之容器1----字符串和列表
Posted 一如年少模样
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础之容器1----字符串和列表相关的知识,希望对你有一定的参考价值。
一、编码:
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 in str_input: print(ord(item))
练习2:在控制台中循环输入编码值,显示字符.直到输入负数时,退出.
while True: number = int(input("请输入编码值:")) if number < 0: break print(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 in range(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 = [] while True: name = input("请输入第%d个学生姓名:" % (len(list_names) + 1)) if name == "esc": break # 如果姓名不存在: if name not in list_names: list_names.append(name) for item in list_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 < list01[i]: max = list01[i] # 最后假设的就是真的最大值. print(max)
练习8: 在控制台中循环录入字符串,输入q时退出.然后显示一个新的字符串.
list_result = [] while True: 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]
while True: 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 number in ticket: print("该号码已经存在") else: ticket.append(number) # 蓝球: while True: number = int(input("请输入蓝球号码:")) if 1<= number <= 16: ticket.append(number) break # 退出循环 else: print("不再范围内") print(ticket) # 只是将列表转换为字符串 再显示 # 获取每个元素 # for item in ticket: # print(item)
(2) 随机产生一注彩票
import random ticket = [] while len(ticket) < 6: number = random.randint(1,33) if number not in ticket: 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)
以上是关于Python基础之容器1----字符串和列表的主要内容,如果未能解决你的问题,请参考以下文章