文章目录
- 前言
- 一、常量和表达式
- 二、变量和类型
-
- [1. 变量](#1. 变量)
-
- [1.1 变量名](#1.1 变量名)
- [1.2 变量的使用](#1.2 变量的使用)
- [2. 类型](#2. 类型)
-
- [2.1 整数](#2.1 整数)
- [2.2 浮点数(小数)](#2.2 浮点数(小数))
- [2.3 字符串](#2.3 字符串)
-
- [2.3.1 字符串长度](#2.3.1 字符串长度)
- [2.3.2 字符串拼接](#2.3.2 字符串拼接)
- [2.4 布尔类型](#2.4 布尔类型)
- [2.5 其他](#2.5 其他)
- [2.6 动态类型特性](#2.6 动态类型特性)
-
- [2.6.1 动态类型和静态类型](#2.6.1 动态类型和静态类型)
- [2.6.2 动态类型特性是一把双刃剑](#2.6.2 动态类型特性是一把双刃剑)
- 三、注释
-
- [1. 注释行](#1. 注释行)
- [2. 文档字符串](#2. 文档字符串)
- 四、输出输入
-
- [1. 输出](#1. 输出)
- [2. 输入](#2. 输入)
- 五、运算符
-
- [1. 算数运算符](#1. 算数运算符)
- [2. 关系运算符](#2. 关系运算符)
-
- [2.1 判断两个字符串是否相等](#2.1 判断两个字符串是否相等)
- [2.3 判断两个浮点数是否相同](#2.3 判断两个浮点数是否相同)
- [3. 逻辑运算符](#3. 逻辑运算符)
- [4. 赋值运算符](#4. 赋值运算符)
-
- [4.1 同时对多个变量赋值](#4.1 同时对多个变量赋值)
-
- [4.1.1 链式赋值](#4.1.1 链式赋值)
- [4.1.2 多元赋值](#4.1.2 多元赋值)
- [4.2 复合赋值运算符](#4.2 复合赋值运算符)
- [5. 其他](#5. 其他)
- 总结
前言
本文用于介绍Python的一些基础概念,包括Python中的:常量和表达式、变量和类型、注释、输入输出、运算符等。
一、常量和表达式
print是Python中的一个内置函数,用于将数据打印到控制台上
python
print(1 + 2 - 3) #0
print(1 + 2 * 3) #7
print(1 + 2 / 3) #1.6666666666666665
其中1 + 2 - 3这样的算式,在编程语言中称为表达式,运算结果称为表达式的返回值。
而像1,2,3这样的数字被称为字面值常量
二、变量和类型
1. 变量
python
a = 10
这行代码就创建了一个变量,其中a为变量名,=为赋值运算符(表示将=右边的数据放到=左边的空间里)
1.1 变量名
变量名的要求:
- 变量名必须由数字、字母、下划线组成;
- 变量名不能以数字开头;
- 变量名不能与Python中的"关键字"相同;
- 变量名字母的大小写敏感,例如
num和Num会被识别为两个不同的变量。
变量名的建议
-
使用有描述意义的单词作为变量名,表达出变量的作用;
-
当一个单词不能描述清楚变量的作用时,可以使用多个单词来作为变量名;
-
当变量名含有多个单词时,常见的命名方法有"驼峰法"和"蛇形法"
驼峰法:除第一个单词外所有单词的首字母大写(
studentName)蛇形法:每个单词之间用下划连接(
teacher_name)
1.2 变量的使用
读取变量的值
使用print函数对变量值进行打印:
python
a = 10
print(a) # 10
修改变量的值
对已经存在的变量重新赋值:
python
a = 10
a = 20
print(a) # 20
将一个变量的值赋值给另一个变量:
python
a = 10
b = 20
b = a
print(a) # 10
print(b) # 10
首次使用赋值运算符设置变量的值,这个过程是创建变量(初始化)
对已经存在的变量进行赋值操作,这个过程是在修改变量的值(重新赋值)
2. 类型
变量有多种类型,需要注意的是Python中变量的类型不需要在定义时显示说明,变量的类型是据赋值的数据类型来确定的。
2.1 整数
整数的类型为int
python
a = 10
print(type(a)) # <class 'int'>
type和
注意:
与C/C++等编程语言不同,Python中int类型的变量可以表示的数据范围没有上限,理论上只要内存足够大,它就可以表示无限大的数据
2.2 浮点数(小数)
浮点数的类型为float
python
a = 0.1
print(type(a)) # <class 'float'>
注意 :
与C/C++等其他编程语言不同,Python中的浮点数只有float一种类型,没有double类型 。实际上Python中的float就相当于C/C++语言中的double类型,表示双精度浮点数。
Python开发者的哲学:用一种方法(最好只有一种方法来做一件事)
2.3 字符串
字符串的类型为str
python
a = 'a'
b = '''b'''
c = "c"
d = """d"""
print(a) # a
print(type(a)) # <class 'str'>
print(b) # b
print(type(b)) # <class 'str'>
print(c) # c
print(type(c)) # <class 'str'>
print(d) # d
print(type(d)) # <class 'str'>
字符串可以是用单引号''、双引号""、三单引号''''''、三双引号""""""引起来的一串字符序列
2.3.1 字符串长度
可以用len函数来获取字符串的长度:
python
a = 'Jinger'
print(len(a)) # 6
2.3.2 字符串拼接
可以用+来拼接两个字符串
python
a = 'code'
b = 'Jinger'
c = a + b
print(c) # codeJinger
print(type(c)) # <class 'str'>
print(len(c)) # 10
2.4 布尔类型
表示真假的类型为bool
python
a = True
print(a) # True
print(type(a)) # <class 'bool'>
注意 :
布尔类型的取值只有两个:True(真)和False(假)
2.5 其他
list
dict
自定义类型等
2.6 动态类型特性
2.6.1 动态类型和静态类型
- 动态类型:在运行时,编译器基于变量的值的类型确定变量的类型;
- 静态类型:在编译时,编译器基于变量所声明的数据类型确定变量的类型
C/C++等大多数语言都是静态类型语言,在编写静态类型语言的代码时必须声明变量的数据类型。而Python是一种动态类型语言,在编写Python代码时不用声明变量的数据类型。
注意 :
由于动态类型语言中,变量的类型是取决于变量的值的类型,因此Python中同一个变量在不同时刻的类型可能是不同的。
python
a = 10
print(a) # 10
print(type(a)) # <class 'int'>
a = 'a'
print(a) # a
print(type(a)) # <class 'str'>
2.6.2 动态类型特性是一把双刃剑
- 对于中小型程序,它可以大大减少代码量(比如一段代码可以同时支持多种类型)
- 对于大型程序,它提高了模块之间的交互成本(比如程序员A提供的代码难以被程序员B所理解)
三、注释
1. 注释行
使用#开头的行都是注释,注释可以单独写在一行,也可以写在代码的右侧
python
# 这是一个注释
print('hello world') #这也是一个注释
2. 文档字符串
使用三引号引起来的称为文档字符串
python
'''
这是一个多行文本注释
这是第一行
这是第二行
这是第三行
'''
"""
这是一个多行文本注释
这是第一行
这是第二行
这是第三行
"""
注意:
- 实际上,Python并没有多行注释的语法,能够以三引号的方式来添加注释,本质是因为Python会忽略未分配给变量的字符串文字
- 文档字符串一般放在文档的开头用于介绍文档的内容,或者放在函数的前面,用来描述函数,或者放在类的前面,用来描述类
四、输出输入
程序需要和用户进行交互
- 程序把信息传给用户,称为"输出"
- 用户把信息传给程序,称为"输入"
输入和输出是依靠控制台的,用户可以通过控制台来输入一些字符串传给程序,程序通过控制台将运行结果输出展示给用户
1. 输出
使用print函数可以将任意类型的数据打印到控制台上
python
a = 10
print(a) # 10
b = 'codeJinger'
print(b) # codeJinger
不同类型的数据还可以混合输出,只需要对输出的字符串进行格式化,例如:
python
name = 'Jinger'
age = 20
print(f'{name} is {age} years old.') # Jinger is 20 years old.
使用f作为前缀的字符串,称为
f-string
f-string中可以使用{}内嵌一个变量或者表达式
2. 输入
使用input函数可以从控制台读取用户输入的数据
python
num = input('请输入一个整数:')
print(f'你输入的整数是 {num}')
- input函数的参数相当于需要打印的一个"提示信息",也可以不填写
- input返回值是用户输入的内容,是字符串类型(可以进行字符串拼接再打印出来)
python
num1 = input('请输入第一个数:')
num2 = input('请输入第二个数:')
num3 = input('请输入第三个数:')
print(f'{num1} + {num2} + {num3} = {num1 + num2 + num3}')
如果想进行算术运算,可以将读取到的值进行类型转换
python
num1 = input('请输入第一个数:')
num2 = input('请输入第二个数:')
num1 = int(num1)
num2 = int(num2)
print(f'{num1} + {num2} = {num1 + num2}')
int()可以将一个变量转换为int类型类似的,
float()、bool()、str()也可以将变量转换为对应类型
五、运算符
1. 算数运算符
Python中的算术运算符包括:+、-、*、/、%、//(地板除)、**(幂)
注意:
0不能作为除数,否则程序会抛异常ZeroDivisionError: division by zero/两个整数相除后,会得到一个浮点数**可以求一个数的整数次幂,也可以求一个数的小数次幂//是地板除,两个整数相除后得到的是一个整数(会舍弃小数部分,向下取整)
2. 关系运算符
Python中的关系运算符包括:<、<=、>、>=、==、!=
2.1 判断两个字符串是否相等
与C等其他语言不同的,Python中使用==、!=可以判断两个字符串是否相等
C语言中
==判断的是地址是否相同,所以要判断两个字符串是否相同需要使用strncmp()函数C++中的string类型字符串可以使用
==来判断两个字符串是否相同
2.3 判断两个浮点数是否相同
与C/C++等其他语言不同,Python中不能直接使用==、!=来判断两个浮点数是否相同,因为浮点数在计算机中的表示并不是精确的,例如:
python
a = 0.1 + 0.2
b = 0.3
print(a) # 0.30000000000000004
print(b) # 0.3
print(f'a == b ? {a == b}') # a == b ? False
正确的判断方式为:判断这两个浮点数的差值是否小于允许的误差范围。
python
a = 0.1 + 0.2
b = 0.3
print(a) # 0.30000000000000004
print(b) # 0.3
print(-0.000001 < a - b < 0.000001) # True
3. 逻辑运算符
Python中的逻辑运算符包括:and、or和not
and:与。两侧操作数同时为True时,结果为True;一侧操作数为False时,结果为False。(一假则假)or:或。两侧操作数有一侧为True时,结果为True;两侧操作数同时为False时,结果为False。(一真则真)not:非。操作数本身为True,则结果为False,操作数本身为False,则结果为True。
注意:
- 与其他编程语言不同,在Python中,
a < b and b < c等价于a < b < c; - 与其他编程语言类似,Python中也存在短路求值规则,即
and左侧为假时,就不会再计算右侧;or左侧为真时,就不会再计算右侧
4. 赋值运算符
Python中的赋值运算符包括:=、+=、-=、/=、%=、//=、**=、&=、|=、^=、<<=``>>=
4.1 同时对多个变量赋值
4.1.1 链式赋值
python
a = b = 10
print(a) # 10
print(b) # 10
4.1.2 多元赋值
python
a, b, c = 10, 20, 30
print(a) # 10
print(b) # 20
print(c) # 30
多元赋值还可以解决一些特殊问题,比如进行两个变量的交换
python
a = 10
b = 20
a, b = b, a
print(a) # 20
print(b) # 10
4.2 复合赋值运算符
对于复合赋值运算符来说,a += 1等价于a = a + 1,其他复合赋值运算符也是一样的
注意 :
C/C++等其他编程语言支持++、--等运算符,但是Python中不支持这种运算符,只能使用+=、-=进行等价操作
5. 其他
Python中还有身份运算符(is、is not)、成员运算符(in、not in)、位运算符(&、|、^、~、<<、>>)等。
总结
以上就是今天要讲的内容,本文介绍了Python中的一些基础知识。本文作者目前也是正在学习Python相关的知识,如果文章中的内容有错误或者不严谨的部分,欢迎大家在评论区指出,也欢迎大家在评论区提问、交流。
最后,如果本篇文章对你有所启发的话,希望可以多多支持作者,谢谢大家!