Python语法基础

本文详细介绍了Python的基础知识,包括使用场景、优缺点、变量与类型、表达式和运算符。重点讲解了变量的语法、类型(整数、浮点数、字符串、布尔)及其动态类型特性。此外,还探讨了注释、输入输出以及算数和逻辑运算符的用法。内容深入浅出,适合Python初学者阅读。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.Python的使用场景

2.Python的优缺点

3.常量和表达式

变量和类型

4. 变量的语法

(1)定义变量

(2)变量的命名规则

(3)变量的使用

5.变量的类型

(1)整数

(2)浮点数(小数)

(3)字符串

(4)布尔

6.类型带来的意义

7.动态类型特征

8.注释

9.输入输出

(1)控制台输出

(2)控制台输入

运算符

10.算数运算符

 11.关系运算符

12.逻辑运算符

13.赋值运算符

(1)使用 = 同时对多个变量赋值

(2)复合运算符


 

1.Python的使用场景

Python具有广泛的使用场景:

  • 科学计算&数据分析。
  • Web开发(搭建网站)。
  • 自动化运维。
  • 人工智能。
  • 爬虫程序。
  • 自动化测试。

                                    

                            

2.Python的优缺点

①Python的优点:

  • 表达能力比较强,并且语法简单,容易上手。
  • 功能强大,用途广泛。
  • 生态丰富,具有海量成熟的第三方库供程序员使用。
  • 方便调用C/C++编写的代码进行高性能或系统级操作。

②Python的缺点

  • 执行效率比较弱。
  • 对于多核心并发程序支持偏弱。
  • 动态类型系统对于大型项目不太友好。
     

 ③Python采用的是动态类型系统,因此一个变量的类型在程序运行的时候是可以发生改变的

                

                        

3.常量和表达式

(1)print是Python中的一个内置函数,使用print函数可以将数据打印到控制台上

print(1 + 3 - 7)  # -3
print(1 + 3 * 7)  # 22
print(1 + 3 / 7)  # 1.4285714285714286

                 

(2)说明

  • 形如1+3-7这样的算式,在编程语言中称为表达式,表达式的运算结果称为表达式的返回值,而像1,3,7这样的数字称为字面值常量
  • C / java语言中 2 / 3 结果为 0 (小数部分被截断),Python中两个整数相除后得到的结果是一个浮点数,更符合日常使用直觉。
  • Python中浮点数在内存中的存储遵循IEEE754标准,这套标准在表示浮点数时可能会存在微小的误差,但这个误差在实际开发中不会造成太大的影响。

                

                                

变量和类型

                                

4. 变量的语法

(1)定义变量

a = 10
  • a为变量名,当需要创建多个变量时,可以通过名字来进行区分。
  • =为赋值运算符,表示把 = 右侧的数据放到 = 左侧的空间中。

                         

(2)变量的命名规则

①硬性规则

  • 变量名由数字、字母、下划线构成。
  • 变量名不能以数字开头。
  • 变量名不能和Python的“关键字”重复。
  • 变量名大小写敏感,比如num和Num是两个不同的变量名。

②软性规则

  • 变量名使用有描述性的单词来表示,尽量表达出变量的作用。
  • 当一个单词无法表述清楚变量的作用时,可以用多个单词进行命名(不怕变量的名字长,而怕变量的含义表达的不清楚)
  • 当变量名包含多个单词时,常见的命名规范有驼峰命名法或蛇形命名法。

③常见命名规范

  • 驼峰命名法:除第一个单词的首字母外,后续每个单词的首字母都大写 ( totalCount )
  • 蛇形命名法:每个单词之间使用下划线进行分隔 (name_test)

                

(3)变量的使用

  • 首次使用赋值运算符设置变量的值,这个过程是创建变量(初始化)。
  • 对已存在的变量进行赋值操作,则是在修改这个变量的值(重新赋值)。

                

                        

5.变量的类型

  • 变量里面不仅能存储数字,还可以存储其他种类的数据,为了区分不同种类的数据,于是引入了“类型”的概念。
  • 需要注意的是,与C/C++等其他语言不同的是,Python中变量的类型不需要在定义的时候显式声明,而是根据初始化的值的类型来进行确定的。
  • Prthon的一个设计哲学解决一个问题, 只提供一种方案

                

(1)整数

①整数类型为int

a = 10
print(type(a))  # <class 'int'>

                 

②补充

  • type和print类似,也是Python中的一个内置函数,可以使用type函数来查看一个变量的类型。
  • 与C/C++等其他语言不同的是,Python中int类型的变量能够表示的数据范围是没有上限的,只要内存足够大,理论上就可以表示无限大的数据。
  • 在Python , int能够表示的数据范围,是"无穷"的. Python的int是可以根据要表示的数据的大小自动扩容

  • 因此Python这里就没有long这样的类型了 , 像byte, short这些类型在Python中也不存在

        

(2)浮点数(小数)

①浮点数的类型为float

a = 0.88
print(type(a))  # <class 'float'>

                 

②补充

  • 与C/C++等其他语言不同的是,Python中的浮点数只有float一种类型,没有double类型,实际上Python中的float就相当于C/C++等语言中的double类型,表示双精度浮点数。

                

(3)字符串

①字符串的类型为str (string -> str)

a = 'GSX_MIUI'
print(type(a))  # <class 'str'>

                 

②字符串可以是用“单引号”、“双引号”、“三单引号”或者“三双引号”引起来的一串字符序列

a = 'test'
b = "test"
c = '''test'''
d = """test"""
print(a)
print(b)
print(c)
print(d)

                 

③有一段话 (My name is "GSX") , 如果把这段话作为字符串该怎么弄

  •  字符串中间的引号和最外面的引号不能重复
a = "My name is "GSX"" #中间报红的这部分Python不认识了
b = 'My name is "GSX"'

                 

④使用“三单引号”或“三双引号”可以将多行字符串赋值给变量

                 

⑤使用len函数来获取字符串的长度

a = 'My name is "GSX"'
print(len(a)) #16

                 

⑥使用+对两个字符串进行拼接,不能拿字符串和整数/浮点数相加

a = 'GSX'
b = '_'
c = 'MIUI'
print(a+b+c) # GSX_MIUI

                 

 (4)布尔

①表示真假的类型为bool

a = True
print(type(a))  # <class 'bool'>

 ②布尔类型的取值只有两种,True(真)和False(假)。

                

                        

6.类型带来的意义

(1)不同的类型(Python),占用的内存空间是不同的.

  • int默认是4个字节.动态扩容.
  • float固定8个字节.
  • bool -个字节就足够了.
  • str变长的

(2)不同类型对应的操作也是不一样的

  • int / float   ->   + - * /    :     不能使用len
  • str   ->   +   :    可以使用len

                

                        

7.动态类型特征

(1)动态类型与静态类型

  • 动态类型: 在运行时,解释器基于变量值的类型决定变量的类型。
  • 静态类型: 在编译时,编译器基于所声明的数据类型确定变量的类型

                 

(2)由于动态类型语言中,变量的类型是取决于变量值的类型,因此Python中同一个变量在不同时刻的类型可能是不同的

a = 10
print(type(a))  # <class 'int'>

a = 'hello'
print(type(a))  # <class 'str'>

                 

(3)补充

  • C/C++等大多数语言都是静态类型语言,在编写静态类型语言的代码时,必须声明变量的数据类型,而Python则是一种动态类型语言, 因此在编写Python代码时不用声明变量的数据类型。
  • 一个编程语言,是否是动态类型,只是取决于运行时,类型是否发生改变,不取决于变量定义的时候是否声明类型!
  • Python作为一个动态类型的语言,在定义变量的时候,也是可以写类型的。例如:  ( a:int= 10 ) ,就是一个声名, 但是并不会因为这样的声名就把类型改变了
  • Python中引入类型声名主要是为了方便程序员读代码的时候更好的理解,也方便python的开发工具更好的去针对代码进行解析

                 

(4)动态类型特性是一把双刃剑

  • 对于中小型程序,可以大大的减少代码量(比如写一段代码就可以同时支持多种类型)。
  • 对于大型程序,则提高了模块之间的交互成本(比如程序员A提供的代码难以被B理解)。

因此很多公司,在创业之初,喜欢使用Python来开发 , 产品规模小,也就是一两个程序猿,很快的就
能搞出来 ; 但是当项目达到一定的规模之后~~动态类型的劣势就逐渐体现了. 很多公司就会针对之前Python写的代码使用其他语言进行重构~

         

                         

8.注释

(1)行注释

  • 使用#开头的行都是注释,注释可以单独的写在一行,也可以写在代码的右侧
# 这是一个注释
print('Test')  # 这是也是一个注释

         

(2)文档字符串

  • 使用三引号引起来的称为“文档字符串”,也可以视为是一种注释
  • 可以包含多行内容,
  • 一般放在 文件/函数/类 的开头.
  • """ 或者 ''' 均可
"""
这是多行文本注释
第一行
第二行
第三行
...
"""
  • Python实际上没有多行注释的语法,能够以三引号的方式添加注释,根本原因是因为Python会忽略未分配给变量的字符串文字。 

                

                        

9.输入输出

程序需要和用户进行交互。

  • 用户把信息传递给程序的过程,称为“输入”。
  • 程序把结果展示给用户的过程,称为“输出”。

输入输出的最基本的方法就是控制台,用户可以通过控制台输入一些字符串传递给程序,程序再通过控制台将其运行结果展示给用户。

                

(1)控制台输出

①使用print函数可以将任意类型的变量输出到控制台

a = 2001
print(a)  # 2001

b = 'MIUI'
print(b)  # MIUI

                 

 ②如果想要混合输出不同类型的变量,那么就需要对输出的字符串进行格式化

name = 'MIUI'
print(f'This {name} is a test !')  # This MIUI is a test !

                

③补充

  • 使用f作为前缀的字符串,称为f-string。f 表示 format
  • f-string里面可以使用{ }来内嵌一个其他的变量或表达式。
  • 像格式化打印字符串,很多编程语言都进行了各自的探索

                

(2)控制台输入

 ①使用input函数可以从控制台读取用户输入的数据

num = input('请输入一个整数: ')
print(f'你输入的整数是{num}')

                 

②补充1

  • input的参数相当于一个“提示信息”,也可以没有。
  • input的返回值就是用户输入的内容,是字符串类型。

                 

③input函数的返回值是字符串类型,因此下面代码实际进行的是字符串的拼接操作

a = input('请输入第一个整数: ')  # 10
b = input('请输入第二个整数: ')  # 20
print(f'{a} + {b} = {a + b}')  # 1020

                 

④想要进行算术运算,那么需要在运算前对读取到的值进行类型转换

a = input('请输入第一个整数: ')  # 10
b = input('请输入第二个整数: ')  # 20
a = int(a)
b = int(b)
print(f'{a} + {b} = {a + b}')  # 30

                 

⑤补充2

  • 通过int()的方式可以将一个变量转换成int类型。
  • 类似的,也可以通过float()bool()str()等将变量转换成对应的类型。

                 

                        

运算符

                

10.算数运算符

  • Python中的算数运算符,包括+-*/%**(幂)、//(地板除)

                 

(1)有些编程语言中,/ 整数0也是会抛出异常 , / 浮点数0 会得到无穷大 ; 而Python都认为是除0异常

                 

(2)截断的问题

  • 整数 / 整数 , 如果除不尽,得到的就是小数,不会出现截断的情况
  • 除了Python之外,大部分的编程语言,都是整数 / 整数,结果还是整数

                 

(3)总结

  • 0不能做除数,否则程序会抛异常。
  • 两个整数相除后得到的是一个浮点数。
  • **可以求一个数的整数次幂,也可以求一个数的小数次幂。
  • //是地板除,整数除以整数得到的结果还是整数(舍弃小数部分,向下取整)。

 

                        

                 

 11.关系运算符

  • Python中的关系运算符,包括<<=>>===!=

                                 

(1)判断两个字符串是否相等

  • Python中使用==!=即可判断两个字符串的内容是否相等
a = 'hello'
b = 'hello'
print(a == b)  # True

                 

(2)判断两个浮点数是否相等

①不能直接使用==来判断两个浮点数是否相等,因为浮点数在计算机中的表示并不是精确的

a = 0.1 + 0.2
b = 0.3
print(a)  # 0.30000000000000004
print(b)  # 0.3
print(a == b)  # False

         

②正确的比较方式应该是,判定这两个浮点数的差值是否小于允许的误差范围

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中支持这种连续小于的写法
     

                                 

12.逻辑运算符

(1)Python中的逻辑运算符,包括 and , or ,  not

  • and:并且。两侧操作数均为True,则最终结果为True,否则为False(一假则假)
  • or:或者。两侧操作数均为False,则最终结果为False,否则为True(一真则真)
  • not:逻辑取反。操作数本身为True,则返回False,本身为False,则返回True。

                 

(2)补充

  • 在Python中,a < b and b < c 等价于 a < b < c,这个设定与其他编程语言都不相同。
  • 与其他编程语言类似,Python中也存在短路求值规则:对于and,如果左侧表达式为False,则整体一定为False,因此右侧表达式不再执行;对于or,如果左侧表达式为True,则整体一定为True,因此右侧表达式不再执行。
     

                

                 

13.赋值运算符

  • Python中的赋值运算符,包括 =+=-=*=/=%=**=//=&=|=^=<<=>>=

                 

(1)使用 = 同时对多个变量赋值

①链式赋值是使用=同时对多个变量进行赋值的常见方式

  • 不建议使用,建议一行代码只是包含-一个操作
a = b = 10
print(a)  # 10
print(b)  # 10

                 

 ②Python还支持多元赋值的方式对多个变量进行赋值

a, b = 10, 20
print(a)  # 10
print(b)  # 20

                 

③多元赋值能帮我们解决一些特殊问题,比如完成两个变量的交换

a, b = 10, 20
a, b = b, a
print(a)  # 20
print(b)  # 10

                         

(2)复合运算符

 

  • Python中不支持++ --这样的自增自减操作的!!
  • + + a之所以没有语法报错,是Python解释器把+当成了正号.
  • - - a也是不会报错,把-当成了负号.负负得正,最终的值仍然不变.
  • 但是后置++和后置--都是语法上报错的
  • 使用a += 1已经很方便的完成了自增了,对Python已经够用了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值