python入门学习心得 22.1.23

第六章 字典与集合

1.字典的概念与基本操作(方法get)

字典是一系列键值对

访问值,添加键值对,修改值,创建空字典(用户提供数据或能自动生成大量键值对)

删除键值对:del 字典名[键名]

由类似对象组成的字典:常用的存储格式如下

rivers={'nile':'egypt',
        'yangtze':'china',
        'amazon':'brazil',      #在最后一个键值后面也加上逗号,以便后续添加键值
        }

使用方法get()来访问值:

.get(键,不存在时的返回值)

若没有指定第二个参数且该键不存在,则返回None

print(alien_0.get('color','No'))    #若无键则返回指定信息

2.遍历字典

(1).遍历所有键值对

用两个变量存储键和值,再利用方法.item()返回一个键值对列表

for key,value in alien_0.items():   #~.item():返回一个键值对列表
    print(f"Key:{key}")
    print(f"Value:{value}\n")
    #若直接遍历字典,则会默认遍历所有键,效果同~.keys()

(2).遍历所有键

用一个变量存储键,再利用方法.key()返回一个键列表

若单纯遍历字典,会默认遍历所有键,其效果与使用方法key()一样,但我们为了便于理解,应显式地使用方法key()

(3).按特定顺序遍历所有键

可以对字典方法key()的结果调用函数sorted()

(4).遍历字典的所有值

用一个变量存储值,再利用方法.value()返回一个值列表

这样没有考虑是否重复,为剔除重复项,可使用集合

3.集合

(1).集合的基本概念

set()函数可找出列表中独一无二的元素,并创建一个集合

集合支持:

①成员操作符号(即in) ②for循环 ③len()获取集合长度 ④.clear()清空集合

而不能使用:索引、切片、连接、重复

(2).空集合的定义方式

注意与空字典定义的区别

s = set([])     #空集合定义
sl = {}         #对比:空字典定义 

(3).列表去重方法

将列表先转换为集合,利用集合去重的特性去重,再转换为列表

li = [1,2,3,1,1,2,3]
print(list(set(li)))    #列表去重:将其转化为集合类型去重,然后再转为列表类型输出

(4).增删元素

s = {6,7,8,9}
s.add(1)            #增加一个元素
s.update({5,3,2})    #增加几个元素
s.remove(1)          #删除集合中指定的元素,若元素不存在则报错
s.discard(10)        #删除集合中指定的元素,若元素不存在则不做任何事
s.pop()              #随机删除集合中的某个元素,并返回删除的元素

(5).交集并集差集

4.字典的嵌套

(1).字典列表

即列表的元素是字典,便于使用循环,切片或if语句

(2).在字典中存储列表

即字典键的值是一个列表

(3).在字典中存储字典

即字典键的值是一个字典,下面为一个例子

注意:字典中存储字典时,读取的时候考虑读取方式

cities={
    'sh':{'country':'china','rank':'NO1'},
    'ny':{'country':'america','rank':'NO2'},
    'bj':{'country':'china','rank':'NO3'},
    }
​
for city,info in cities.items():
    print(f"{city.upper()} is in {info['country'].title()}, and it ranks {info['rank']}.")

第七章 用户输入和while循环

1.获取用户输入

(1).函数input()

用户输入,可以显示提示(prompt)

语法:a = input("提示内容")

+=运算符可以在字符串末尾再加一个字符串

message=input("Tell me sth:")   #括号内为提示内容prompt
print(message)
​
prompt="Please tell me ..."
prompt+="\nWhat's your name? "  #新运算符+=
name=input(prompt)
print(name.title())

(2).使用int()来获取数值输入

函数input()默认返回的字符串,可使用int()转换为数值输入

2.while循环

(1).基本语法格式

注意while语句这一行最后要有冒号(和for语句和if语句一样)

可以定义一个标志(flag),在循环节中指定触发条件,用以判断while循环是否继续

定义某个变量
while + 条件测试 :
    循环代码块

(2).实现命令行提示符

①break:跳出整个循环,不会再执行循环后续的内容

②continue:跳出本次循环,continue后面的代码不再执行,但是还是会继续循环

③exit():结束程序的运行

current_number=0
while current_number < 10:
    current_number += 1
    if current_number % 2 == 0:
        continue                    #跳过偶数
    print(current_number)

(3).使用while循环处理列表和字典

for循环是一种遍历列表的有效方式,但不应在for循环中修改列表,否则将难以跟踪期中的元素

通过将while循环同列表和字典结合起来使用,可收集、存储并组织大量输入,供后续查看和显示

可用以在列表之间移动元素,删除为特定值的所有列表元素(使用remove),使用用户输入来填充字典(利用flag)

第八章 函数

1.基本语法格式

注意点:def 冒号 文档字符串 缩进 形参和实参

可以设定返回值,其数据类型可以是字符串,字典

可以通过函数修改列表

如果不想让函数修改列表,可以向函数传递列表的副本(即切片[:]),这样就不会影响原列表

一般不应传递副本,因为创建副本所花的时间和内存会降低效率

def favorite_book(book):
    """显示最喜欢的书名"""          #文档字符串(注释)
    print(f"My favorite book is {book.title()}")
    return xxx              #部分函数有返回值
​
favorite_book('love')

2.传递实参的方式

(1).位置实参

即按照默认对应的顺序

(2).关键字实参

在调用函数时,明确指出各个实参对应的形参

describe_pet(pet_name='harry',pet_type='hamster')
describe_pet(pet_type='hamster',pet_name='harry')       #两者是等价的,无所谓顺序

(3).默认值

可以在形参列表中指定默认值,可以简化函数调用并指出函数典型用法

默认值必须放在形参列表的最后;如果想要放在中间,后面应加上星号隔开

将默认值设为空字符串,可以让实参变成”可选的“

3.传递任意数量的实参

(1).结合使用位置实参和任意数量实参

在形参名前加一个星号,eg:def pizza(*toppings):

星号表示python会创建一个名为形参名的新元组,并将所有值封装到这个元组中,然后再循环执行函数

如果要接受不同类型的实参,那么星号形参必须放在最后,python会先匹配位置实参和关键字实参,再收集余下的实参到星号形参中 eg:def pizza(size,*toppings):

通用形参名*args,表示收集任意数量的位置实参

(2).使用任意数量的关键字实参

能接受任意数量的键值对

两个星号表示让python创建一个名为user_info的空字典,并将收到的键值对放到这个字典里

通用形参名**kwargs,表示收集任意数量的关键字实参

def build_profile(first,last,**user_info):
    """创建一个字典,其中包含我们知道的有关用户的一切"""
    user_info['first_name'] = first
    user_info['last_name'] = last
    return user_info
​
user_profile = build_profile('albert','einstein',
                            location='princeton',       #注意这里的location没有加引号
                            field='physics')
print(user_profile)

4.将函数存储在模块中

将函数存储在称为模块的独立文件中,再将模块导入到主程序中,模块是扩展名为.py的文件

import语句允许在当前运行的程序中使用模块中的代码

(1).导入整个模块

直接import+文件名 eg:import pizza

要调用被导入模块的函数,可指定模块名称和函数名,并用句点分隔 eg:pizza.make_pizza()

(2).导入特定的函数

语法:from module_name import function_0, function_1, function_2

此时调用函数无须加句点,因为在import语句中显式地导入了函数

(3).使用as给函数指定别名

eg:from pizza import make_pizza as mp

此时调用函数只需mp()

(4).使用as给了模块指定别名

eg:import pizza as p

此时调用函数只需p.make_pizza()

(5).导入模块中的所有函数

使用星号(*)运算符可以让python导入模块中的所有函数

eg:from pizza import *

5.函数编写规范

①给函数和模块命名时,应只使用小写字母和下划线

②在文档字符串中应当简要阐释函数功能

③给形参指定默认值时,和调用函数时的关键字实参,等号两边不要有空格

④代码行的长度不要超过79,可在函数定义中输入左括号后回车,并按两次Tab,从而将形参列表和只缩进一层的函数体区分开来

⑤编写多个函数时,每个函数之间空两行,便于区分

⑥所有import语句都应放在文件开头,除非在文件开头使用注释来描述整个程序

今日随手记

a=car==‘bmw' 优先执行条件测试,再把True或False赋给a

Shift+Alt+E        可以直接运行选中的一段代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值