Python黑马学习笔记Day04

# 字典 dict


​​​​# 用{}定义,用键值对组成
# 变量 = {key1: value, key2: value, ...} 一个key: value是一个元素
# 字典的key可以是字符串类型和数字类型,不能是列表,value可是以任意类型

 # 定义空字典

my_dict = {}
my_dict1 = dict()
print(type(my_dict))  # <class 'dict'>
print(type(my_dict1))  # <class 'dict'>


# 定义带数据的字典 

my_dict2 = {'name': 'zhangsan', 'age': 18, 'sex': '男', 'course': ['数学', '语文', '英语'], 1: [2, 3]}
print(my_dict2)  # {'name':'zhangsan', 'age': 18, 'sex':'男', 'course': ['数学', '语文', '英语'], 1: [2, 3]}
# 访问value值,在字典中没有下标的概念,使用key值访问对应的Value值
print(my_dict2['name'])  # zhangsan
print(my_dict2['course'])  # ['数学', '语文', '英语']
print(my_dict2['course'][1])  # 语文       因为my_dict2['course']的值是一个列表,列表可以使用下标查找值
# 如果key值不存在,程序会报错
# dict.get(key) 也可以查找value值
print(my_dict2.get('name'))  # zhangsan
print(my_dict2.get('course'))  # ['数学', '语文', '英语']
print(my_dict2.get('course')[1])  # 语文       因为my_dict2.get('course')的值是一个列表,列表可以使用下标查找值
print(my_dict2.get('salary'))  # None  用这种方式,找不到时会输出None,不会报错
# dict.get(key,数据值) 如果key存在,返回key对应的value值,如果key不存在,返回书写的数据值
print(my_dict2.get("salary", 'NO'))  # NO
print(len(my_dict2))  # 5  键的数目就是长度数

# 字典中的添加数据和修改数据

my_dict = {'name': 'zhangsan'}
# 字典中添加和修改数据,使用key值进行添加和修改
# dict[key] = 数据值    如果key值存在,就是修改,不存在就是添加
my_dict['age'] = 18  # key值不存在,添加
print(my_dict)  # {'name': 'zhangsan', 'age': 18}
my_dict['age'] = 19  # key值已经存在,修改
print(my_dict)  # {'name': 'zhangsan', 'age': 19}
# key值 int的1和float的1.0代表一个数据
my_dict[1] = 'int'
print(my_dict)  # {'name': 'zhangsan', 'age': 19, 1: 'int'}
my_dict[1.0] = 'float'
print(my_dict)  # {'name': 'zhangsan', 'age': 19, 1: 'float'}

 # 字典中删除数据

# del  根据key值删除数据  dict[key]
my_dict = {'name': 'zhangsan', 'age': 19, 1: 'float', 'password': 123456}
del my_dict['name']
print(my_dict)  # {'age': 19, 1: 'float', 'password': 123456}
# pop  根据key值删除数据  dict.pop(key)
my_dict.pop('age')
print(my_dict)  # {1: 'float', 'password': 123456}
# clear()  # 清空字典,删除所有键值对  dict.clear()
my_dict.clear()
print(my_dict)  # {}
# 补充: del.dict 会直接删除这个字典,就是说之后不能再直接使用这个变量了,需要重新定义
# del my_dict
# print(my_dict)  # 代码报错,变量未定义  NameError: name 'my_dict' is not defined

# 字典的遍历

# for循环直接遍历,是对key值直接遍历
my_dict = {'name': 'zhangsan', 'age': 19, 1: 'float', 'password': 123456}
for key in my_dict:
    print(key)
# name
# age
# 1
# password
for key in my_dict:
    print(key, my_dict[key])
# name zhangsan
# age 19
# 1 float
# password 123456
# dict.keys() 获取字典中所有的key值,得到的类型是dict_keys,该类型具有的特点是:
# 1.可以使用list()进行类型转换,即将其转换为列表类型
# 2.可以使用for循环进行遍历
my_dict = {'name': 'zhangsan', 'age': 19, 1: 'float', 'password': 123456}
results = my_dict.keys()
print(results)  # dict_keys(['name', 'age', 1, 'password'])
for key in results:
    print(key)
# name
# age
# 1
# password
# dict.values()
results = my_dict.values()
print(results)  # dict_values(['zhangsan', 19, 'float', 123456])
for value in results:
    print(value)
# zhangsan
# 19
# float
# 123456
# dict.items()  获取所有的键值对,类型是dict_items
# 1.可以使用list()进行类型转换,即将其转换为列表类型
# 2.可以使用for循环进行遍历
result = my_dict.items()
print(result, type(
    result))  # dict_items([('name', 'zhangsan'), ('age', 19), (1, 'float'), ('password', 123456)]) <class 'dict_items'>
for item in result:
    print(item, item[0])  # item是元组类型,可以使用下标查找,查找每个元组里的下标为0的值
# ('name', 'zhangsan') name
# ('age', 19) age
# (1, 'float') 1
# ('password', 123456) password
for k, v in result:  # k 是元组中的第一个数据,v 是元组中的第二个数据
    print(k, v)
# name zhangsan
# age 19
# 1 float
# password 123456
# 等同于
# for item in result:
#    print(item[0], item[1])
# enumerate  将一个可遍历的数据对象(如列表、元组或字符串)中元素所在的下标和具体元素数据组合在一起,变成元组
my_list = ['a', 'b', 'c', 'd', 'e']
for i in my_list:
    print(my_list.index(i), i)  # 找到对应的下标和元素
# 0 a
# 1 b
# 2 c
# 3 d
# 4 e
for j in enumerate(my_list):
    print(j)
# (0, 'a')
# (1, 'b')
# (2, 'c')
# (3, 'd')
# (4, 'e')

# 公共方法

# 1.运算符


# + 合并  支持类型:字符串,列表,元组
a = [1, 2] + [3, 4]  # [1, 2, 3, 4]
# * 复制  支持类型:字符串,列表,元组
b = ['hi'] * 4  # ['hi', 'hi', 'hi', 'hi']
# in 元素是否存在  支持类型:字符串,列表,元组,字典(在字典中判断的是key)
c = 3 in (1, 2, 3)  # True
# not in  元素是否不存在  支持类型:字符串,列表,元组,字典(在字典中判断的是key)
d = 3 in (1, 2, 3)  # False

# 2.Python内置函数


# len(item) 计算容器中元素个数
# max(item) 返回容器中元素最大值  对于字典来说比较的是key值
# min(item) 返回容器中元素最小值  对于字典来说比较的是key值
# del(item) 删除变量

# 函数


# 函数定义

def 函数名(): 代码,规范定义函数的代码块前后都要与别的代码空两行


# 函数的文档说明

本质就是注释,告诉别人这个函数是干什么用的,不过这个注释有特定的书写要求,要写在函数名字的下方
# 规范函数文档说明用三个双引号

def func():
    """
    打印输出一个hello world!
    """
    print("hello world!")
# 查看函数文档注释可以使用help(函数名)
help(func)
# Help on function func in module __main__:
#
# func()
#     打印输出一个hello world!

# 用函数定义求任意两个数的和

# def num_sum():
#     num1 = float(input("请输入数字一:"))
#     num2 = float(input("请输入数字二:"))
#     sum_result = num1 + num2
#     print(sum_result)
#
#
# num_sum()
def num_sum(a, b):  # a和b称为形式参数,简称形参
    result = a + b
    print(f"{result:.2f}")

# 函数调用

如果函数在定义的时候有形参,那么在函数调用的时候,必须传递参数值,这个参数我们称为实际参数,简称实参
# 在函数传递的时候会将实参的值传递给形参
# 形参的个数与实参的个数要一样

num_sum(11.3, 15.4)  # 把11.3给了a,把15.4给了b

# 局部变量,就是在函数内部定义的变量
# 局部变量只能在函数内部使用,不能在函数外部和其他函数中使用
# 函数内部可以直接访问全局变量的值
# 函数内部不可以直接修改全局变量的值,想要在函数内部修改全局变量的值需要使用global关键字声明这个变量为全局变量

num = 10  # 全局变量
g_num = 20
def func():
    num = 100  # 局部变量
    global g_num
    g_num = 200
func()
print(num)  # 10  因为在函数外的输出要用全局变量
print(g_num)  # 200 global 把全局变量的值修改为200了

# 函数返回值


# 在函数中定义的局部变量,或者通过计算得出的局部变量,想要在函数外部访问和使用,此时就可以使用return关键字,将这个返回值返回
# return关键字的作用:将return后面的数据值返回,程序代码遇到return时会终止执行
# 注意点:return 关键字必须要写在函数中,值返回到调用的地方

def num_add(a, b):
   c = a +b
 # 想要将求和的结果c返回,即函数外部使用求和的结果
   return c
   print(f"输出的结果是:{c}")  # 这样写的话,由于函数遇到return会终止运行,所以这一行无法运行
num_add(100,200)  # 无结果展示
def num_add1(a, b):
   c = a +b
   # 想要将求和的结果c返回,即函数外部使用求和的结果
   return c
res = num_add1(100,200)
print(f"函数外部获得了求和的结果:{res}")

# 函数返回多个数据值

def func(a, b):
    c = a + b
    d = a - b
    # 需求:想要将c 和 d 的值都返回
    # 容器可以保存多个数据值,就可以将c和d放到容器中返回
    return [c, d]  # 返回一个列表
#   return (c, d)  # 返回一个元组
#   renturn {0: c, 1: d}  # 返回一个字典
#   return c, d  默认是组成元组进行返回的
result = func(100, 200)
print(f"a+b的结果是{result[0]},a-b的结果是{result[1]}")
# return后面可以不写数据值,默认返回None
# 函数可以不写return,默认返回None

# 函数嵌套调用

def func():
    print("func start ......")
    print("函数的其他代码")
    print("func end")
def func1():
    print("func1 start ...... ")
    func1()
    print("func1 end ......")
func1()

# 用函数打印一条横线

def print_one_line():
        print('-'*30)
print_one_line()  # ------------------------------

# 用函数打印5条直线

def print_lines(n):
    for i in range(n):
        print('-'*30)
print_lines(5)
# ------------------------------
# ------------------------------
# ------------------------------
# ------------------------------
# ------------------------------

# 写一个函数求三个数的和

def sum(a, b, c):
    res = a + b + c
    return res
a, b, c = input("请分别输入a, b, c的值:").split()
a = float(a)
b = float(b)
c = float(c)
num_sum = sum(a, b, c)
print(num_sum)

# 写一个函数求三个数的平均值

def avg(a, b, c):
    res = (a + b + c) / 3
    return res
a, b, c = input("请分别输入a, b, c的值:").split()
a = float(a)
b = float(b)
c = float(c)
num_avg = avg(a, b, c)
print(num_avg)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值