|
4. 列表
列表非常适合于存储程序运行期间可能变化的数据集。
遍历列表
- nums = ["alice","david","carolina"]
- for iter in nums:
- print(iter)
复制代码 创建数值列表
1、简单使用range() 函数- for value in range(1, 5);
- print(value)
复制代码 2、使用range() 创建数字列表- numbers = list(range(1, 6)) #使用list()将range()的结果直接转换为列表
- print(numbers)
复制代码 3、range() 指定步长- even_numbers = list(range(2, 11, 2))
- print(even_numbers)
- ---------------------------
- [2, 4, 6, 8, 10]
复制代码 4、对数字列表的简单计算- digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
- print(f"min(digits) = {min(digits)}\n")
- print(f"max(digits) = {max(digits)}\n")
- print(f"sum(digits) = {sum(digits)}\n")
复制代码 5、列表解析
将for循环和创建新元素的代码合并成一行,并自动附加新元素- squares = [value ** 2 for value in range(1, 11)] #每取出一个元素,都会进行平方的操作
- print(squares)
复制代码 使用部分列表
1、切片,创建切片可指定要使用的第一个元素和最后一个元素的索引- players = ["charles", "martina", "michael", "florence", "eli"]
- print(players[0:3]) #遵守左闭右开[?,?),不取右值
- print(players[:4]) #若没有指定第一个索引,将自动从列表开头开始
- print(players[:4]) #若没有指定第二个索引,则切片终止于列表末尾
- print(players[-3:]) #输出倒数后3个元素
复制代码 2、遍历切片,使用for循环- for iter in players[:3]:
- print(iter.title())
复制代码 3、复制列表
复制列表可创建一个包含整个列表的切片,同时省略起始索引和终止索引。注意这里不是将副本进行赋值,二者是指向同一个列表。- players = ["charles", "martina", "michael", "florence", "eli"]
- player1 = players[:]
复制代码 5. 元组
python将不能修改的值称为不可变的,而不可变的列表被称为元组。
定义元组
元组使用圆括号来标识。定义元组后,可使用索引来访问元组元素。- dimensions = (200, 50)
- print(dimensions)
- #TypeError: "tuple" object does not support item assignment(禁止修改元组)
复制代码 严格来说,元组是由逗号标识的,圆括号只是让元组看起来更整洁清晰。如果要定义只包含一个元素的元组,必须在这个元素后面加上逗号。遍历元组
- dimensions = (200, 50)
- for iter in dimensions:
- print(iter)
复制代码 修改元组变量
虽然不能修改元组的元素,但是可以给存储元组的变量赋值。如果需要存储的一组值在程序的整个生命周期内都不变,就可以使用元组。- dimensions = (200, 50)
- dimensions = (400, 100)
复制代码 6. 字典
字典是一系列键值对。每个键都与一个值相关联。可以使用键来访问相关联的值。字典用在花括号 ({ }) 中的一系列键值对表示。- alien = {"color":"green", "points":5}
- print(alien["color"]) #访问字典中的值
复制代码 添加键值对,可依次指定字典名、用方括号括起来的键和相关联的值。- alien["x_position"] = 0 #添加键值对
- alien["y_position"] = 25 #添加键值对
- alien_0 = {} #空字典
- del alien_0["point"] #删除键值对,彻底删除
复制代码 为避免在访问时指定的键不存在的问题,可使用get方法,返回一个默认值。- point_value = alien.get("points","No point value assigned.")
复制代码 1、遍历所有键值对- for key, value in user_0.items(): #items() 返回的是一个键值对列表
- print(f"\nKey:{key}")
- print(f"Value:{value}")
复制代码 2、遍历字典中的所有键- for name in language.keys(): #keys()返回的是一个列表,其中包含字典中的所有键
- print(name.title())
复制代码 3、按特定顺序遍历字典中的所有键- for name in sorted(languages.keys()):
- print(f"{name.title()},thank you for taking the poll")
复制代码 4、遍历字典中的所有值- for iter in languages.values():
- print(iter.title())
复制代码 这种做法提取字典中所有的值,而没有考虑是否重复。若重复值太多,最终的列表可能包含大量重复项,为剔除重复项,可使用集合set,使得集合中的每个元素都是独一无二的。- for iter in set(languages.values()):
- print(iter.title())
复制代码 7. 函数 input()
input()工作原理:让程序暂停运行,等待用户输入一些文本。- message = input("Tell me something, and I will repeat it back to you: ")
- print(message)
复制代码 使用函数input()时,Python将用户输入解读为字符串。但是我们想要使用整形数据的话,可以使用int()来获取数值输入- height = input("How tall are you,in inches?")
- height = int(height)
复制代码 8. 类
创建和使用类
给出一个类的使用例子:- class Dog:
- def __init__(self, name, age):
- self.name = name
- self.age = age
- def sit(self):
- printf(f"{self.name} is now sittig.")
- def roll_over(self)
- print(f"{self.name} rolled over!")
复制代码 注意:__init__() 是一个特殊的方法,当类创建一个新的实例时,会自动运行该方法。类似于C++里的构造函数。而self是指向实例本身的引用。
每个函数默认第一个参数都是self。
使用类和实例
继承
在既有类的基础上编写新类时,通常要调用父类方法__init()__。这将初始化在父类__init()__ 方法中定义的所有属性,从而让子类包含这些属性。给出一个例子:
Car父类代码:- class Car:
- def __init__(self,make,model, year):
- self.make = make
- self.model = model
- self.year = year
- self.odometer_reading = 0
-
- def get_descriptive_name(self):
- long_name = f"{self.year} {self.make} {self.model}"
- return long_name.title()
- def read_odometer(self):
- print(f"This car has {self.odometer_reading} miles on it.")
-
- def update_odometer(self, mileage):
- if mileage >= self.odometer_reading:
- self.odometer_reading = mileage
- else:
- print("You can't roll back an odometer!")
- def increment_odometer(self, miles):
- self.odometer_reading += miles
复制代码 电动汽车子类实现代码:- class ElectricCar(Car): #子类继承父类,是需要将父类放在子类括号中
- def __init__(self, make, model, year):
- #初始化父类属性
- super().__init__(make, model, year) #特殊方法,可以在子类中调用父类方法
-
- my_tesla = ElectricCar("tesla", "model s", 2019)
- print(my_tesla.get_descriptive_name())
复制代码 对于父类的方法,只要它不符合子类模拟的实物的行为,都可以进行重写。为此,可在子类中定义一个与要重写的父类方法同名的方法。这样,Python将不会考虑这个父类方法,而只关注在子类中定义的相应的方法。
导入类
Python标准库
类编码风格
来源:https://www.cnblogs.com/BrokenSnow/p/17560417.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
|