列表元素的查询,排序,元组的介绍及王者荣耀管理系统

87 阅读4分钟

一.列表元素查询:

列表元素查询有三种方法

第一种使用关键字:
index      # 返回元素的下标位置,如果没有此元素会报错.

格式及功能:

列表.index(元素)         查询某个元素。        
  列表.index(元素,下标)   可以通过再设置一个下标参数,来确定起始查询位置
第二种计数:
count

格式及功能:

列表.count(元素)     #计算某个元素个数。如果返回了0,则列表中没有此元素。反正,则有。
第三种用 in:
元素 in 列表        元素在列表里面吗?     返回bool类型。
元素 not in 列表    元素不在列表里面吗?

二.列表元素的排序:

假如这里有个列表,里面都是无序排列的数字。这时候,给你一个任务 ,叫你把这些元素升序排列。你会怎么做?让我们来先找一个思路,这里我们可以用冒泡排序的原理来试试。先把这些元素分成好几轮,每轮都会将最大的数排到列表最后。

nums = [5, 1, 7, 6, 8, 2, 4, 3]   #  我们随便写一个列表
for j in range(0, len(nums)-1):   #  分成轮数
    for i in range(0, len(nums)-1):  #  每轮将最大的数排到后面,在下一轮排过的数就不会继续参与排列
        if nums[i] > nums[i+1]:
            c = nums[i]
            nums[i] = nums[i+1]
            nums[i+1] = c
print(nums)

其实,在python里面有一个关键字,将这些代码封装到里面。

sort   #  只有这个才有排序功能
reverse

格式及功能:

列表.sort()/列表.sort(reverse = False)            #   默认将元素按升序排列
列表.sort(reverse = Ture)                      #   将元素按降序序排列

列表.reverse()                    #   这里的reverse与上面的不同,他的功能就是将原有列表反转,但不会进行排列

列子:

number = []
ran = 0
for i in range(8):
    ran = random.randint(1, 100)
    number.append(ran)
number.sort()
print(number)

number.reverse()
print(number)

三.元组:

元组与列表相似,但是元组的元素是不能修改(增加或删除)的。 符号上,列表用的是方括号,元组使用的是小括号。 元组也能使用下标和切片。

注意:如果元组只有一个元素,必须加逗号

元组可使用地关键字只有计数count(),index(元素,起始下标,结束下标)

四.王者荣耀角色管理系统:

王者荣耀角色管理
角色: 姓名, 性别, 职业
功能:
    添加角色
    删除角色
    修改角色
    查询角色  单个角色
    显示所有角色
    退出系统
import random
import time

b = []  # 存放所有角色的大容器
print('~~~~~~~欢迎进入王者荣耀角色管理系统~~~~~~~~~~~')
while True:
    a = input('请选择功能:\n 1.添加角色  \n 2.删除角色 \n 3修改角色 \n 4.查询角色 \n 5.显示所有角色 \n 6.退出系统 \n')
    # 判断
    if a == '1':
        print('添加角色模块')
        name = input('\t角色名称:')
        sex = input('\t性别:')
        job = input('\t职业:')
        role = (name, sex, job)
        #  添加到b中
        b.append(role)
        print('成功添加{}到王者荣耀系统\n'.format(name))
    elif a == '2':
        print('删除角色模块:')
        c = input('\t请输入要删除角色名称:')
        # 查找是否存在此角色名
        for role in b:
            if c in role:
                d = input('是否要删除(1是2否)')
                if d == '1':
                    b.remove(role)
                    print('成功删除{}'.format(c))
                    break
        else:
            print('本系统不存在该角色')
    elif a == '3':
        print('修改角色模块:')
        c = input('\t请输入要修改角色名称:')
        # 查找是否存在此角色名
        for role in b:
            if c in role:
                role[0] = input('\t角色名称:')
                role[1] = input('\t性别:')
                role[2] = input('\t职业:')
                break
        else:
            print('本系统不存在该角色')
    elif a == '4':
        print('查询角色模块:')
        c = input('\t请输入要查询的角色名称:')
        # 查找是否存在此角色名
        for role in b:
            if c in role:
                print('存在此角色,信息如下:')
                print('{}{}{}'.format('名称'.center(10), '性别'.center(10), '职业'.center(10), ))
                print(role[0].center(10), end='')
                print(role[1].center(10), end='')
                print(role[2].center(10), end='')
                break
        else:
            print('本系统不存在该角色')
    elif a == '5':
        print('显示所有角色模块:')
        print('{}{}{}'.format('名称'.center(10), '性别'.center(10), '职业'.center(10), ))
        for role in b:
            print(role[0].center(10), end='')
            print(role[1].center(10), end='')
            print(role[2].center(10), end='')
            print()
    elif a == '6':
        print('正在退出王者荣耀管理系统~~~~')
        time.sleep(3)
        print('成功退出!')
        break
    else:
        print('输入错误,重新选择')