Python学习笔记-第一章

Python

下面的笔记是我在学习Python中从各方面整理而来的学习笔记,知识大多来源于千锋教育的视频和廖雪峰老师的文章,如有不实之处,还请指正!
后续还会继续更新学习笔记,目前学习笔记已经记录到第7章,闲暇时我会更新上来!
——转载还请注明出处!

一、基础知识


1、常见的DOS指令

​ 1.使用win+R键调出命令提示符

​ 2.cd 切换目录

cd .. 返回上一级目录

cd 路径 切换到指定的路径下,eg: cd C:\Users 切换到C盘Users目录下(注意一点,如果从一个磁盘切换到另一个磁盘,需要再次输入磁盘路径才能切入)

C:\Users\CLIU01>cd E:\    #从C盘切换到E盘目录下

C:\Users\CLIU01>E:        #执行后没有立即切换,必须再次输入磁盘名+':'

E:\>                      #成功切换到E盘目录下
  1. dir 查看目录,可以查看目录下的所有文件
  2. mkdir 创建目录,mkdir 文件名 可以创建指定名称的文件目录
  3. rmdir 删除目录,rmdir 文件名 可以删除指定名称的文件目录
  4. ipconfig 查看IP信息
  5. ping 测试网络连接
2、输入输出指令print()

​ 输出指令print()详细信息如下:

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

value:需要输出的内容,可以是多个值,每个值之间用’,'隔开

sep=''‘’:每个值打印时中间的间隔内容,默认是空白符

end='\n':信息打印完成后执行的操作,默认是换行。一般常用print(end=' ')来实现不换行打印

​ 输入指令input(),可以输入任何内容,注意输入的内容会自动被转换为字符串类型

3、pip 包管理器

​ 在命令提示符下键入pip,出现pip相关信息。

​ pip语句pip <command> [options]

​ 常用的command:install、uninstall、freeze、list等。

​ eg:pip install easygui(安装easygui包)、pip uninstall easygui(卸载easygui包)、pip list(查看当前所有的包)

​ freeze指令比较有用,一般常用来生成开发环境外援包的列表文件,然后在新的环境下直接根据列表文件安装这些外援包。用法如下:

​ 首先在原开发环境中生成一个叫做requirements.txt的文件,里面包含了开发环境所有的外援包

E:\>pip freeze >requirements.txt

​ 然后在新的系统中安装这些外援包,Python程序才能正常运行

pip freeze -r requirements.txt
4、常见的数据类型、可变和不可变数据
4.1、常见的数据类型
  • 数字:整型(int)、浮点数(float)、复数(complex)

  • 布尔类型(bool):真(True)、假(False)

  • 字符串(str)

  • 列表(list)

  • 字典(dict)

  • 集合(set)

  • 元组(tuple)

    可以使用内置类type()来查看一个数据的类型。

>>> num=45
>>> type(num)
<class 'int'>  #num是一个整型数据

数据类型根据属性不同分为2类:可变数据类型(列表、字典、集合)和不可变数据类型(数字、布尔类型、元组、字符串)

4.2、可变数据和不可变数据

​ 不可变数据类型,不允许变量引用的值在原来的内存地址上发生变化,如果改变了变量的值,只是将变量指向了一个新的内存地址(地址变化),而对于相同的值的对象,在内存中则只有一个对象,内部会有一个引用计数来记录有多少个变量引用这个对象;

>>> x = 2
>>> id(x)		#id()用来返回元素的内存地址
31106508
>>> y = 2
>>> id(y)		#x、y虽然是不同的变量,但值相同,在内存中指向同一个地址
31106508
>>> z = y
>>> id(z)
31106508
>>> x += 2
>>> id(x)		#x的值发生了改变,因此不再指向原来的对象,指向了一个新的地址
31106484		#不可变数据变量指向的内存地址里的值是不能改变的

​ 可变数据类型,允许变量引用的值在原来的内存地址上发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会新建一个对象(内存地址不变),不过对于相同的值的不同引用,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象

>>> a = [1, 2, 3]
>>> id(a)
41568816
>>> a = [1, 2, 3]	#变量a被重新赋值,哪怕值一样,内存地址仍发生变化,生成了一个新的对象
>>> id(a)
41575088
>>> a.append(4)
>>> id(a)
41575088
>>> a += [2]
>>> id(a)		#除了进行赋值操作,对可变数据的其他任何操作都是在原有的地址上进行,不会
41575088		#在新的地址上生成新的对象
>>> a
[1, 2, 3, 4, 2]
5、标识符的命名规范

​ 标识符就是Python中的变量名、类名、函数名、模块名。命名标识符应当遵循以下规范:

  • 由字母、数字、_(下划线)组成,不能以数字开头
  • 严格区分字母大小写,同一个字母大小写代表不同的代码
  • 应当通俗易懂 eg:
a='lisa'
b=23

name='lisa'   #与上面的代码相比,下面的代码能够直观的知晓变量代表的意义
age=23
  • 不能使用关键字 常用的关键字:classifwhilebreakdefcontinuetry

  • 使用下划线连接法和大驼峰命名法来命名标识符:

    下划线连接法:标识符由小写字母构成,每个单词间用下划线连接。例如 person_name。一般用来命名变量、函数和模块

    大驼峰命名法:每个单词的首字母大写,例如 PersonNameUserName,一般用来命名类名。

6、数据进制以及进制转换

​ 一般整型数据会有进制转换的需求,常见的进制有二进制(0b开头)、八进制(0o开头)、十进制、十六进制(0x开头)。数据之间进行进制转换可以使用内置函数来实现。

a=25
b=bin(a)   #使用内置函数bin()将a转换为二进制
c=oct(a)   #使用内置函数oct()将a转换为八进制
d=hex(a)   #使用内置函数hex()将a转换为十六进制
print(a,b,c,d)
>>>25 0b11001 0o31 0x19
7、数据类型转换

​ 数据类型可以利用内置类来进行转换

​ 整型转换 :

a='23'
b='hello'
c=int(a)   #将字符串a转换为整数
d=int(b)   #不能转换,报错。整型能转换的只有纯数字的字符串

​ 布尔转换:

print(bool(100))          #True
print(bool(-5))			  #True
print(bool(0))            #False,数字转换成布尔量只有0是False
print(bool('hello'))      #True
print(bool('False'))      #True
print(bool(''))           #False
print(bool(""))           #False,字符串中只有空白字符串是False
print(bool(None))         #False 关键字None转换成布尔量是False
print(bool([]))           #False
print(bool({}))           #False
print(bool(()))           #False
#只有数字0、空字符串、空列表、空元组、空集合、空字典、空数据(None)转换成布尔量时是False

​ 实际上在计算机中布尔量是以1和0来计算的,因此布尔量可以直接参与数字运算:

printTrue+1#2
printFalse+3#3

​ 字符串转换str()、浮点数转换float()

8、算术运算符

​ Python中数字支持的运算符有+、-、*、/(除)、//(整除)、%(取余)、**(幂运算)

print(1+2,8-2)    #3 6
print(2*3)        #6
print(6/2)        #3.0 Python中整数相除的结果是浮点数float
print(9//2)       #4 整除运算,结果向下取整
print(-5//2)	  #-3 整除运算,结果向下取整
print(9%2)        #1 取余运算
print(3**3)       #27 相当于3的3次方
print(16**(1/2))  #4.0  相当于16开方,结果是浮点数

​ 值得注意的是,在Python中字符串有限度的支持加法、乘法运算,不支持其他运算符

print('hello'+'你好')	#hello你好   加法可以完成对字符串的拼接
print('ok'*5)		 #okokokokok  字符串的乘法实现字符串的重复
9、比较运算符

​ Python中支持的比较运算符有大于>、小于<、大于等于>=、小于等于<=、相等==、不相等!=

print(5>6)        #False
print(5!=6)       #True
print('ok'=='ok') #True   字符串也能使用比较运算符,根据每个字符的ASCII编码逐一进行比较
print('a'>'b')    #False  
print('abc'>'b')  #False  第一个字符小,因此整体的结果为False
print('a'!=90)    #True  字符a的ASCII编码是97
print('a'>90)     #报错  字符与数字的比较运算只有==和!=,不支持其他比较运算符
10、赋值运算符

​ 计算机中的赋值运算符就是=,运算规则是从右往左开始计算,=运算符的左边不能是常量和表达式

a=3			#把数值3赋值给变量a
a,b,c,d=5   #把数值5赋值给变量a,b,c,d
a=b=5=c=d   #错误,从右往左运算,发现=的左边有常量5
m,n=5,6     #m=5,n=6
x='hi','ok','good'	#x=('hi','ok','good') 右边是一个元组,某些情况下元组的括号可以省略
a1,a2=1,2,3,4,5,6   #报错,系统不能识别,=左右两侧的数据个数不相等
a1,*a2=1,2,3,4,5,6  #a1=1,a2=[2,3,4,5,6] 使用*来接受多个参数

​ 复合赋值运算符:+=、-=、*=、/=、**=、%=、//=

11、逻辑运算符和取值

​ Python中逻辑运算符有与and、或or、非not

  • and运算,只有当所有元素为True时,结果才为True,否则False;任意一个结果为False,则结果一定为False

  • or运算,只有当所有元素为False时,结果才为False,否则为True;任意一个结果为True,则结果一定为True

  • not运算,将运算结果取反,not True→False、not False→True

    逻辑运算and、or存在运算短路问题,见如下代码:

4>3 and print('hello')	#hello 
#and运算从前往后执行,第一个运算式为True,所以接着执行print语句
4<3 and print('ok') 	#无结果,不会打印ok
#第一个运算式结果为False,and运算直接结束,不会接着执行后面的print语句

4>3 or print('hello')  #无结果,不会打印hello
#or运算,第一个运算式结果为True,or运算结果一定是True,运算结束。
4<3 or print('ok')     #ok
#or运算第一个运算式结果为False,还不确定or运算的结果,所以接着执行后续的语句

​ 当有多个元素在同一个逻辑运算中时,一定要注意运算短路的问题。

​ 逻辑运算的结果不一定是布尔值:

  • and运算取值时从左往右取第一个结果为False的值;如果所有结果都是True,则取最后一个值
  • or运算取值时从左往右取第一个结果为True的值;如果所有的结果都是False,则取最后一个值
  • 逻辑运算的优先级:not>and>or
#逻辑与运算
print(3 and 5)   #5
print(3 and 5 and "ok")   #ok
print(3 and 5 and 0 and"ok")   #0
#逻辑或运算
print(3 or 5)   #3
print(3 or 5 or 'ok')   #3
print(0 or False or 5 or'ok')   #5
#组合运算
print(True or True and False)   #True 优先做and运算
12、运算符的优先级

​ 当不同的运算符混用时,要注意各运算符的优先级。

运算符描述
**幂运算
~、+、-按位取反、一元加号、一元减号(正负号)
*、/、%、//乘、除、取模、取整除
+、-加法、减法
>>、<<右移位运算、左移位运算
&位与运算
^、|位运算符
>、<、>=、<=比较运算
==、!=等于运算
=、%=、/=、+=、-=、*=、**=赋值运算
is、is not身份运算符
in、not in成员运算符
not>and>or逻辑运算符

由于运算优先级较多,强烈建议在写代码时用()来确保某些代码优先执行

13、辅助工具

​ 遇到不懂得代码可以进入Pythontutor中,按步执行查看代码的执行顺序。

Python运行过程指示:Pythontutor

Pythontutor教程

pycharm快捷键

| 逻辑运算符 |

由于运算优先级较多,强烈建议在写代码时用()来确保某些代码优先执行

13、辅助工具

​ 遇到不懂得代码可以进入Pythontutor中,按步执行查看代码的执行顺序。

Python运行过程指示:Pythontutor

Pythontutor教程

pycharm快捷键

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值