小节复习

1、列表与元组的区别是什么?

元组是与列表非常类似的另一个序列数据类型。元组是由多个值以逗号分隔。然而,与列表不同,元组被括在小括号内(())。

列表和元组之间的主要区别是 - 列表括在括号([])中,列表中的元素和大小可以更改,而元组括在括号(())中,无法更新。元组可以被认为是只读列表。

touple2=("go","to",)
# 检索元素个数(count)
print(touple2.count("go"))
#索引位置
print(touple2.index("go"))

list1=[1,2,3,4,5,6,7,8,9]
# 删除7
list1.remove(7)
# 后缀加69
list1.append(69)
list3=["go","java"]
# 把list3后缀到list1里
list3.extend(list1)
print(list1)

2、结合具体的代码案例说明演示字典的有序和字典的排序

# 字典本身是无序的,但是可以参照字典的“键”或“值” 排序生成新的元组列表来输出

# 字典的有序
from collections import OrderedDict
# dict1 ={"name":"王荣","age":18,"address":"lanzhou","city":"兰州"}
print (dict1)

# 通过ascll码进行字典的排序
data = dict(sorted(dict1.items(), key=lambda item: item[0]))
print(data)

3、使用列表推导式实现取出100数字以内整除2的数字

a = [x for x in range(1, 101) if x % 2 == 0]
print(a)

4、在如下数据中获取学生成绩,输出如下几点:

A、学生最大,最小,平均成绩

B、过滤出成绩大于等于60的学生成绩

C、过滤出成绩小于60分的

dict1={'status':0,'msg':'msg','data':[
      {'name':"lisi","score":"90"},
      {'name':"wangwu","score":"60"},
      {'name':"lisi1","score":"88"},
      {'name':"lisi2","score":"59"},
      {'name':"lisi3","score":"24"},
      {'name': "lisi4", "score": "66"},
      {'name': "lisi5", "score": "70"},
      {'name': "lisi6", "score": "45"},
      {'name': "lisi7", "score": "39"}
  ]}

list1=[]
for i in dict1['data']:
    list1.append(int(i['score']))
print('最高成绩:',max(list1))
print('最低成绩:',min(list1))
print('平均成绩:',sum(list1)/len(list1))

#   B、过滤出成绩大于等于60的学生成绩
print('成绩大于等于60的学生成绩:',[i for i in list1 if i>=60])
# C、过滤出成绩小于60分的学生成绩
print('成绩大于等于60的学生成绩:',[i for i in list1 if i<60])

5、结合函数的返回值编写一个案例

def data1():
    return {"name":"wuya","age":"18","address":"xian","city":"lanzhou"}
print(data1())

def data2(**kwargs):
    return kwargs
print(data2(**{"name":"wuya","age":"18","address":"xian","city":"lanzhou"}))

6、什么是序列化与反序列化,结合字典编写,结合文件实现

序列化:把第三方内容写到文件中(也就是python对象(字典,列表,元组)转为字符串的过程)
反序列化:从文件中读取数据(也就是把字符串转为python对象(字典,列表,元组)的过程)

'''字典的序列化与反序列化'''
import json

dict1={"name":"王荣","age":18,"address":"lanzhou","city":"兰州"}
dict_string=json.dumps(dict1,indent=True,ensure_ascii=False)
print(dict_string,type(dict_string))

string_dict=json.loads(dict_string)
print(string_dict,type(string_dict))




'''字典的序列化与反序列化'''
import  json

dict1={"name":"王荣","age":18,"address":"lanzhou","city":"兰州"}
json.dump(dict1,open('json.txt','w'))

file=json.load(open('json.txt','r'))
print(file,type(file))

7、获取当前时间

import time
import datetime
print('获取当前时间为:',datetime.datetime.fromtimestamp(time.time()))

8、编写一个读取文件内容和把内容写入文件的程序

# 用户登录系统:

import json
def out():
    username= input('请输入账户:\n')
    password= input('请输入密码:\n')
    return username,password

def registered():
    username,password = out()
    temp=username+"|"+password
    with open('login.txt','w') as f:
        f.write(temp)
def login():
    username,password = out()
    with open('login.txt','r') as f:
        list1=f.read().split('|')
    if username==list1[0] and password==list1[1]:
        return True
    else:
        return '您的输入有误,请检查登录名和密码是否错误'
def profile():
    with open('login.txt', 'r') as f:
        list1 = f.read().split('|')
        print('欢迎登录xxx网页!!!')
def main():
    while True:
        try:
            f=int(input('1、注册 2、登录\n'))
            if f==1:
                registered()
            elif f==2:
                if login()==True:
                    profile()
                else:
                      print('您的输入有误,请检查登录名和密码是否错误')
            else:
                break
        except:continue
if __name__  == '__main__':
    main()

 

posted @ 2022-06-23 19:51  LaraCroft  阅读(35)  评论(0)    收藏  举报