Python 基础教程【1】:Python介绍、变量和数据类型、输入输出、运算符
文章目录
- 1、Python 介绍
- 2、变量和数据类型
- 2.1 注释的使用
- 2.2 变量以及数据类型
- 2.2.1 什么是变量?
- 2.2.2 怎么给变量起名?
- 2.2.3 变量的类型
- 🎨 整数 int
- 🎨 浮点数(小数)float
- 🎨 字符串 str
- 🎨 布尔 bool
- 🎨 其他
- 2.2.4 变量类型的意义
- 2.2.5 动态类型特性
- 2.2.6 类型转换
- 3、输入输出
- 3.1 输出到控制台
- 3.2 从控制台输入
- 4、运算符
- 4.1 算术运算符
- 4.2 关系运算符
- 4.3 逻辑运算符
- 4.4 赋值运算符
1、Python 介绍
Python
是一门解释型的编程语言
Python 有哪些特点?
简单、易学,免费开源、高层语言、可移植性、解释性、面向对象、拥有丰富的库
2、变量和数据类型
2.1 注释的使用
通常来说,注释有以下两种作用:
- 不让解释器执行注释那句话
- 代码说明
在 Python
中,注释也分为单行注释和多行注释,
单行注释: 以 # 和空格开头的部分
多行注释: 三个引号开头,三个引号结尾(引号不区分单引号和双引号)
'''
三个单引号的 Python 注释
'''
"""
三个双引号的 Python 注释
"""
# 单行注释
2.2 变量以及数据类型
2.2.1 什么是变量?
对于经常需要修改的数据,咱们可以定义为变量
定义变量的语法:变量名 = 变量值
(程序中的 = 作用是赋值的意思)
在 Java 和 C语言的学习中,变量命名,我们一般是类似以下的形式进行命名
Java:
int a = 100;
但Python作为一门弱语言,变量声明的时候对数据类型不是很严格
Python:
a = 100
Python 不用一上来就对变量进行类型声明,至于 a 是什么类型,取决于给a赋值了什么数据,给 a 赋值了100,就表示 a 是一个整型数据~
注意:
敲代码的时候,注意空格,a = 100
这中间是有空格的,a=100
这样写,没有空格的话会报错~
2.2.2 怎么给变量起名?
对于每个变量我们需要给它取一个名字,就如同我们每个人都有属于自己的响亮的名字一样~
变量名的命名规范:
硬性规则:
- 标识符由字母、下划线和数字组成,且数字不能开头
- 严格区分大小写
- 不能使用关键字
软性规则:(建议遵守)
- 给变量命名的时候,尽量使用描述性的单词来表示,尽量通过名字来表现变量的作用
- 当我们使用一个单词描述不清楚的时候,可以使用多个单词来命名,不怕变量名长,而怕变量的含义表达不清楚
当包含多个单词的时候,命名有多种规范:
-
驼峰命名法:除了第一个单词的首字母之外,后续每个单词的首字母都大写
例:personInfo,totalCount -
蛇形命名法:单词之间使用下划线_来进行分隔
例:person_info,total_count
2.2.3 变量的类型
变量的类型:对于不同种类的变量做出区分
Python 中的变量的类型,不需要在定义变量的时候显示声明,而只是依靠初始化语句,根据初始化的值的类型来进行确定
🎨 整数 int
- 在Python,int 能够表示的数据范围,是“无穷”的,可以根据要表示的数据的大小,自动扩容。
- 在Java中,int 最大能表示到 -21亿->+21亿。
- 所以Python里面没有long这样的类型,像byte,short这些类型在Python中也不存在,整数都用int表示
🎨 浮点数(小数)float
像 C++ 和 Java里面,float 是四个字节的,也叫做“单精度浮点数”;double 是八个字节,也叫做“双精度浮点数”
把一个二进制位,称为一个 bit,8个 bit 放在一起,就称为是一个字节
Python 中的 float 就是双精度浮点数,等同于C++/Java里的double
🎨 字符串 str
Python 中要求使用单引号或者双引号将一系列的字符引起来,就构成了字符串
如果字符串里面包含了双引号,表示字符串可以用单引号引起来
如果字符串里面包含了单引号,表示字符串可以用双引号引起来
问:如果同时有单引号和双引号,怎么办?
Python 中还有一种字符串,使用 三引号(‘’’ 或者 “”") 表示
例:
Python 中还包含了一些关于 str 的内置函数:
- len()可以求出字符串中包含了几个字符
例:
打印结果为 5
- 拼接字符串
把后面的字符串拼接到前一个字符串的末尾
注意,不能把字符串和数字混合相加
例:
打印结果为 helloworld
在Python中,报错,有两种情况:
- 语法错误:在程序运行之前,Python解释器就能把错误识别出来
- 运行错误:在程序运行之前,识别不了的,必须要执行到对应的代码,才能发现问题
🎨 布尔 bool
布尔类型是一个特殊的类型,取值只有两种,True(真)和 False(假)
注意:单词首字母要大写
布尔类型主要用于逻辑判断
如果把 布尔 类型的值和 整数 进行算术运算,此时就会把 True 当做 1,把 False 当做 0,但是这样的操作,是没有意义的~
🎨 其他
除了上述类型之外,Python中还有list(列表)、tuple(元组)、dict(字典)、自定义类型等等~
2.2.4 变量类型的意义
不同的类型,占用的内存空间是不同的——即占几个字节
- int 默认是 4个字节,动态扩容
- float 固定 8个字节
- bool 一个字节就够了
- str 变长的
不同的类型,对应能够进行的操作也是不同的
对于 int
或者 float
类型,可以进行 +
、 -
、 *
、 /
,但是不能使用 len
;
str
类型的变量,可以进行 +
操作, 但是不能进行 -
, 不能 *
, 也不能 /
,可以使用 len
2.2.5 动态类型特性
程序运行过程中,变量的类型可能会发生改变
看上面这个代码,a 的类型会随着程序的运行,发生改变
打印结果为 int、str、bool
补充:
什么是静态类型?
程序运行过程中,变量的类型始终不变。
像C++、Java中,int a = 10;
a 这个变量在程序运行的整个过程中,始终都是 int
如果尝试 a = “hello”,编译阶段就会报错
一个编程语言是否是动态类型,只是取决于运行时,类型是否发生改变,不取决于变量定义的时候是否声明类型
Python 作为一个动态类型的语言,在定义变量的时候,也是可以写类型的
例:变量名 : 类型
动态类型,写法比较灵活的,提高了语言的表达能力。
然而,在编程中,“灵活”这个词往往是“贬义”,更容易出错!!! 相比之下,静态类型的语言还是更好一些的,尤其是在大型的程序中,多人协作开发
2.2.6 类型转换
可以使用 Python中内置的函数对变量类型进行转换,常用的有如下:
- int():将一个数值或字符串转换成整数
- float():将一个字符串转换成浮点数
- str():将指定的对象转换成字符串形式
"""
使用input()函数获取键盘输入(字符串)
使用int()函数将输入的字符串转换成整数
"""
a = int(input('a = '))
print(a)
3、输入输出
3.1 输出到控制台
控制台: 用户能输入命令,向计算机安排工作,计算机再把结果显示出来的程序
Python 使用 print 函数输出到控制台
print('hello')
这个语法,是叫做 “格式化字符串”,f-string,此处的 f 表示“format”,此时就可以使用 {} 这样的语法,往字符串里面嵌入变量或者表达式
3.2 从控制台输入
input 执行的时候,就会等待用户输入。
input 返回的值,其实是一个 str
如果只是单纯的拿到用户的输入,然后打印,此时就按照 str 打印即可
如果需要根据用户输入的内容进行算术计算,此时就需要把先读到的 str -> int
可以使用 int()
a = input('请输入第一个整数:')
b = input('请输入第二个整数:')
a = int(a)
b = int(b)
print(f'a + b = {a + b}')
如果想把整数转为字符串,可以使用 str()
4、运算符
4.1 算术运算符
+
、 -
、 *
、/
、%
、**
、 //
先算乘方,然后是乘除,最后算加减,如果运算过程中想修改默认的运算顺序,就需要加上()
- 在Python中,0不能作为除数
一个数除以另一个数,前面的数是被除数,后面的数是除数
- 在Python中,整数/整数,如果除不尽,得到的就是小数,不会出现截断的情况
%
是求余数,7%3结果为1**
进行乘方运算,既能支持整数次方,也支持小数次方(开方运算)
print(4 ** 2) # 结果为16
print(4 ** 0.5) # 结果为2.0
//
取整除法,会对计算的结果进行“向下取整”
print(7 // 2) # 结果为3
print(-7 // 2) # 结果为-4
4.2 关系运算符
<
、 <=
、 >
、>=
、==
、!=
关系运算符对应的表达式,值是 布尔类型,表达式符合要求为真,不符合要求为假
关系运算不光可以针对数字进行比较,还能够比较字符串
Python 可以直接使用关系运算符来比较字符串
在C语言中,咱们是用 strcmp 来进行比较字符串,如果直接使用 ==
,本质上在比较两个字符串首元素地址
Java 是用 equals方法来进行比较字符串,如果直接使用 ==
本质上在比较两个字符串是否是同一个对象
针对浮点数来说,使用 ==
比较相等,存在一定的风险!!
因为浮点数在内存中的存储和表示,是可能存在误差的!!这样的误差在进行算术运算的时候就可能被放大,从而导致 ==
的判定出现误判!!
正确的比较浮点数相等:
作差,看差值是否小于预期的误差范围
同时,Python中,支持这种连续小于的写法
4.3 逻辑运算符
and
并且
两侧操作数均为True,表达式的值为 True,否则为False(一假则假)
or
或者
or 或者两侧操作数均为False,表达式的值为False,否则为True(一真则真)
not
逻辑取反
只有一个操作数。操作数为True,则返回False,操作数为False,则返回True
逻辑运算符中的细节:短路求值
对于 and 操作来说,如果左侧表达式为 False ,那么整体的值一定是 False,右侧表达式不必求值;
对于 or 操作来说,如果左侧表达式为 True,那么整体的值一定是 True,右侧表达式不必求值
4.4 赋值运算符
链式赋值:
a = b = 10
多元赋值:
a, b = 10, 20
Python中,不支持 ++
、 --
这样的自增自减操作的