nlp——python学习记录

nlp——python学习记录,第1张

今天学习关于字典和函数定义的内容。

先是对字典dict的定义进行了描述,还有增删改查,字典是由键值对组成的。


# 字典 dict ,使用{}定义,由键值对组成
# 变量 = {key1:value1,......}
# 一个键值对是一个元素,字典的key可以是字符串类型或者数字类(int float),不能是列表
# value可以是任何类型

# 1.定义空字典
my_dict = {}
my_dict1 = dict()
print(my_dict,type(my_dict))
print(my_dict1,type(my_dict1))

# 2.定义带数据的字典
my_dict2 = {'name':'txt','age':18,'like':['学习','购物'],1:[2,5]}
print(my_dict2)
# 3.访问value值,在字典中没有下标的概念,使用key值访问对应的value值
print(my_dict2['age'])
print(my_dict2['like'][1])
# 如果key值不存在.代码会报错
# print(my_dict2['gender'])
# 字典.get(key)
print(my_dict2.get('gender'))  # 如果key不存在,返回none

# 补充:get的使用
# my_dict2.get(key,数据值)
# 如果key存在返回key对应的value值,如果不存在返回书写的数据值
print(my_dict2.get('gender','男'))  # 男
print(my_dict2.get('age',1))  # 存在返回了18,否则返回1
# 计算字典长度
print(len(my_dict2))

# 字典的添加和修改,使用key值进行添加和修改
# 字典[key] = 数据值,key值存在就是修改,不存在就是添加
my_dict = {'name':'txt'}
print(my_dict)
my_dict['age'] = 18  # 添加数据
print(my_dict)
my_dict['age'] = 22  # 修改数据
print(my_dict)
# 注意点,key值 int的1 和 float的1.0 代表一个数据
my_dict[1] = 'int'
print(my_dict)  # {'name': 'txt', 'age': 22, 1: 'int'}
my_dict[1.0] = 'float'
print(my_dict)  # {'name': 'txt', 'age': 22, 1: 'float'}

my_dict = {'name': 'txt', 'age': 22, 1: 'float'}
print(my_dict)
# 字典中删除数据
# 根据key值删除数据 del 字典名[key]
del my_dict[1]
print(my_dict)
# 字典.pop(key) 根据key值删除,返回值是删除的key对应的value值
result = my_dict.pop('age')
print(my_dict)
print(result)  # 返回的是对应的value值
# 字典.clear(),清空字典,删除所有的键值对
my_dict.clear()
print(my_dict)
# del 字典名,直接删除字典,不能再使用这个变量了,除非再次定义
del my_dict  # 很少进行使用
print(my_dict)  # 代码报错,变量未定义


my_dict = {'name': 'txt', 'age': 22, 1: 'float'}
# 字典中遍历数据
# for循环直接遍历字典,遍历的是key值
for i in my_dict:
    print(i,my_dict[i])

# 字典.keys(),获取字典中所有的key值,得到的类型是dict_keys,特点是
# 1.可以使用list()进行类型转换,即将其转换为列表类型
# 2.可以使用for循环进行遍历
result = my_dict.keys()
print(result,type(result))  # 
for key in result:
    print(key)

# 字典.values(),获取所有的value值,类型是dict_values
# 1.可以使用list()进行类型转换,即将其转换为列表类型
# 2.可以使用for循环进行遍历
result1 = my_dict.values()
print(result1,type(result1))
for value in result1:
    print(value)

# 字典.itmes(),获取所有的键值对,类型是dict_items
# key,value组成元组类型
# 1.可以使用list()进行类型转换,即将其转换为列表类型
# 2.可以使用for循环进行遍历
result2 = my_dict.items()
print(result2,type(result2))
for item in result2:
    print(item[0],item[1])

for k,v in my_dict.items():  # k是元组中的第一个数据,v是元组中的第二个数据
    print(k,v)

my_list = ['a','b','c','d','e']
for i in my_list:
    print(i)

for i in my_list:
    print(my_list.index(i),i)  # 下标,数据值

# enumerate(),与列表结合,将可迭代序列中元素所在的下标和具体元素数据组合在一块,变成元组
for j in enumerate(my_list):
    print(j)

# 公共方法
# +,合并,字符串,列表,元组,得到新的容器
# * 整数,复制,字符串,列表,元组
# in/not in 判断存不存在,字符串,列表,元组,字典(key值是否存在)
# len,max,min,del
# max,min对于字典来说,比较的是key值大小
# 示例:my_dict = {'a':80,'b':20,'c':10}
# max(my_dict)
# 'c'
my_dict2 = {'name':'txt','age':18,'like':['学习','购物'],1:[2,5],
            'aa':{'a':1,'b':2}}
print(my_dict2)
print(my_dict2['aa']['b'])

my_list = [{},{},{},my_dict2]  # 套娃感
print(my_list)

 下面是关于函数的笔记内容。

# 函数:print,len,input
# 函数可以实现一个具体的功能,是多行代码的整合
# 定义函数: def 函数名(): 代码(函数体),只有调用才会执行
# 函数名要遵循标识符的规则,见名知意
# 函数的好处:重复的代码不需要多次进行书写,减少代码冗余
print('函数定义前:')


def func():
    print('好好学习')
    print('good good study')
    print('认真听讲哦')


# 函数调用,
print('函数定义后')
print('函数调用前')
func()  # 代码跳转到函数定义处
print('调用后')
func()
func()

'''
# 函数的文档说明本质就是注释,告诉别人这个函数的使用方法以及用处
# 只不过这个注释有特定的位置书写要求,要卸载函数名字的下方


# def func():
    # '''
    # 打印输出一个love
    # '''
    # print('love')


# func()
# 查看函数的文档注释使用help(函数名)
# help(func)

# 定义一个带参数的函数
# 好处:可以使函数代码更加通用,适用更多的场景
# s实现两数之和
def add(a,b):  # 形参,函数定义时的参数
    # a = 10
    # b = 20
    c = a + b
    print(f'求和结果是{c}')
# 若函数有形参,调用时要传递参数,
# 这里的参数称为实参,函数调用时的参数,形参个数与实参个数需相同
# 会将实参传递给形参
add(20,13)
add(1,2)


# 局部变量,就是在函数内部定义的变量
# 局部变量的生存周期就是当调用时被创建,调用结束后就销毁
# 只能在函数内部使用,不能在函数外部或者其他函数中使用


def func():
    #定义局部变量
    num = 100
    print(num)


def func1():
    num = 200  # 这里和func中的num没有关系
    print(num)


func()
func1()
# print(num)代码报错,name 'num' is not defined

# 全局变量:在函数外部定义的变量
g_num = 100
# 1.能在函数内部访问全局变量


def func():
    print(g_num)


# 2.不能直接修改全局变量的值,需要使用global关键字


def func1():
    # g_num = 200  这里是定义一个局部变量,只是名字相同
    # 想要在函数内部修改全局变量的值,需要使用global
    global g_num
    g_num = 20


func()
func1()   # none
func()

# 函数返回值
# 在函数中定义的局部变量或者通过计算得出的局部变量,
# 想要在函数外部访问和使用,此时就可以使用return关键字,将这个返回值返回
# return 作用:将return后面的数据值进行访问,程序代码遇到return,会终止执行
# return 必须写在函数中
def add(a,b):
    c = a + b
    # 想要将求和结果返回c,在函数外部使用求和的结果
    return c  # 遇到return就结束,不会执行return后面的代码
    print(f'={c}')


result = add(1,2)  # 使用变量接收
print(result)

# return 返回多个数据值
# 程序代码遇到一个return之后,后续的代码不再执行,所以只能出现一个return
def func(a,b):
    c = a + b
    d = a - b
    # 需求是将c,d都返回
    # 容器可以保存多个数据组织,可以放入容器中返回
    #return [c,d]
    # 也可以返回一个元组(),字典也行{0:c,1:d}
    return c,d  # 默认是组成元组进行返回的


result = func(1,2)
print(f'求和结果是{result[0]},差结果是{result[1]}')

# return 关键字后边可以不写数据值,默认返回none,终止函数的运行
# 函数可以不写return,返回默认值是none

# 函数的嵌套调用


def func1():
    print('func1 start')
    print('函数其他代码')
    print('func1 end')


def func2():
    print('func2...')
    func1()  # 调用func1,调用其他的函数
    print('func2 end...')


# func1()
func2()

# 应用
# 1.定义一个函数,打印一条横线


def func():
    print('-'*30)


# 2.定义一个函数打印任意条数的横线
def print1(n):
    for i in range(n):
        func()


print1(5)

# 2.求三个数的和


def sum(a,b,c):
    return a + b + c


print(sum(1,2,3))  # 6
# 3.求三个数的平均数


def avg(a,b,c):
    res = sum(a,b,c)
    return res/3  # /除法运算得到的数据是float类型


print(avg(1,2,3))  # 2.0

下面是两道测试题,今天还没得很多测试题。

# 1. 下面的代码输出结果是什么
num = 10


def anum():
    num = 20  # 对于在函数内部的变量,如果改变没有global声明的变量,那么相当于是重新定义了一个与全局变量同名的局部变量


print(num)  # 10,所以这里输出的是全局变量,没有去调用到函数内部的num



# 2.现在要调用abnum函数,但是怕在调用的时候将参数的位置传错,如何避免这个情况?
# def abnum(big, small, middle):
#   .....#此处省略一千行代码
# 可以直接在函数定义下数据,这样子就不会混乱了

# 在填写个人资料时,如果选了女性,那么性别是女;如果不选性别,那就是默认是男,那么这个功能用函数怎么实现?
# 要求如下:定义一个函数gender,并在函数中将“所选性别为*”,并可以成功调用运行。


def gender(g = '男'):  # 默认值是男的,如果用户不输入则返回男,输入为女则返回女
    print("您的性别是:" + g)


gender()

下面是这几天来的小小总结笔记:(直接跟着老师总结的)

1.标识符规则: 由字母,数字和下划线组成,不能以数字开头
2.变量名不能和关键字重名.
3.关键字是系统定义好的标识符,具有特殊的作用.
4.数据类型: int(整型) float(浮点型) str(字符串类型) bool(布尔类型, True False) list(列表) tuple(元组)  dict(字典)
5.type() 函数可以查看变量的数据类型
6.输入: input()  --> str  类型转换 
   输出: print()  %s--字符串  %d -- int  %f--float    %--%%
7.f-string {变量}

8.逻辑运算符
    and  逻辑与 一假为假
    or   逻辑或 一真为真
    not  逻辑非 取反
9.比较运算符
    ==  (判等)      !=  (不等)

10.判断 if elif  else 
11.循环 while
12.for xx in 容器/range():
        pass
13.range(a, b, step)   [a, b) 之间的整数
14.break 终止循环
    continue 跳过本次循环,继续下次循环
    循环 else 结构: 循环不是被 break 终止的时候会执行 else 中的代码
                        
15.str: 下标 切片 
16.list: insert append extend ...                         
17.tuple: 元组中的数据不能修改 查询的方法  index()
18.dict: key:value 键值对的形式   

19.函数:
定义: 使用 def  关键字, 
def 函数名(形参列表):
    函数代码
    return 数据                    
    pass                    

20.只有调用该函数才会执行函数中的代码
     函数名(实参列表)   # 调用的格式
21.局部变量: 在函数内部定义的变量,只能在当前函数内部使用, 如果想要将这个变量在函数外部使用, ①可以 return 将这个变量返回  ② 使用 global,将其变为全局变量
22.全局变量: 在任意地方可以访问,想要在函数内部修改全局变量的值,使用 global 声明      

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/719057.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存