1、
python
dd2 = dict(id=101, name='小明', age=23, score=[90, 67, 98])
print(dd2)
print()
print('dd2.id ->', dd2.get('id')) # 101
print('dd2.age ->', dd2.get('age')) # 23
print()
"""
字典数据由三部分组成:
1、键集
2、值集;
3、元素集;就是一个字典中的多个键值对的集合
"""
print('键值对数量 ->', dd2.__len__())
print()
# 键集
print("*** 键集 ***")
keys = dd2.keys()
print(keys)
print("*** 值集 ***")
# 值集
values = dd2.values()
print(values)
# 元素集; 一个元素就是一个键值对,就是一个元组
print("*** 元素集 ***")
for d in dd2.items():
print(d)
python
D:\pyproject\Project1\venv\Scripts\python.exe D:\pyproject\Project1\day1\test1.py
{'id': 101, 'name': '小明', 'age': 23, 'score': [90, 67, 98]}
dd2.id -> 101
dd2.age -> 23
键值对数量 -> 4
*** 键集 ***
dict_keys(['id', 'name', 'age', 'score'])
*** 值集 ***
dict_values([101, '小明', 23, [90, 67, 98]])
*** 元素集 ***
('id', 101)
('name', '小明')
('age', 23)
('score', [90, 67, 98])
Process finished with exit code 0
2、
python
print()
# 创建一个字典
dd1 = {"id": 1024, "name": "王小明", "age": 21,
"score": [77, 88, 98, 45]}
# 整体输出
print(dd1)
print()
# 输出所有的键
keys = dd1.keys()
print(keys)
print()
# 输出字典中的所有值
values = dd1.values()
print(values)
print()
# 输出所有的键值对
for d in dd1.items():
print(d)
运行结果:
python
D:\pyproject\Project1\venv\Scripts\python.exe D:\pyproject\Project1\day1\test1.py
{'id': 1024, 'name': '王小明', 'age': 21, 'score': [77, 88, 98, 45]}
dict_keys(['id', 'name', 'age', 'score'])
dict_values([1024, '王小明', 21, [77, 88, 98, 45]])
('id', 1024)
('name', '王小明')
('age', 21)
('score', [77, 88, 98, 45])
Process finished with exit code 0
3、
python
dd1={}
print('type(',dd1,')->',type(dd1),sep='')
aa=[]
print('type(',aa,')->',type(aa),sep='')
dd1['id']=1024
dd1['name']='张'
dd1['age']=25
dd1['score']=[67,78,58,25,64]
print(dd1)
运行结果:
python
D:\pyproject\Project1\venv\Scripts\python.exe D:\pyproject\Project1\day1\test1.py
type({})-><class 'dict'>
type([])-><class 'list'>
{'id': 1024, 'name': '张', 'age': 25, 'score': [67, 78, 58, 25, 64]}
Process finished with exit code 0
4、
python
import json
class Base(object):
def __init__(self, id, name, age): # 相当于Java中的构造器
self.id = id
self.name = name
self.age = age
def hello(self): # 类中的一个普通实例方法,用类对象调用
print("*** hello,Base ***")
def __str__(self): # 相当于Java中的toString方法,在此重写对象
return json.dumps(self, indent=4, ensure_ascii=False,
default=lambda o: o.__dict__)
b1 = Base(1112, "jack", 23)
print(b1)
print(b1.id)
print(b1.name)
print(b1.age)
print()
class MyUtilClass(object):
def __str__(self): # 相当于Java中的toString方法,在此重写对象
return json.dumps(self, indent=4, ensure_ascii=False,
default=lambda o: o.__dict__)
class Person(MyUtilClass):
pass
p = Person() # 此处调用默认的无参构造器创建Person对象
p.__setattr__("name", "张小三")
p.__setattr__("age", 22)
p.__setattr__("address", '中国 山东 泰安')
print(p)
print('name ->', p.name)
print('age ->', p.age)
print('address ->', p.address)
运行结果:
python
D:\pyproject\Project1\venv\Scripts\python.exe D:\pyproject\Project1\day1\test2.py
{
"id": 1112,
"name": "jack",
"age": 23
}
1112
jack
23
{
"name": "张小三",
"age": 22,
"address": "中国 山东 泰安"
}
name -> 张小三
age -> 22
address -> 中国 山东 泰安
Process finished with exit code 0
5、
python
class Student(object):
def __init__(self, id=None, name=None, age=None):
self.id = id
self.name = name
self.age = age
s2 = Student() # 不提供参数,使用默认值
s2.id = "1023"
s2.name = "张三"
s2.age = "20"
print(s2.id)
print(s2.name)
print(s2.age)
运行结果:
python
1023
张三
20
6、
python
import json
filename="../files/student.json";
print()
print('filename -> ', '\'', filename, '\'', sep='')
print()
with open(filename,'r',encoding='utf-8')as ff:
print("将文件内容以字符串形式输出")
rr=ff.read()
print(rr)
print()
print("将文件内容处理为一个字典对象")
dic=json.loads(rr)
print(dic)
print(type(dic))
print()
js=json.dumps(dic,ensure_ascii=False)
print(js)
print(type(js))
运行结果:
python
将文件内容以字符串形式输出
{
"id": 1024,
"name": "王小明",
"age": 21,
"score": [
77, 88, 98
]
}
将文件内容处理为一个字典对象
{'id': 1024, 'name': '王小明', 'age': 21, 'score': [77, 88, 98]}
<class 'dict'>
{"id": 1024, "name": "王小明", "age": 21, "score": [77, 88, 98]}
<class 'str'>
7、用最简洁的方法生成一个一维整型数组,共计17个元素,每个元素都在10-150之间。要求升序排列,降序排列,统计数组的最大值,最小值,平均值。
法一:
python
import random
a= [random.randint(10, 150) for i in range(7)]
# 升序排列数组
arr_asc = sorted(a)
print(arr_asc)
# 降序排列数组
arr_desc = sorted(a, reverse=True)
print(arr_desc)
# 统计数组最大值、最小值、平均值
max_val = max(a)
min_val = min(a)
avg_val = sum(a) / len(a)
print("最大值:", max_val)
print("最小值:", min_val)
print("平均值:", avg_val)
运行结果:
python
[20, 30, 44, 77, 134, 145, 148]
[148, 145, 134, 77, 44, 30, 20]
最大值: 148
最小值: 20
平均值: 85.42857142857143
法二:
python
from random import randint
nn = 7
arr = [randint(10, 150) for k in range(nn)]
print("*** 原始数组 ***")
for elem in arr:
print('->', elem)
print("*** 升序 ***")
arr.sort()
for elem in arr:
print('->', elem)
print("*** 降序 ***")
arr.sort(key=lambda e: -e)
total = 0
for elem in arr:
total += elem
print('->', elem)
print("*** 最值 ***")
print('max ->', arr[0])
print('min ->', arr[-1])
print('average ->', total / nn)
运行结果:
python
*** 原始数组 ***
-> 61
-> 29
-> 65
-> 62
-> 111
-> 33
-> 133
*** 升序 ***
-> 29
-> 33
-> 61
-> 62
-> 65
-> 111
-> 133
*** 降序 ***
-> 133
-> 111
-> 65
-> 62
-> 61
-> 33
-> 29
*** 最值 ***
max -> 133
min -> 29
average -> 70.57142857142857
8、从一个名为dept.txt的文件中读取数据,将这些数据存储在一个Dept类的实例中,并将所有实例存储在一个名为depts的列表中。
python
from ming import BaseClass
class Dept(BaseClass):
pass
depts = []
names = ['deptno', "dname", 'loc']
nn = names.__len__()
with open("../files/dept.txt", 'r', encoding="UTF-8") as ff:
rr = ff.read()
rows = rr.split("\n")
for row in rows:
cols = row.split(",")
dept = Dept()
for i in range(nn):
dept.__setattr__(names[i], cols[i])
depts.append(dept)
for dept in depts:
print(dept)
python
import json
import random
import time
'''
生成一个随机整数,如果无参,则返回100以内的整数
如果传递了参数,则返回0-参数间的随机整数
'''
def rnd(value=100):
return int(random.random() * value)
'''
输入两个整数参数,返回两数之间的随机值
'''
def rd(a=0, b=100):
return int(a + random.random() * (b - a))
'''
一个通用的父类,主要是在输出类对象时,以JSON的方式输出
'''
def tojson(dic):
return json.dumps(dic, indent=4, ensure_ascii=False,
default=lambda o: o.__dict__)
class BaseClass(object):
def __str__(self):
return json.dumps(self, indent=4,
ensure_ascii=False,
default=lambda obj: obj.__dict__)
'''
以 10 进制表示的RGB 颜色
'''
def rgb():
return 'rgb(' + str(random.randint(0, 255)) + "," + str(
random.randint(0, 255)) + ',' + str(
random.randint(0, 255)) + ")"
'''
16 进制颜色
'''
def hexcolor():
cstr = 'ABCDEF01234567890'
rr = '#'
for i in range(6):
rr += cstr[rnd(len(cstr))]
return rr
'''
一个用于统计函数运行时间的装饰器类
'''
class MyTimer:
def __init__(self, func):
self.func = func
def __call__(self, *args, **kwargs):
begin = time.time()
val = self.func(*args, **kwargs)
end = time.time()
print(f'用时 : {end - begin} 秒!')
if val is not None:
print('->', val)
'''
一个用于带异常处理函数的装饰器类
'''
class ExpTry:
def __init__(self, func):
self.func = func
def __call__(self, *args, **kwargs):
try:
ret = self.func(*args, **kwargs)
if ret is not None:
print('返回 ->', ret)
except Exception as err:
print('出错信息: ', err)
return
'''
一个用于统计时间的装饰器类
'''
class TimeIt:
def __init__(self, prefix, postfix):
self.prefix = prefix
self.postfix = postfix
def __call__(self, func):
def wrapper(*args, **kwargs):
start = time.time()
val = func(*args, **kwargs)
if val is not None:
print('返回 ->', val)
end = time.time()
print(
f'{self.prefix} : {end - start} {self.postfix}!')
return wrapper
运行结果:
python
{
"deptno": " 10",
"dname": "ACCOUNTING",
"loc": "NEW YORK"
}
{
"deptno": " 20",
"dname": "RESEARCH",
"loc": "DALLAS"
}
{
"deptno": " 30",
"dname": "SALES",
"loc": "CHICAGO"
}
{
"deptno": " 40",
"dname": "OPERATIONS",
"loc": "BOSTON"
}
9、
python
from pyecharts.faker import Faker
# 产生七种动物
animals = Faker.animal
print(type(animals))
for animal in animals:
print('->', animal)
print('* * * * * * * * * * * * * * * * * * * * * * * * *')
# 产生七种水果
fruits = Faker.fruits
for fruit in fruits:
print('->', fruit)
print('* * * * * * * * * * * * * * * * * * * * * * * * *')
# 产生七种饮料
drinks = Faker.drinks;
for drink in drinks:
print('->', drink)
print('* * * * * * * * * * * * * * * * * * * * * * * * *')
# 产生七种0-150之间的随机整数
values = Faker.values()
for value in values:
print('->', value)
print('* * * * * * * * * * * * * * * * * * * * * * * * *')
# 产生七种服装
clothes = Faker.clothes
for clothe in clothes:
print('->', clothe)
运行结果:
python
-> 河马
-> 蟒蛇
-> 老虎
-> 大象
-> 兔子
-> 熊猫
-> 狮子
* * * * * * * * * * * * * * * * * * * * * * * * *
-> 草莓
-> 芒果
-> 葡萄
-> 雪梨
-> 西瓜
-> 柠檬
-> 车厘子
* * * * * * * * * * * * * * * * * * * * * * * * *
-> 可乐
-> 雪碧
-> 橙汁
-> 绿茶
-> 奶茶
-> 百威
-> 青岛
* * * * * * * * * * * * * * * * * * * * * * * * *
-> 33
-> 58
-> 39
-> 68
-> 89
-> 75
-> 23
* * * * * * * * * * * * * * * * * * * * * * * * *
-> 衬衫
-> 毛衣
-> 领带
-> 裤子
-> 风衣
-> 高跟鞋
-> 袜子
10、
python
from pyecharts.faker import Faker
# 产生16进制的随机颜色
for i in range(5):
print('->', Faker.rand_color())
print()
# 产生一周的日期
weeks = Faker.week
print(weeks)
print()
# 产生七个国家
cc = Faker.country
for c in cc:
print('->', c)
print()
# 产生七种名车
cars = Faker.cars
for car in cars:
print('->', car)
print()
# 产生七种名犬
dogs = Faker.dogs
for dog in dogs:
print('->', dog)
print()
# 产生 12 月份
months = Faker.months
print('->', months)
print()
# 产生七种手机品牌
phones = Faker.phones
print(phones)
print()
# 产生七个省或直辖市
provinces = Faker.provinces
print('->', provinces)
运行结果:
python
-> #bda29a
-> #c23531
-> #d48265
-> #1d953f
-> #f05b72
['周一', '周二', '周三', '周四', '周五', '周六', '周日']
-> China
-> Canada
-> Brazil
-> Russia
-> United States
-> Africa
-> Germany
-> 宝马
-> 法拉利
-> 奔驰
-> 奥迪
-> 大众
-> 丰田
-> 特斯拉
-> 哈士奇
-> 萨摩耶
-> 泰迪
-> 金毛
-> 牧羊犬
-> 吉娃娃
-> 柯基
-> ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
['小米', '三星', '华为', '苹果', '魅族', 'VIVO', 'OPPO']
-> ['广东省', '北京市', '上海市', '江西省', '湖南省', '浙江省', '江苏省']