目录
python
介绍
概念
优缺点
应用场景
基本语法
语句之间
每个语句之间可以用 ; 隔开,也可以不加
- 一般情况是不用加的
- 但如果把多个语句写在同一行,一定要用;隔开
创建变量
变量用于保存计算过程中的中间结果
- 和其他语言不同,变量不需要设置类型,由初始化值的类型来决定
- 当然,也可以声明类型,这样可读性更好,格式 -- 变量名:变量类型 = 初始值
使用同一个变量名,可以创建出一个新变量,也可以对[已经创建出的变量]重新赋值
动态类型
介绍
在python中,变量的类型可以在程序运行过程中发生变化
- 可以通过赋不同类型的值,来改变变量的类型
但这种特性和它[定义变量时可以不声明类型]的特性无关
- 因为python也是可以显式声明类型的,即使加上,也不会影响动态类型的特性
缺点
在多人协作开发的程序中,会增加沟通成本
- 因为不确定需要传入什么类型的变量
一个产品创业之初,可能会使用python进行开发
- 因为比较灵活,可以很快开发出一个雏形
- 但随着规模增大,就需要用其他语言来对使用了python的模块进行重构
静态类型
程序运行过程中,变量的类型始终不变
- 比如c++中的变量
注释
行注释
以#开头
批量注释 -- ctrl /
文档字符串
""" / '''
xxx
""" / '''
- 总之就是用三引号引起来(单引号/双引号形式的三引号都可以)
里面的内容可以被python解释器识别
基本数据结构
通过type()函数,可以拿到传入变量的类型
python中的一个设计哲学 -- 解决一个问题,只提供一种方案
- 所以基本上,一种类型只会有一种表示
int
python中的int可以表示的范围是无穷的
- 默认大小是4个字节,但它会根据当前要表示的数据大小自动扩容
所以在python中,表示整数统一使用int
- 其他语言中的各种类型都不存在
- 比如short,long...
float
python中的float就是双精度浮点数
- 等同于其他语言中的double,都占用8个字节
- 所以,python中浮点数的表示统一使用float类型
字符串
类型
用string的缩写str作为字符串的类型
表示
通过单引号/双引号将一系列字符引起来
- 因为python没有字符类型,所以' '和" "都可以用来表示字符串
如果想让字符串内部本身含有单引号/双引号,就用对应的另一种方式来表示字符串
- 比如 "i am 'king' "
如果字符串内容同时含有单引号和双引号,可以使用三引号表示 '''
len(字符串)
返回字符串长度
split()
使用split(分隔符,最大分割次数)方法
分隔符
- 可以将字符串以指定分隔符进行切分
- 如果不传入分隔符,默认以空白字符作为分隔符 -- 空格、换行、制表符等
最大分割次数
- 分割的次数达到maxsplit后,剩余部分将作为最后一个元素
- 默认是-1,表示没有限制
以列表结构返回
startwith()
使用startwith(子串)方法,可以判断[传入的子串]是否是[调用该方法的字符串]的前缀
- 一个字符串的前缀 -- 出现在字符串开头的子字符串
- 子字符串 -- 一个字符串中的连续一段字符序列
join()
使用join(列表)方法,将列表中的内容进行合并
- 返回一个字符串
bool类型
取值有True , False
- 注意这里是大写!
输入/输出
介绍
这里介绍的是通过控制台交互的函数
控制台操作 -- 人机交互的最基础的方式
- 本身是机械上的概念 -- 机械的操作面板叫做操作台,台面上会有按钮,开关,操作杆
- 在计算机中是通过键盘,鼠标来控制,把操作结果显示到显示器上
输入
input(字符串)
- 字符串用于在输入前打印出一些格式化语句
- 返回值是字符串类型 -- 返回用户输入的数据
会像c中的scanf一样,阻塞等待至用户输入内容
如果需要使用这个数据,可以进行类型转换
- 比如int(),str(),float()...
输出
print()
- 可以打印出变量值/函数返回值
- 其中,end是print()函数的一个参数,用于控制输出后添加的内容(默认是'\n')
print("hello", end='')
如果想要格式化显示(数字和字符串混起来打印)
- 需要使用格式化字符串 -- f-string (3.6版本提供)
- f -- format
- f "xxx{ 想要嵌入在字符串中的变量/表达式 }xxx"
也可以打印多个变量
- 变量之间用,相隔
- 输出时会自动添加空格作为分隔符
运算
4种基本运算(+ - * /)
在python的整数运算中:
- 当整数/整数时会出现小数时,并不会像c++一样直接舍弃小数,而是保存小数位
- 又因为小数在计算机内存中是以浮点数形式存在的,它有专门的规则 -- IEEE754标准,所以存放小数时可能会出现微小误差
python允许字符串使用+进行拼接
乘方运算
**
- 既可以乘方,也可以开方
- **2 =^2
- ** (1/2) = 开根号2
地板除法
//
- 也就是向数轴的下方取整
- 类似于c++里的除法
复合运算
允许复合运算符,也就是将算术运算符和赋值符号相结合
- *= **= //= ...
自增运算
python中不允许自增操作
- 虽然不允许,但使用前置++不会报错 -- 前置++/-- 会被认为是正号/负号,操作后结果不变
- 使用后置++/--是会报错的
关系运算符
可以通过关系运算符直接比较字符串
- 字符串的比较按照字典序比较
- 其中,基于中文的比较是没有意义的 -- 因为中文字符在计算机中是用多个字节来表示的一个大数字,它的比较在字典序上是没有意义的
并且,在python中判断字符串是否相等时,是可以直接用== 和 !=的
- 但在c++中不可以,只能通过调用函数接口来实现,如果直接使用运算符,比较的是字符串中首元素的地址大小
对于浮点数,直接使用运算符比较大小存在风险
- 因为浮点数存储本身就存在误差,如果进行运算,会进一步放大误差
- 比如 0.1+0.2 是否等于 0.3 ?
- 通过图可以看出来,直接的比较是不行的,一点点误差都会被认为是不相等
所以,我们可以作差,比较差值是否在误差范围内
- 如果a-b在(-0.000001,0.000001)之间,就认为这两个数是相等的
- 注意,这种连续比较的写法只在python中支持,c++中两个条件的比较需要使用&&来连接
逻辑运算符
与或非的写法是 -- and or not
- 和mysql中的逻辑运算符相同
- 在c++中是&& || !
赋值
连续赋值
允许连续赋值
- a=b=10
多元赋值
允许在一行内为多个变量赋值
- a,b=10,20 等价于 a=10,b=20
可以实现特殊功能
- 比如交换变量中的值 -- a,b=b,a