(一)创建函数
函数是带名字的代码块,用于完成具体的工作,使用关键词def来定义。
- 定义函数
def greet_user():
print("Hello!")
greet_user() #调用定义的函数
- 向函数传递信息
def language(name,language): #形参
print(f"{name} is good at {language}")
language('Bob','Python') #实参
language('Alice','C')
- 形参指定默认值后,可在函数调用中省去相应的实参
def pet(name,type='dog'): #'type'为默认值
print(f"Its name is {name}\nIts type is {type}")
pet('Dabai')
- 返回函数值
def format_name(first_name,last_name):
name=f"{first_name.title()} {last_name.title()}"
return name
name=format_name('li','wasai')
print(name)
- 传递任意数量的实参
def make_pizza(size,*toppings):
print(f"\nMaking a {size}-inch pizza with the following toppings:")
for topping in toppings:
print(f"- {topping}")
make_pizza(16,'mushrooms','green peppers','extra cheese')
- 使用任意数量的关键字实参
def build_profile(first,last,**user_info):
user_info['first_name']=first
user_info['last_name']=last
return user_info
user_profile=build_profile('Li','Wasai',
location='Jining',field='computer')
print(user_profile)
(二)导入函数
- 导入特定的函数array,arange等
from numpy import array,arange
print(array([1,2,3,4,5]))
- 使用as指定别名
import numpy as np
print(np.array([1,2,3,4,5]))
- 导入模块中所有函数
from numpy as *
print(array([1,2,3,4,5]))
八、类
面向对象编程
根据类来创建对象称为实例化
(一)创建和使用类
- 创建Dog类和实例
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
self.steps = 0 给属性制定默认值,无需再用形参来定义
def sit(self):
print(f"{self.name} is now sitting")
def roll_over(self):
print(f"{self.name} rolled over")
def run(self):
print(f"{self.name} have run {self.steps} steps")
def update_run(self,steps): #通过方法修改属性的值
self.steps=steps
#使用类和实例
my_dog = Dog('Dabai', 6)
print(f"its name is {my_dog.name}\nits age is {my_dog.age}")
my_dog.sit() #调用方法
my_dog.roll_over()
my_dog.run()
my_dog.update_run(10000)
my_dog.run()
- 方法__init__()
方法__init__()是类必不可少的,每当你根据Dog类创建新实例时,Python都会自动运行它。在这个方法的名称中,开头和末尾各有两个下划线,这是一种约定。
(二)继承
- 父类
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 on adometer!")
def increment_odometer(self,miles):
self.odometer_reading+=miles
- 子类
class Car:
--snip--
class ElectricCar(Car): #定义子类时,必须在圆括号内指定父类的办法
def __init__(self,make,model,year):
super().__init__(make,model,year) #super()让你能够调用父类的办法
self.battery_size=75 #让子类定义属性
def describe_battery(self): #让子类定义方法
print(f"This car has a {self.battery_size}-kwh battery")
def fill_gas_tank(self): #重写父类的方法
print("This car doesn't need a gas tank!")
my_tesla=ElectricCar('tesla','model s',2019)
print(my_tesla.get_descriptive_name())
my_tesla.describe_battery()
3.将实例用作属性
class Car:
--snip--
class Battery: #定义一个新类,表示电动汽车电瓶的属性和方法
def __init__(self,battery_size=75):
self.battery_size
def describe_battery(self):
print(f"This car has a {self.battery_size}-kwh battery")
class ElectricCar(Car): #定义子类时,必须在圆括号内指定父类的办法
def __init__(self,make,model,year):
super().__init__(make,model,year) #super()让你能够调用父类的办法
self.battery=Battery() #创建Battery实例赋给属性self.battery
def fill_gas_tank(self): #重写父类的方法
print("This car doesn't need a gas tank!")
my_tesla=ElectricCar('tesla','model s',2019)
print(my_tesla.get_descriptive_name())
my_tesla.battery.describe_battery()
读者福利:知道你对Python感兴趣,便准备了这套python学习资料
👉[[CSDN大礼包:《python安装包&全套学习资料》免费分享]](安全链接,放心点击)
对于0基础小白入门:
如果你是零基础小白,想快速入门Python是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,Python自动化测试学习等教程。带你从零基础系统性的学好Python!
👉Python学习路线汇总👈
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)
👉Python必备开发工具👈
温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
(1)Python所有方向的学习路线(新版)
这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
最近我才对这些路线做了一下新的更新,知识体系更全面了。
(2)Python学习视频
包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。
(3)100多个练手项目
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。