Python快速入门笔记

Python快速入门笔记

Anaconda环境配置笔记

基本指令

打开prompt

conda --version #查看Anaconda版本
conda env list #查看目前已经安装的环境
conda create -n 环境名称 python=3.9 #创建环境,指定python版本
conda activate 环境名称 #进入指定的环境
conda remove -n 环境名 -all #删除对应的环境
—————————————————--------------------
进入对应环境之后的操作:
pip install 对应的包 #在该环境下下载对应的包
pip list #查看该环境下已安装的包
————————————————————————————————————


pip和conda安装python包的区别:
1.conda是随着Anaconda得到安装而安装,pip是随着python的安装而安装。
2.conda既可以管理环境中的包,又可以管理环境,在conda看来,python也是一个包,所以conda可以更新环境中的python版本,但是pip不行,并且pip只能适用于python。
3.最重要的区别是,conda在安装包时,会附带安装该包需要的附属包,但是pip只能安装该包,不会主动安装需要的附属包。
    #有时候,pip安装不了的包可以用conda安装,conda安装不了的包可以用pip安装。

————————————————————————————————————————————————-----————

Python基本内容

第1章 变量和数据类型

1.1 变量

python始终记录变量的最新值

message = "first test"
print(message)

方法是Python可对数据执行的操作

name = "Ada Lovelace"
print(name.lower()) #其中lower()是方法,表示可以对name 执行该操作
\t表示tab
\n表示换行
print("languages:\n\tpython")
1.2 字符串
1.3 数

无论是哪种运算,只要有操作数是浮点数,Python默认得到的数总是浮点数,相除也是。

数中的下划线:书写很大的数时,可以使用下划线将数进行分组,不会影响数的值

universe_age = 14_000_000_000
print(universe_age)
>>>14000000000

一般用大写字母组成的字符串,用来表示常量

第2章 列表

列表中的元素之间可以没有任何关系,因此给列表起一个表示复数的名字会更好,比如names

列表的索引从0开始而不是1

names = ['Joe', 'Mike', 'Jin']
message = "My love is {}and{}".format(names[0], names[2])
2.1 列表添加元素

在列表的末尾添加元素

names = []
names.append('Joe')
names.append('Mike')

在列表中插入元素

names = ['Joe', 'Mike', 'Jin']
names.insert(0, 'July')
>>>names = ['July', 'Joe', 'Mike', 'Jin']
2.2 列表删除元素

使用del语句删除元素

names = ['Mike', 'Joe', 'Jin']
del names[0]# 删除列表中的第一个元素

使用pop弹出元素

names = ['Mike', 'Joe', 'Jin']
boy = names.pop(1)#从列表中弹出第2个元素,并将该元素保存在boy这个变量中

根据值删除元素

names = ['Mike', 'Joe', 'Jin']
names.remove('Joe')

del和pop的区别,如果删除之后还要用这个元素,就用pop,不用就用del

2.3 组织列表

使用sort()方法对列表永久排序

names.sort()

使用sorted()方法对列表排序,但不改变原列表顺序

names.sorted()

倒着打印列表

names.reverse()

确定列表的长度

len(names)

输出最后一个列表元素有两种方法,names[-1]或names[len(names)-1]

2.4 操作列表
2.4.1 遍历整个列表

通过for循环遍历整个列表,选择描述单个列表元素的有意义的名称很重要,比如 for cat in cats:

names = ['Joe', 'Mike', 'Jin']
for name in names:
	print("{}的表演很精彩!".format(name))
	print("期待的下次表演!\n".format(name))
print("感谢大家观看今晚的表演")
2.4.2 创建数值列表

使用函数range()来创建

squares = []
for value in range(1, 11):
    squares.append(value**2)
print(squares)

使用数值列表一行创建

squares = [value**2 for value in range(1, 11)]
print(squa)
2.4.3 遍历切片
data = [1, 2, 3, 4, 5, 6]
data_copy = data[1:]#表示从序号为1的元素,即2开始,一直到最后
data_copy2 = data[-3:]#从倒数第三到最后

复制列表,如果用切片的方式复制,则这两个列表互补干扰,如果直接赋值的话,会指向同一个列表,不管操作哪一个,都是对同一个列表造成影响。

data_same = data#这种就是data和data_same指向同一个列表,改变其中一个,另一个也会变化。
data_copy = data[:]#这种就是直接赋值data,出现两个列表,改变其中一个,对另一个没有影响。
2.4.5 元组

元组和列表非常相似,用圆括号来表示,不同之处是元组里面元素的值是不可变的

dimensions = (100, 50)#元素不可变,但是可以访问

第3章 if语句

3.1 条件测试

==,>,<条件测试

#在python中,可以利用if语句,检查列表中是否包含某一个元素
names = ['Mike', 'Joe', 'Jin']
name = 'Jin'
if name in names:
    print("Jin在列表里")
#也可以检查某个元素不在这个列表里
if name not in names:
    print("Jin不在这个列表里")

检查多个条件的时候,一般用and和or

if a >= 100 and b <=200:
	print("两个条件都满足")
	
if a >=100 or b <= 200:
	print(只要求满足其中一个,即为True)
3.2 if语句
#if elif else,判断一种情形
age = 20
price = 0
if age > 4:
    price = 20
elif age > 20:
	price = 40
else:
    price = 60

在if语句中,如果直接使用列表名用作条件表达式时,将在列表至少包含一个元素时返回True,在列表为空时返回False

names = []
if names:
    print("这里列表为空,所以不执行这个语句")
else:
    print("z")

第4章 字典

4.1 使用字典

在Python中,字典是一系列键值对,用{},表示字典。

alien_0 = {'color': 'green', 'points': 5}
print("alien_0的分数是:{}".format(alien_0['points']))#利用alien_0['points']来访问字典的值

添加键值对

alien_0 = {'color': 'green', 'points': 5}
alien_0['x_position'] = 0
alien_0['y_position'] = 25
print(alien_0)  #在这里,可以直接添加键值对

删除键值对

alien_0 = {'color': 'green', 'points': 5}
del alien_0['color']#利用del删除对应的键值对

修改字典中的值

alien_0 = {'color': 'green', 'points': 5}
alien_0['color'] = red #将本来的绿色改为了红色

使用get()来访问字典中的值,可以消除因为键不存在带来的错误

alien_0 = {'color': 'green', 'points': 5}
point_value = alien_0.get('points', '没有这个键值对') #相当于if检查,分成两种情况
print(point_value)
4.2 遍历字典

遍历字典分为三种情况,既需要键有需要值;只需要键:只需要值。Python提供了三种对应的方法。分别是items(), keys(), values()

alien_0 = {'color': 'green', 'points': 5}
alien_items = alien_0.items()
alien_key = alien_0.keys()
alien_values = alien_0.values()
image-20230728095843994

然后就相当于对列表进行操作

alien_0 = {'color': 'green', 'points': 5}
alien_items = alien_0.items()
for color, point in alien_items:
    print(color, point)

在获取到相应的列表之后,就可以按列表操作,比如利用sorted暂时排序

通过对包含重复元素的列表调用set(),可以让python找出列表中独一无二的元素,并使用这些元素创建一个集合。

集合的创建也是用花括号{}

languages = {'python', 'ruby', 'python', 'C'}
>>>languages
>>>{'ruby', 'python', 'C'}
4.3 嵌套

在列表中嵌套字典

alien = [alien_0, alien_1, alien_2]
alien_0 = {'color': 'green', 'points': 5}
alien_1 = {'color': 'green', 'points': 5}
alien_2 = {'color': 'green', 'points': 5}
#利用for循环创建
alien = []
for alien_number in range(30):
    new_alien = {'color': 'green', 'points': 5}
    alien.append(new_alien) #创建三十个外星人,并将其保存在列表里 
#访问列表中的字典
alien[1]['color']

在字典中嵌套列表

alien_0 = {'color': 'green',
			'position': [x_position, y_position],
			}

在字典中嵌套字典

alien_0 = {'color': 'green',
          'position': {'x_position': 0,
                      'y_position': 25,},
          }

第5章 用户输入和While循环

通过获取用户输入并学会控制程序运行的时间,就能编写出交互式程序

5.1 函数input()

input函数,接受一个参数,要向用户显示的提示词,最终提示词以字符串的形式保存

message = input("请输入您的年龄: ")
message = int(message)#将字符串转换为整数类型

求模运算符%,将两个数相除,并返回余数,可以判断输入的一个整数是奇数还是偶数

5.2 While循环

while循环不断运行,直到指定的条件不满足为止

active = True
while active:
    message = input("输入指令")
    if message == 'quit':
        active = False
    else:
        print(message)

也可以使用break退出循环

active = True
while active:
    message = input("输入指令")
    if message == 'quit':
        break
    else:
        print(message)
5.3 while循环处理列表和字典

在列表之间移动元素

unconfirmed_names = ['Joe', 'Jin', 'Mike']
confirmed_names = []
while unconfirmed_names:
	current_user = unconfirmed_names.pop()
	confirmed_names.append(current_user)

删除为特定值的所有列表元素

pets = ['dog', 'cat', 'goldfish', 'cat']
while 'cat' in pets:
    pets.remove('cat')
	

使用用户输入来填充字典,列表中的字典

alien = []
active = True
while active:
	current_alien = {}
	color_input = input("输入您的颜色: ")
	points_input = input("输入您的分数: ")
	current_alien['color'] = color_input
	current_alien['points'] = int(points_input)
	alien.append(current_alien)
	repeat = input("还要继续吗")
	if repeat == 'no':
		active = False

第6章 函数

6.1 定义函数

def一般用来定义函数,一般对函数功能的注释使用‘’‘ 注释 ’‘’

'''定义的函数'''
def describe_pet(animal_type, pet_name='Joe'):
    print("我有一条 {}".format(animal_type))
    print("它的名字是 {}".format(pet_name))
describe_pet('dog', 'harry')#位置调用函数,括号里的是实参
describe_pet(animal_type='dog', pet_name='harry')#关键字调用函数时,注意有些地方不需要空格
describe_pet('dog')#默认调用函数
6.2 返回值

利用return返回函数的某些值

让实参变成可选的,在函数定义中最后列出该形参,并将默认值设为空字符串或者None

def build_person(first_name, last_name, age=None):
    person = {'first': first_name, 'last': last_name}
    if age:        #判断可选参数是否有实参
        person['age'] = age
    return person
musician = bulid_person('Jin', 'Long', age=23)
print(musician)
6.3 传递列表

列表也可以作为实参传到函数里,如果不想改变原来的列表,考虑用切片的方式,将列表的副本作为参数传给函数

可以传递任意数量的实参

def make_pizza(*toppings):
    print(toppings)

通用形参名*args,它用来收集任意数量的位置实参,创建一个名叫args的空元组

形参名**kwargs,用来收集任意数量的关键字实参,创建一个名叫kwargs的空字典

def bulid_person(first, last, **user_info):#这两个**号让python创建一个名为user_info的空字典
    user_info['first_name'] = first
    user_info['last_name'] = last
    return user_info
user_profile = build_person('Jin', 'Long', location='China', field='physics')
print(user_profile)
6.4 将函数存储在模块中

模块是扩展名为.py的文件

调用其他模块中的函数的方法

from module_name import function_name
from module_name import function_name as fn
import module_name as mn
from module_name import * #导入该模块中的所有函数
6.5 函数编写规范

每个函数都要阐述其功能,注释应紧跟在函数定义后面,用’‘’ ‘’‘注释

给形参指定默认值时,等号两边不留空格

对与函数待用中的关键字实参,等号两边不留空格

def route_planning(*args):
    '''该函数主要实现小车对路径的识别,输入为摄像头图像,输出为小车该走的路径'''
    print("具体实现部分")

第7章 类

7.1 类的创建和使用

在python中,一般用首字母大写的名称表示类。类一般用class表示

class Car:
    """模拟汽车创建的汽车类"""
    def __init__(self, make, model, year):
        """初始化描述汽车的属性,除此之外创建一个不需要形参的属性"""
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 0
    def get_description_name(self):
        """汽车的基本信息的方法"""
        print("{} {} {}".format(self.make, self.model, self.year))
    def update_odometer(self, mileage):
		
        """将里程表读数设置为固定的值"""
        self.odometer_reading = mileage
    def increment_odometer(self, odo_increment):
        """增加里程数,禁止回调"""
        if odo_increment >= 0:
        	self.odometer_reading += odo_increment
        else:
            print("你没有权力回调!!!")
my_car = Car('audi', 'a6', 2014)
my_car.update_odometer(100)
my_car.increment_odometer(10)
        
7.2 类的继承

一个类继承另一个类时,将自动获取另一个类的所有属性和方法,原有的类称为父类,新类称为子类。

比如,一个汽车类和一点电动车类,电动车具备汽车的一些特点,也有自己的一些特点,这时候就可以用继承。

class Car:
	def __init__(self, make, model, year):
		self.make = make
		self.model = model
		self.year = year
		self.odometer = 0

	def description_name(self):
		print("")
class Batter():
	def __init__(self):
		self.name = 'audi'
	def batter_add(self):
		print("将对象作为属性")
class Eleccar(Car):
	def __init__(self, make, model, year):
		super(Eleccar, self).__init__(make, model, year)
		self.batter = 75
		self.batter01 = Batter()

	def description_battery(self):
		print("{}".format(self.model))

my_car = Eleccar('audi', 'a7', 2018)
my_car.description_battery()
my_car.batter01.batter_add()
7.3 导入类

可以将多个类保存在.py文件中,使用的时候import即可。

7.4 类编码风格

在同一个类中,两个方法之间空一行

在同一个模块中,两个类之间空两行

不管是模块还是类,都要在前面写明注释

在import模块时,先编写标准库中的模块,然后一个空行,在添加自己的模块。

驼峰命名法:类名中每个单词的首字母都大写,不使用下划线;实例和模块名都采用小写加下划线的形式

第8章 文件和异常

8.1 从文件中读取

文件的读取需要该文件的存储地址,一般可以表示为相对地址和绝对地址,一般用一个变量指向这个地址

file_location = '文件数据\filename.txt'
with open(file_location) as file_object:
    lines = file_object.readlines()  #readlines逐行读取,并将每一行按照列表形式保存
for line in lines:
    print(line.rstrip())
8.2 写入文件

在调用文件时,使用open(),可以指定文件打开的模式,只读模式(‘r’),写入模式(’w’), 附加模式(‘a’)或读写模式

在使用w模式的时候,会把之前的内容删除才会写入。
如果想把之前的内容保留,以附加模式’a’打开文件

8.3 异常

处理ZeroDivisionError异常,使用try ,except可以防止用户看到tracebook,增强安全性。

FileNotFoundError异常

try:
    with open('test_02.txt') as file_object:
        content = file_object.read()
except FileNotFoundError:
    print("该文件不存在!!!")
print("异常出现之后文件照常运行!!!")

第9章 测试代码

利用Python模块unittest中的工具来测试代码。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值