Python学习笔记一(基础知识)

PS:这篇文章是以一个学习者的角度来汇总知识点以及教程,对于想学习Python的入门者也会比较友好,想学习python可以先收藏,我会慢慢持续更新。学艺不精,如有纰漏,敬请指正。

需要安装配置python和Pycharm软件可以移步这篇文章,有详细的教程。

传送门:

python及pycharm安装配置-CSDN博客

Python学习笔记(二)-CSDN博客

Python学习笔记三(面向对象)-CSDN博客

目录

一、python是什么

二、Python基础语法

2.1标识符

2.2编码

2.3注释

2.4缩进

2.5数据类型 

 2.6运算符

2.6.1算术运算符

2.6.2位运算符

2.6.3赋值运算符

2.6.4比较运算符 

2.6.5逻辑运算符

2.6.6运算符优先级

三、基本语句

3.1 条件语句

3.2 循环语句

break语句

continue语句

四、字符串

4.1字符串基本操作

4.2 字符串常用方法

五、列表和元组

5.1 列表

5.1.1列表创建访问

5.1.2列表更新与删除

5.1.3列表常用方法

 5.2 元组

 5.2.1 元组的创建访问

5.2.2元组的修改和删除

5.2.3元组常用方法 

六、字典与集合

6.1字典

 6.2集合

6.2.1添加元素

6.2.2其他集合操作


一、python是什么

Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。

Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。

Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。

二、Python基础语法

2.1标识符

标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。

以单下划线开头的标识符(如 _width),表示不能直接访问的类属性,其无法通过 from...import* 的方式导入;以双下划线开头的标识符(如__add)表示类的私有成员;以双下划线作为开头和结尾的标识符(如 __init__),是专用标识符。(不理解没关系,后续会说到,这里只需要知道就可以了)

除此之外,还有一些标识符,虽然是以字母开头,但由于有特殊含义,不能用作变量,函数,语句块等命名,称为关键字。python是严格区分大小写的,标识符Aa和aa是不一样的,关键字也是,比如False是关键字,但FALSE就不是。(关键字不用记,可以通过命令查看,并且即使不小心用到关键字作为标识符,系统会提示“invalid syntax”)

#查看关键字命令
>>> import keyword
>>> keyword.kwlist
#关键字
['False', 'None', 'True', 'and', 'as', 'assert', 'break',
 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 
'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is',
 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return',
 'try', 'while', 'with', 'yield']

2.2编码

Python2 中默认编码为 ASCII,假如内容为汉字,不指定编码便不能正确的输出及读取,比如我们想要指定编码为 UTF-8,Python 中通过在开头加入 # -*- coding: UTF-8 -*- 进行指定。

Python3 中默认编码为 UTF-8,可以用中文作为变量名,非 ASCII 标识符也是允许的了。因此在使用 Python3 时,我们通常不需指定编码。

2.3注释

任何一门编程语言注释都是很重要的,他能帮助你理解程序,即使是你自己写的程序,也会记忆模糊,python注释分为单行注释和多行注释,单行注释以 # 开头,多行注释可以用多个 # 号,还有 ''' 和 """,编译器不会把注释进行编译。注释如果作为字符串的一部分,则系统将不认为是注释(另外注释不允许嵌套)


# 第一个注释
# 第二个注释
 
'''
第三个注释
第四个注释
'''
 
"""
第五个注释
第六个注释
"""

print ("Hello, Python!")

print ("#Hello, Python!") 

运行结果
Hello, Python!
#Hello, Python!

2.4缩进

python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {},一般默认是以 4 个空格作为代码的基本缩进单位。在菜单栏中选择Options -> Configure可以更改默认缩进量,缩进量必须一致,但具体缩进量为多少,并不做硬性规定。按Tab可以快速缩进,默认情况下,按一下Tab缩进4个单位。

#正确缩进
if True:
    print ("Answer")
    print ("True")
else:
    print ("Answer")
    print ("False")

  # 缩进不一致,会导致运行错误
if True:
    print ("Answer")
    print ("True")
else:
    print ("Answer")
  print ("False")    
运行结果:IndentationError: unindent does not match any outer indentation level(报错) 

2.5数据类型 

python数据类型分为整数,浮点数,字符串,布尔值,空值,变量,常量。将数据放入变量的过程叫做赋值(Assignment)

整数可以为任意大小、包含正数,负数,0

浮点数就是小数

字符串以单引号 '、双引号"、三引号 ''' 或 """括起来的文本,可以为汉字或者英文,若干个字符的集合就是一个字符串(String)

布尔值,只有 TrueFalse 两种值

空值:用 None 表示

变量是可随时赋值改变的,常量是不可变的(比如π)。

python中,对变量赋不同的值,则会发生不同的变化。

例如:

x=1
#此时x为整形

x="python"
#此时x就是字符串

 2.6运算符

运算符分为算术运算符,位运算符,赋值运算符,比较运算符,逻辑运算符。

2.6.1算术运算符
+1 + 1516
-4 - 31
*5 * 315
/除法7 / 23.5
//整除(只保留商的整数部分)7 // 23
%取余,即返回除法的余数7 % 31
**幂运算/次方运算,即返回 x 的 y 次方2 ** 24,
2.6.2位运算符

&按位与

|按位或

^按位异或:相同为0,不同为1,即1 ^ 1 = 0,0 ^ 0 = 0,1 ^ 0 = 1

~按位取反

<<按位左移4 << 2,表示整数 4 按位左移 2 位

>>按位右移4 >> 2,表示整数 4 按位右移 2 位

(位运算符初期学习了解即可,多用在底层开发,应用层开发不常用)

2.6.3赋值运算符

最基础的就是 = ,x=5,其实就是把5赋值给x使x的值等于5。在python中,==才表示判断两边是否相等,比如a==b,即判断a和b是否相等,a=b是把b的值赋给a。

=与其他算术运算符结合还有其他的工作,比如x+=y,即先计算x+y在把值赋给x,即x=x+y。同样的x-=y即x=x-y。*= ,/*,%=,//=,**=,&=,|=,^=,<<=,>>=都是同样的道理。

2.6.4比较运算符 

(这一块比较简单,就是比大小,比相等不相等)

>大于,如果>前面的值大于后面的值,则返回 True,否则返回 False。
<小于,如果<前面的值小于后面的值,则返回 True,否则返回 False。
==等于,如果==两边的值相等,则返回 True,否则返回 False。
>=大于等于(等价于数学中的 ≥),如果>=前面的值大于或者等于后面的值,则返回 True,否则返回 False。
<=小于等于(等价于数学中的 ≤),如果<=前面的值小于或者等于后面的值,则返回 True,否则返回 False。
!=不等于(等价于数学中的 ≠),如果!=两边的值不相等,则返回 True,否则返回 False。
is判断两个变量所引用的对象是否相同,如果相同则返回 True,否则返回 False。
is not判断两个变量所引用的对象是否不相同,如果不相同则返回 True,否则返回 False。
2.6.5逻辑运算符

(就是数学中的与或非)

and逻辑与运算,等价于数学中的“且”a and b当 a 和 b 两个表达式都为真时,a and b 的结果才为真,否则为假。
or逻辑或运算,等价于数学中的“或”a or b当 a 和 b 两个表达式都为假时,a or b 的结果才是假,否则为真。
not逻辑非运算,等价于数学中的“非”not a如果 a 为真,那么 not a 的结果为假;如果 a 为假,那么 not a 的结果为真。相当于对 a 取反。
2.6.6运算符优先级

运算符    描述(由上至下对应优先级由高到低)
(就类似于3+2*5=13,先算乘数后算加减)

运算符描述(由上至下对应优先级由高到低)
()括号
**幂运算
~ + -取反、正号、负号
* / % //乘、除、取模、取整除
+ -加法、减法
>> <<右移、左移
&
^ |异或、或
<= < > >=比较运算符
== !=是否等于、是否不等于
=  %=  /= //= -= +=  *=  **=赋值运算符

三、基本语句

语句分为条件语句和循环语句,是程序的基本逻辑。

3.1 条件语句

条件语句用于逻辑判断,python提供了if,elif,else三个语句。

if 判断条件1:    执行语句1elif 判断条件2:    执行语句2elif 判断条件3:    执行语句3else:    执行语句4...

 通俗点举栗就是

if 现在是早上8点

吃早饭

elif 现在是中午12点

吃午饭

elif现在是下午6点

吃晚饭

else 

不吃饭

PS:(大家都要好好吃饭哦)

3.2 循环语句

当需要多次重复执行时,我们要用到循环语句,Python 提供了 for 循环和 while 循环。

for循环格式

for 临时变量 in 序列:
    重复执行的代码1
    重复执行的代码2
举个栗子:定义一个字符串"python",现在要遍历这个字符串,把每个字符单独输出。

str = 'Python'
for s in str:
    print(s)

输出结果:
P
y
t
h
o
n

s就是用来暂存当前需要输出的字符串中的字符,即临时变量。

str就是字符串序列。

while循环

while 条件:
    条件成立重复执行的代码1
    条件成立重复执行的代码2

同样举个栗子:

本来和老婆约定晚上10点回家,但你玩过头了,12点到家还把睡梦中的老婆吵醒了,老婆怒气冲冲让你写100遍“老婆,我错了”,不然晚上就睡大街,于是你就想到了while循环,写出如下代码:

i = 0
while i < 100:
    print('老婆,我错了')
    i += 1

print('任务结束')

这里的i<100即条件,i相当于一个计数器,从0开始+,每写一遍老婆我错了,i就加1并重新赋值给i(i=i+1),同时和判断条件进行比较,小于100,继续进入循环,一直到任务结束为止。

这个程序输出结果也很简单,100遍老婆,我错了。以及一遍任务结束,因此被老婆发现用程序代写,所以还是没逃过睡大街的命运。

break语句

用来终止整个循环,以第一个栗子为例,我们需要对程序做出更改,要求便利python时便利到o就停止循环并输出前面遍历过的字符,即:

str = 'Python'
for s in str:
    if s == 'o':
        break
    print(s)

输出结果:
P
y
t
h

continue语句

 用来中止本次循环,还是这个栗子,我们依然要输出python,但是我看o这个字符不爽,想跳过它,于是就可以使用continue来完成:


str = 'Python'
for s in str:
    if s == 'o':
        continue
    print(s)

输出结果:
P
y
t
h
n

该程序中当字符遍历到o时跳过了o,但是由于没遍历完,循环还在继续,于是继续遍历输出n。

(注意对比差异)

四、字符串

(由于字符串比较重要,知识点也多,我们单独拿出来说一下。)

4.1字符串基本操作

在上面已经提到,字符串是 Python 的一种数据类型,可以通过单引号 '、双引号 "、三引号 ''' 或 """ 来定义。

字符串由每一个字符组成,字符串可以进行相加,即拼接。也可以通过乘一个数字来复制这个字符串几次。也可以指定输出哪个字符。(s[]叫做列表,这个在后面会讲)例如:

s1 = 'Hello'
s2 = 'Python'
print('s1 + s2 -->', s1 + s2)
print('s1 * 2 -->', s1 * 2)
print('s1[0] -->', s1[0])
print('s1[0:2] -->',s1[0:2])

输出结果:
s1 + s2 --> HelloPython
s1 * 2 --> HelloHello
s1[0] --> H
s1[0:2] --> He

由于字符串需要用引号引出来,所以有的语句自带引号的会出现一些错误,这个时候就需要转义字符进行特殊处理。

举个栗子:'I'm a superman',由于I‘m的特殊性,我们在引号前面添加反斜杠\就可以对引号进行转义,就是告诉 Python 把它作为普通文本对待。即: 'I\'m a superman'。

那有个问题,如果字符串结尾是反斜杠呢?实际上,这样python就会对最后的引号进行转义,这违背我们的需求,所以,python结尾是能有反斜杠的,对于这种情况,我们可以采用拼接字符串的方法。即:

我想表达C:\Program Files\Python 3.7\字符串,但’C:\Program Files\Python 3.7\‘是不对的,所以我们就需要写为:str1  = 'C:\Program Files\Python 3.7' '\\',python会自动将其进行拼接,从而可以输出正确的结果。

4.2 字符串常用方法

split() 方法可以实现将一个字符串按照指定的分隔符切分成多个子串

str1 = "abcdefg"
#分割字符串,将分割后内容保存在列表中(列表下一个部分会讲)
list1 = str.split(c)

#输出结果
['ab','defg']

find() 方法用于检索字符串中是否包含目标字符串,如果包含,则返回第一次出现该字符串的索引;反之,则返回 -1。 

str = "www.csdn.com"
str.find('.')
#输出结果
3

index() 方法也可以和find()方法一样用于检索是否包含指定的字符串,不同之处在于,当指定的字符串不存在时,index() 方法会抛出异常。 

title() 方法用于将字符串中每个单词的首字母转为大写,其他字母全部转为小写,转换完成后,此方法会返回转换得到的字符串。如果字符串中没有需要被转换的字符,此方法会将字符串原封不动地返回。

str = "www.csdn.com"
str.title()

#输出结果
"Www.Csdn.Com"

lower() 方法用于将字符串中的所有大写字母转换为小写字母,转换完成后,该方法会返回新得到的字符串。如果字符串中原本就都是小写字母,则该方法会返回原字符串。 

str = I LOVE XIAOWANG

str.lower()
#输出结果
i love xiaowang

前面我们已经介绍了部分常用字符串提供的方法,但这远远不是它的全部方法。其他的方法,可通过本节介绍的 dir() 查看。 

dir() 函数用来列出某个类或者某个模块中的全部内容,包括变量、方法、函数和类等

dir(str)
#输出结果
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', 
'__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__',
 '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__',
 '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', 
'__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__',
'__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize',
 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find',
 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal',
 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace',
 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 
'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 
'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title',
 'translate', 'upper', 'zfill']

五、列表和元组

Python 中没有数组,而是加入了功能更强大的列表(list),列表可以存储任何类型的数据,同一个列表中的数据类型还可以不同

5.1 列表

5.1.1列表创建访问

列表索引是从0开始,也就是l[0]代表列表的第一个值

l = [100, 1.9, 'Python']

#访问列表第一个值
print(l[0])
#从列表第二个值开始一直访问到最后一个
print(l[1:])

#输出结果

100

[1.9, 'Python']
5.1.2列表更新与删除
l = [100, 1.9, 'Python']

# 修改列表中的第二个元素

l[1] = 5

# 向列表中添加新的元素
l.append('Hello')

print(l[1])

#输出整个列表
print(l)

#输出结果
5
[100, 5, 'Python', 'Hello']

#采用del来删除列表指定值
del l[1]
print(l)

#输出结果
[100, 'Python', 'Hello']
5.1.3列表常用方法

count()

统计列表中某个元素出现的次数,使用如下所示:

l = ['d', 'b', 'a', 'f', 'd']print(l.count('d'))

输出结果:

2

② index()

查找某个元素在列表中首次出现的位置(即索引),使用如下所示:

l = ['d', 'b', 'a', 'f', 'd']print(l.index('d'))

输出结果:

0

③ remove()

移除列表中某个值的首次匹配项,使用如下所示:

l = ['d', 'b', 'a', 'f', 'd']l.remove('d')print(l)

输出结果:

['b', 'a', 'f', 'd']

④ sort()

对列表中元素进行排序,使用如下所示:

l = ['d', 'b', 'a', 'f', 'd']l.sort()print(l)

输出结果:

['a', 'b', 'd', 'd', 'f']

⑤ copy()

复制列表,使用如下所示:

l = ['d', 'b', 'a', 'f', 'd']lc = l.copy()print(lc)

输出结果:

['d', 'b', 'a', 'f', 'd']

 5.2 元组

       元组(tuple)与列表类似,但元组是不可变的,可简单将其看作是不可变的列表,元组常用于保存不可修改的内容。 

 5.2.1 元组的创建访问
t = [100, 1.9, 'Python']

#访问列表第一个值
print(t[0])
#从列表第二个值开始一直访问到最后一个
print(t[1:])

#输出结果

100

[1.9, 'Python']
5.2.2元组的修改和删除
#更新
t = (100, 1.9, 'Python')
t = (100, 1.9, 'Python', 'Hello')
print(t)

#输出结果
(100, 1.9, 'Python', 'Hello')


#删除
t = (1024, 0.5, 'Python')

del t
print(t)

#输出(把整个元组删除了,所以就会报错)
NameError: name 't' is not defined
5.2.3元组常用方法 

 len()

计算元组中元素个数,使用如下所示:

t = (1024, 0.5, 'Python')print(len(t))

输出结果:

3

② max() 和 min()

返回元组中元素最大、最小值,使用如下所示:

t = ('d', 'b', 'a', 'f', 'd')print(max(t))print(min(t))

输出结果:

fa

③ tuple()

将列表转换为元组,使用如下所示:

l = ['d', 'b', 'a', 'f', 'd']t = tuple(l)print(t)

输出结果:

('d', 'b', 'a', 'f', 'd')

六、字典与集合

6.1字典

这里的字典不是我们小时候查字用的新华字典,但是和字典神似。地点(dict)是 Python 的数据结构,它的内容是以键-值(key-value)的方式存在的。如同新华字典是拼音-汉字的形式存在。

dict 拥有良好的查询速度,dict 中的值可以是任意 Python 对象,多次对一个 key 赋 value,后面的 value 会把前面的 value 覆盖。

字典的内容在花括号 {} 内,键-值(key-value)之间用冒号 : 分隔,键值对之间用逗号 , 分隔,比如创建字典 d。

#创建字典
d = {'name':'小帅', 'age':'18'}

# 访问字典
# 方式一
l = [('name', '小帅'), ('age', 18)]
d = dict(l)
# 方式二
d = dict(name='小帅', age='18')

# 空字典
d = dict()
d = {}

#访问字典并输出字典中所有的姓名
d = dict(name='小帅', age='18')
d['name']
#输出结果
'小帅'

#也可以使用get方法来访问
d.get('name')
#输出结果
小帅


#修改
d['name'] = '小明'
d['name']

#输出结果(此时字典:d = {'name':'小明', 'age':'18'})
小明

#删除字典,也是使用del关键字
del d
print(d)

#输出结果
NameError: name 'd' is not defined

 6.2集合

Python 中的集合,和数学中的集合概念一样,用来保存不重复的元素,即集合中的元素都是唯一的,互不相同。相当于是只把字典中的值存储起来。

集合使用花括号 {} 或者 set() 函数创建,如果创建空集合只能使用 set() 函数。

#创建

s = {'a', 'b', 'c'}

# 使用 set 函数
s = set(['a', 'b', 'c'])

# 空集合
s = set()
#集合中重复的元素会被自动过滤掉

s = {'a', 'a', 'b', 'c', 'c'}
s
#输出结果
{'a', 'c', 'b'}
6.2.1添加元素

set 集合中添加元素,可以使用 set 类型提供的 add() 方法实现,使用 add() 方法添加的元素,只能是数字、字符串、元组或者布尔类型(True 和 False)值,不能添加列表、字典、集合这类可变的数据。

a = {1,2,3}
a.add((1,2))
print(a)

#输出结果
{(1, 2), 1, 2, 3}

 如果添加集合中已经存在的元素,则集合不进行任何操作。

6.2.2其他集合操作
#删除元素使用 remove 方法​​​​​​​
s = {'a', 'b', 'c'}
s.remove('c')
s
#输出结果
{'a', 'b'}
清空集合使用 clear 方法
s = {'a', 'b', 'c'}
s.clear()
s
#输出结果
set()
获取集合的长度,同样使用 len 方法​​​​​​​
s = {'a', 'b', 'c'}
len(s)
#输出结果
3

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值