【Python】基础语法知识
有些人不属于自己,但是遇见了也弥足珍贵。
前言
这是我自己学习Python的第一篇博客总结。后期我会继续把Python学习笔记开源至博客上。
安装python解释器
下载官网:
Welcome to Python.orghttps://www.python.org/
安装pycharm编辑器
下载官网:
Download PyCharm: The Python IDE for data science and web development by JetBrainshttps://www.jetbrains.com/pycharm/download/?section=windows
Python入门知识
标识符
1. 标识符的第一个字符必须是字母表中的字母或下划线 _ 。
2. 标识符的其他的部分由字母、数字和下划线组成。
3. 标识符对大小写敏感,即需要区分大小写。
4. 蛇形命名法则:同一个标识符内如果存在多个单词,那么每个单词之间,使用下划线 _ 来进行分割。
num=10
Num=11
print(num)
print(Num)
#10
#11
student_name='Li lei'
student_age=16
保留字
1. 保留字即关键字,不能把它们用作任何标识符名称。
注释
1. Python中单行注释以#开头。
2. 多行注释可以用多个#号,或者直接用''' '''和"' '''。
3. 选定多行,Ctrl+/一键注释。
# 第一个注释
# 第二个注释
'''
第三注释
第四注释
'''
"""
第五注释
第六注释
"""
#print ("Hello, Python!")
#最后输出 Hello, Python!
行与缩进
1. Python最具特色的就是使用缩进来表示代码块,不需要使用大括号{ }。
2. 缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。
if True:
print ("True")
else:
print ("False")
# 同一个代码块,缩进必须相同
多行语句
1. Python通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 \ 来实现多行语。
2. 在[ ]、{ }、或( )中的多行语句,不需要使用反斜杠,可以直接换行。
total = item_one + \
item_two + \
item_three
total = ['item_one', 'item_two', 'item_three',
'item_four', 'item_five']
print()输出
1. 如果print()里面是算术表达式,那么编译器会直接帮你直接算出来,并且给出计算结果。
2. 在Python中,小数会被保留,算术表达式的运算和日常数学里面一样。
3. print()默认输出是换行的,如果要实现不换行,需要在变量末尾加上end=" "。
print(5+6*2)
print(5+6/5)
#17
#6.2
x="a"
y="b"
# 换行输出
print( x )
print( y )
# a
# b
# 不换行输出
print( x, end=" " )
print( y, end=" " )
# a b
input()输入
1. 需要向程序输入数据时,可以使用input()函数。
2. input()函数的括号里面存放一个字符串,一般是输入的提示信息
3. 使用input()函数输入,需要把输入的值保存在一个新的变量里面。
4. 使用input()函数输入,获得的其实是字符串类型的变量。
a1=input('输入一个整数:')
b1=input('输入一个整数:')
print(a1+b1)
a2=int(a1)
b2=int(b1)
print(a2+b2)
#4 5
#45
#9
导入函数模块
1. 在Python用import或者from…import…来导入相应的模块。
2. 将整个模块导入,格式为:import somemodule as sm。
3. 从某个模块中导入某个函数,格式为:from somemodule import somefunction。
4. 从某个模块中导入多个函数,格式为:from somemodule import firstfunc, secondfunc。
报错
1. 在Python中,报错有两种情况 :语法错误和运行错误。
2. 语法错误,在程序运行之前,Python解释器就能识别出来。
3. 运行错误,必须要执行到对应代码,才能发现问题,又称“抛异常”,“抛异常”之后程序直接中止,不再往后面继续执行。
4. 黄色波浪线:警告。提示你的代码可能存在问题,但并不影响程序编译执行。
5. 红色波浪线:错误。编译一定出错。
Python基本数据类型
变量概念
1. Python中创建变量,不需要在变量前面声明类型。
2. 每个变量在使用前都必须赋值,变量赋值以后,该变量才会被创建。
3. 在Python中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
4. Python的语言类型是动态的,一个变量可以通过赋值指向不同类型的对象。即在程序运行中,变量的类型可以发生改变。
counter = 100 # 整型变量
miles = 1000.0 # 浮点型变量
name = "nowcoder" # 字符串
print (counter) # 100
print (miles) # 1000.0
print (name) # nowcoder
a=10
print(type(a))#<class 'int'>
a='ni hao'
print(type(a))#<class 'str'>
标准数据类型分类
Python中有六个标准的数据类型:
Number(数字) String(字符串) List(列表) Tuple(元组) Set(集合) Dictionary(字典)
Number(数字)
1. Number包含int、float、bool、complex四种细分类型。
2. 在Python中,int能够表示的数据范围是无穷的。
3. 在Python中,float能够表示的数据范围相当于C++中的double。
4. 在Python中,bool有True和False两种情况(大写)。
5. 内置的type()函数可以用来查询变量所指的对象类型。
6. int(x)将x转换为一个整数,float(x)将x转换到一个浮点数。
7. 此外,还存在数学函数、随机数函数、三角函数等其他库函数。
a, b, c, d = 20, 5.5, True, 4+3j
print(type(a), type(b), type(c), type(d))
# <class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
a = 1.0
b=int(a)
print(b)
# 1
String(字符串)
1. Python中单引号 ' ' 和双引号 " " 使用规则完全相同,单行字符串需要用单、双引号括起来。
2. 多行字符串需要使用三引号('''或""")括起来。
3. len()函数可以求出字符串的.长度。
4. 字符串可以用 + 运算符拼接在一起,拼接后不改变原来的字符串。
5. str()可以把其他类型的变量转化为字符串类型。
6. Python中的字符串不能改变,向一个索引位置赋值,比如word[0] = 'm'会导致错误。
word = '字符串'
sentence = "这是一个句子。"
paragraph = """这是一个段落,
可以由多行组成"""
str1='hello world'
print(len(str1))
#11
str1='hello '
str2='world'
print(str1+str2)
#hello world
str='Nowcoder'
print(str) # 输出字符串
print(str[0:-1]) # 输出第一个到倒数第二个的所有字符
print(str[0]) # 输出字符串第一个字符
print(str[2:5]) # 输出从第三个开始到第五个的字符
print(str[2:]) # 输出从第三个开始的后的所有字符
print(str * 2) # 输出字符串两次
print(str + '你好') # 连接字符串
# Nowcoder
# Nowcode
# N
# wco
# wcoder
# NowcoderNowcoder
# Nowcoder你好
List(列表)
1. Python中的列表类似于C++中的数组,两者大部分功能都相同。
2. Python中的列表与元组非常类似,不同之处在于列表的元素可以修改。
3. 可以使用[ ]来创建一个列表,也可以通过list()来创建一个列表。
4. 列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表等嵌套类型,列表中的元素用逗号分隔。
5. 列表使用[ ]来进行下标访问,也可以对元素值进行修改。
6. 列表可以进行切片操作,切出来的是一个新的子列表。
7. 加号 + 是列表连接运算符,星号 * 是重复操作。
list = [ 'abcd', 786 , 2.23, 'nowcoder', 70.2 ]
tinylist = [123, 'nowcoder']
print (list) # 输出完整列表
print (list[0]) # 输出列表第一个元素
print (list[1:3]) # 从第二个开始输出到第三个元素
print (list[2:]) # 输出从第三个元素开始的所有元素
print (list[2::2]) # 输出从第三个元素开始的所有元素,步长为2
print (tinylist * 2) # 输出两次列表
print (list + tinylist) # 连接列表
# ['abcd', 786, 2.23, 'nowcoder', 70.2]
# abcd
# [786, 2.23]
# [2.23, 'nowcoder', 70.2]
# [2.23, 70.2]
# [123, 'nowcoder', 123, 'nowcoder']
# ['abcd', 786, 2.23, 'nowcoder', 70.2, 123, 'nowcoder']
1. 列表可以直接通过赋值来进行修改或更新。
2. 列表可以使用append()方法来进行尾插。
3. 列表可以使用insert()方法来在任意一个位置前面进行插入数据。
4. 列表可以使用index()方法来获取元素的下标,如果该元素不存在于列表中,则抛异常。
5. 列表可以使用pop()方法来进行删除元素,在括号内给出要删除元素的下标。
5. 列表可以使用remove()方法来进行删除元素,在括号内给出要删除元素的值。
list = ['Google', 'Nowcoder', 1997, 2000]
print ("第三个元素为 : ", list[2]) # 1997
list[2] = 2001
print ("更新后的第三个元素为 : ", list[2]) # 2001
list=[1,2,3,4,5]
print(list)
list.append(6)
print(list)
list.insert(0,-1)
print(list)
#[1, 2, 3, 4, 5]
#[1, 2, 3, 4, 5, 6]
#[-1, 1, 2, 3, 4, 5, 6]
list=[1,2,3,4,5]
print(list.index(5))
#4
list = ['Google', 'Nowcoder', 1997, 2000]
print (list) # ['Google', 'Nowcoder', 1997, 2000]
list.pop(2)
print (list) # ['Google', 'Nowcoder', 2000]
list.remove('Nowcoder')
print (list) # ['Google', 2000]
tuple(元组)
1. Python中的元组类似于C++中的数组,两者大部分功能都相同。
2. Python中的元组与列表非常类似,不同之处在于元组的元素不能修改。
2. 元组使用小括号(),列表使用方括号[ ]。
3. 元组与字符串类似,下标索引从0开始,可以进行切片,下标访问等。
4. 元组中的元素值是不允许修改、增删的,但我们可以对元组进行连接组合。
5. 元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组。
tup1 = ('Google', 'Nowcoder', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )
print ("tup1[0]: ", tup1[0])
print ("tup2[1:5]: ", tup2[1:5])
# tup1[0]: Google
# tup2[1:5]: (2, 3, 4, 5)
tup1 = (12, 34.56);
tup2 = ('abc', 'xyz')
# 以下修改元组元素操作是非法的。
tup1[0] = 100
# 创建一个新的元组
tup3 = tup1 + tup2;
print (tup3)
# (12, 34.56, 'abc', 'xyz')
tup = ('Google', 'Nowcoder', 1997, 2000)
print (tup)
del tup
# 'Google', 'Nowcoder', 1997, 2000
Dictionary(字典)
1. 在Python中,字典里面的每个元素都以键值对的形式存在,并且在同一个字典里面,键是唯一的。
2. 字典的每个键值之间用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号{ }中 。
3. 值可以取任何数据类型,但键必须是不可变的类型,如字符串、数字或元组。
4. 成员运算符in只能用来判断键key是否存在,和值value存在与否无关。
5. 列表与字典之间的区别在于:字典中的元素是通过键来存取的,而列表是通过偏移来存取的。
6. 字典是一种映射类型,字典用{ }标识,它是一个无序的键(key) : 值(value)的集合。
7. 字典也可以进行新增、修改和删除,如果键不存在则为新增,如果存在则为修改,使用pop(要删除的键)可以删除对应的键值对。
dict = {
key1 : value1,
key2 : value2
}
dict1={
1:'haha',
2:'hehe'
}
if 1 in dict1:
print('haha')
else:
print(0)
#'haha'
dict1={
1:'haha',
2:'hehe'
}
if 'haha' in dict1:
print('haha')
else:
print(0)
#0
dict1 = {
'Alice': '2341',
'Beth': '9102',
'Cecil': '3258'
}
tinydict = {
'name': 'nowcoder',
'code':1,
'site': 'www.nowcoder.com'
}
print (dict1['Alice']) # 输出键为 'one' 的值
print (dict1['Cecil']) # 输出键为 2 的值
print (tinydict) # 输出完整的字典
print (tinydict.keys()) # 输出所有键
print (tinydict.values()) # 输出所有值
# '2341'
# '3258'
# {'name': 'nowcoder', 'code': 1, 'site': 'www.nowcoder.com'}
# dict_keys(['name', 'code', 'site'])
# dict_values(['nowcoder', 1, 'www.nowcoder.com'])
dict = {
'Name': 'Nowcoder',
'Age': 7,
'Class': 'First'
}
dict['Age'] = 8 # 更新Age
dict['School'] = "牛客教程" # 添加信息
print (dict)
dict.pop('Age') #删除Age
print (dict)
#{'Name': 'Nowcoder', 'Age': 8, 'Class': 'First', 'School': '牛客教程'}
#{'Name': 'Nowcoder', 'Class': 'First', 'School': '牛客教程'}
运算符
逻辑运算符
身份运算符
成员运算符
条件循环语句
条件语句
if – else 语句
if expreesion1:
do_something1
else:
do_something2
if – elif – else 语句
if expreesion1:
do_something1
elif expreesion2:
do_something2
else:
do_something3
if – else 嵌套
if expreesion1:
do_something1
if expreesion2:
do_something2
elif expreesion3:
do_something3
else:
do_something4
elif expreesion4:
do_something5
else:
do_something6
循环语句
while循环
while 条件:
循环体
for循环
for 循环变量 in 可迭代对象:
循环体
range()函数
1. 如果你需要遍历数字序列,可以使用内置range()函数,它会生成一个数列。
2. 也可以使range()以指定数字开始,并指定不同的增量。
3. 结合range()和len()函数以遍历一个序列的索引。
for i in range(1,11):
print(i)
#1 2 3 4 5 6 7 8 9 10
for i in range(5):
print(i)
#0 1 2 3 4
for i in range(5,9) :
print(i)
#5 6 7 8
for i in range(0, 10, 3) :
print(i)
#0 3 6 9
a = ['Google', 'Baidu', 'Nowcoder', 'Taobao', 'QQ']
for i in range(len(a)):
print(i, a[i])
函数
函数定义
1. 函数的代码块以def关键词开头,后接函数名和圆括号,圆括号里面是形参列表。
2. 形参列表中,可以有多个形参,形参之间使用逗号分隔。
3. return语句用于结束函数,选择性地返回一个值给调用方,也可以不用return语句,即不返回任何值。
def 函数名(参数列表):
函数体
文件
文件路径
1. 文件路径由一层一层的目录名构成,目录名之间使用斜杠 / 来分隔。
2. 在Python中,使用open()函数来打开指定的文件,第一个参数是要打开的文件路径,第二个参数是要打开的文件方式,并使用新的变量来接收。
3. 文件打开的方式有:' r '按照读方式打开,' w '按照写方式打开,' a '按照追加写方式打开。
4. 在Python中,使用close()方法来关闭指定的文件,不要遗漏这一步。
5. 为了避免遗漏close()方法关闭函数,可以使用:with open(…) as file: 的格式。
file=open('C:/Users/风中的云彩2/PycharmProjects/pythonProject4/main.py','r')
print(file)
file.close()
with open('C:/Users/风中的云彩2/Desktop/编程/python.text.txt','r',encoding='utf8') as file:
for line in file:
print(line,end='')
写文件
1. ' w '按照写方式打开,此时会清空文件原有内容,重新写。
2. ' a '按照追加写方式打开,此时不会清空文件原有内容,新的内容追加在后面。
f=open('C:/Users/风中的云彩2/Desktop/编程/python.text.txt','w')
f.write('hello')
f.close()
#hello
f=open('C:/Users/风中的云彩2/Desktop/编程/python.text.txt','w')
f.write('hello world!')
f.close()
#hello world!
f=open('C:/Users/风中的云彩2/Desktop/编程/python.text.txt','a')
f.write('hello world!')
f.close()
#hello world!
#hello world!
读文件
1. ' r '按照读方式打开,后面还需设置以哪种方式读取:encoding='gbk'或encoding='utf8'。
2. 在Python中,使用read()方法来读取指定的文件的n个字符。(n为传入的参数)
3. 还可以利用for循环,按行读取文件内容进行打印。
f=open('C:/Users/风中的云彩2/Desktop/编程/python.text.txt','a')
f.write('hello world!')
f.close()
f=open('C:/Users/风中的云彩2/Desktop/编程/python.text.txt','r',encoding='utf8')
result=f.read(5)
print(result)
f.close()
#hello
f=open('C:/Users/风中的云彩2/Desktop/编程/python.text.txt','r',encoding='utf8')
for line in f:
print(line,end='')
f.close()
#hello world!
#hello world!
致谢
感谢您花时间阅读这篇文章!如果您对本文有任何疑问、建议或是想要分享您的看法,请不要犹豫,在评论区留下您的宝贵意见。每一次互动都是我前进的动力,您的支持是我最大的鼓励。期待与您的交流,让我们共同成长,探索技术世界的无限可能!
作者:星霜旅人