《python编程从入门到实践》读书笔记2

2020-12-02

元组可以看成不可变的列表

虽然不可以修改元组内元素的值,但是可以使用赋值语句重新定义元组。

每条if语句的核心都是一个值为TrueFalse的表达式,这种表达式被称为条件测试,如果条件测试的值为True,就执行if下方代码;如果为False则忽略。

可以使用and或者or来检查多个条件。

要判断特定的值是否包含在列表中,可以使用关键字in或者not in

if-elif-else 语句,有时候可以将elseelif代替,以防止引入无效甚至恶意数据。这种语句仅适用于只有一个条件满足的情况,并且跳过其他情况。如果有多个条件都需要检查,就需要使用一串简单的if语句。

requested_toppings = []

if requested_toppings:
    for request_topping in requested_toppings:
        print("Adding " + "requested_topping" + ".")

    print("\nFinished making your pizza!")

else:
    print("Are you sure you want a plain pizza?")

字典是一系列键值对,可以将任何python对象作为键值对的值。

对于字典中不再需要的信息,可以使用del语句将相应的键值对彻底删除,使用del语句时,必须指定字典名和要删除的键。

遍历字典:

要编写用于遍历字典的for循环,可声明两个变量,用于存储键值对中的键和值,对于这两个变量,可以使用任何名称。for循环语句的第二部分包含字典名和方法items(),它返回一个键值对列表,接下来,for循环依次将每个键值对存储到指定的两个变量中。

han = {"name":"hanmeng",
       "birth_day":"1993",
       "age":"27"}
for key, value in han.items():
    print("\n查询:" + key)
    print("结果:" + value)
查询:name
结果:hanmeng

查询:birth_day
结果:1993

查询:age
结果:27

注意这里有个items()方法。https://www.runoob.com/python3/python3-att-dictionary-items.html

Python 字典 items() 方法以列表返回可遍历的(键, 值) 元组数组。
在这里插入图片描述
在不需要字典中的值时,方法keys()很有用。

for name in dict.keys():

因为遍历字典时,默认遍历所有的键,因此此处的keys()方法可以省略。方法keys()并非只能用于遍历,实际上,它返回一个列表,其中包含字典中的所有键,因此可以使用下面语句来确实某项是否在字典中:

if "gender" not in han.keys():
	han["gender"] = "male"

注意此处的"gender"要加引号。

因为字典中的键值对是无序的,如果想要以特定的顺序返回元素,可以使用for循环对返回的键进行排序:

for key in sorted(han.keys()):

如果感兴趣的是字典的值,可以使用方法values(),它返回一个值列表

虽然键是唯一的,但是有时值可能有重复,我们可以调用集合set,来剔除重复项。

for language in set(languages.values()):

知识点:set()

2020-12-03

在这里插入图片描述
在这里插入图片描述
嵌套
一系列字典可以存储在列表中,或者将列表作为值存储在字典中。

每当需要在字典中将一个键关联多个值时,都可以在字典中嵌套一个列表

函数int()将数字的字符串表示转换为数值表示,可以用于用户输入进行数值判断。

求模运算符 (%) :将两个数相除并返回余数

如果想要保持程序秩序运行,知道满足条件再终止,需要使用while循环。

有时候导致程序终止的事件很多,我们可以设置一个flag,用来当做程序是否运行的指示灯,并将while循环只检查这一个flag,将判断语句放到其他部分,可以使代码更简洁。

active = True
while active:
	message = input("提示")
	if message == "quit":
		active = False
	else:
		print(message)

想要退出循环也可以用break,在任何python循环中都可以使用break语句。

要返回循环开头,并根据条件测试结果决定是否继续执行循环,可以使用continue语句。例如要打印1到10以内的奇数:

num =0
while num < 10:
	num += 1
	if num % 2 == 0:
		continue
	print(num)

可以使用while循环来处理列表和字典。

在进行函数调用时,可以使用关键字实参,也就是传递给函数名称-值对,这样就可以不用考虑实参的位置。

def han(name, age):
    print("小%s,你已经%s岁了"%(name,age))

han(age = "27", name = "韩")

有时候函数需要返回值,需要定义变量来接收。

可以向函数传递列表,然后再函数块内部使用for循环等来对列表的值进行操作。

方法和函数的调用方法不同。

为何必须在方法定义中包含形参self呢?因为python调用这个__init__()方法来创建Dog实例时,将自动传入实参self。每个与类相关联的方法调用都会自动传入实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。

定义子类时,要super父类的初始化方法

一个类创建的实例可以是另一类的属性。

class Battery():
	def __init__(self,battery_size = 70):
		self.battery_size = battery_size
	def describe_battery(self):
		print("This is" + str(self.battery_size) + "kWh battery")

class ElectricCar(car):
	def __init__(self,year, model):
		self.battery = Battery()

ElectricCar类中,我们添加了一个名为self.battery的属性,这行代码让python创建一个新的Battery实例,并将这个实例存储在属性self.battery中。

当使用ElectriCar类创建实例后,可以调用该属性和它封装的方法。

模块collections中有一个类,OrderedDict,是一个有序的字典类。

from collections import OrderedDict

my_dict = OrderedDict()

上述两句话就创建了一个有序的字典实例my_dict

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值