Python基础之容器1----字符串和列表

it2022-05-25  67

一、编码:

  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 # ()使用列表拼接 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)

 

  

 

  

转载于:https://www.cnblogs.com/yuxiangyang/p/10658282.html

相关资源:数据结构—成绩单生成器

最新回复(0)