概述
Python
下面的笔记是我在学习Python中从各方面整理而来的学习笔记,知识大多来源于千锋教育的视频和廖雪峰老师的文章,如有不实之处,还请指正!
后续还会继续更新学习笔记,目前学习笔记已经记录到第7章,闲暇时我会更新上来!
——转载还请注明出处!
一、基础知识
1、常见的DOS指令
1.使用win+R
键调出命令提示符
2.cd 切换目录
cd ..
返回上一级目录
cd 路径
切换到指定的路径下,eg: cd C:Users
切换到C盘Users目录下(注意一点,如果从一个磁盘切换到另一个磁盘,需要再次输入磁盘路径才能切入)
C:UsersCLIU01>cd E:
#从C盘切换到E盘目录下
C:UsersCLIU01>E:
#执行后没有立即切换,必须再次输入磁盘名+':'
E:>
#成功切换到E盘目录下
- dir 查看目录,可以查看目录下的所有文件
- mkdir 创建目录,
mkdir 文件名
可以创建指定名称的文件目录 - rmdir 删除目录,
rmdir 文件名
可以删除指定名称的文件目录 - ipconfig 查看IP信息
- 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
-
不能使用关键字 常用的关键字:
class
、if
、while
、break
、def
、continue
、try
等 -
使用下划线连接法和大驼峰命名法来命名标识符:
下划线连接法:标识符由小写字母构成,每个单词间用下划线连接。例如
person_name
。一般用来命名变量、函数和模块。 大驼峰命名法:每个单词的首字母大写,例如
PersonName
、UserName
,一般用来命名类名。
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来计算的,因此布尔量可以直接参与数字运算:
print(True+1)
#2
print(False+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快捷键
最后
以上就是心灵美柚子为你收集整理的Python学习笔记-第一章Python的全部内容,希望文章能够帮你解决Python学习笔记-第一章Python所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复