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