Python入门
基本语法
Python是面向对象解释型语言
严格区分大小写
严格缩进 无分号; 用换行结束一条语句
每一行都不要太长(超过80个字符),一条语句分多行写时用\结尾
#表示注释
字面量:1,2,1.25,'hello’等 变量:在后面讲
常用关键字
and as assert break class continue def del elif else except exec finally for from global if import in is lambda not or pass print raise return try while with yield
对象
对象就是内存中专门用来存储指定数据的一块区域
Python没有基本类型,数值型、字符串、布尔型、None 全都是对象
对象/变量值的组成
-
id标识:id是唯一的,用来标识对象的唯一性,id( )函数可以查看对象的id,对象创建后id永远不能再改变
-
type类型:标识当前对象的类型 int float str bool等,type( )函数可以查看对象类型,Python是一门强类型语言,对象一旦创建类型不可更改
-
value值:对象存储的具体数据,对象分为可变对象和不可变对象(值是否可变化)
变量
变量是在某一段时间对一个对象的引用,变量是通用的,变量没有类型,变量引用的对象可以改变,声明变量时必须赋值。
Java中变量所分配到的地址是内存空间中一个固定的位置,当我们改变变量值时,对应内存空间中的值也相应改变。在Python中变量存储的机制是完全不一样的,当给一个变量赋值时首先解释器会给这个对象/变量值分配内存空间,然后将变量指向这个对象/变量值的地址,那么当我们改变变量值的时候解释器又会给新的对象分配另一个内存空间,再将变量指向这个新对象的地址,所以和Java相比,在Python中改变的是变量所指向的地址,而内存空间中的对象是固定不变的。
垃圾回收:当一个对象/变量值被变量引用的个数为0时(计数器为0),此对象/变量值就成为了垃圾
变量命名:字母、数字、下划线,第一个字符不能是数字,不能命名为关键字。
命名风格:下划线纯小写式age_of_leo或者大驼峰式AgeOfLeo
is与== is(相同)比较id ==(相等)比较值
常量 Python没有常量,只是约定俗成纯大写式风格变量代表为常量,例:AGE_OF_LEO
数据类型 数值型–(整型 布尔型 浮点型 复数) 字符串 空值
整数:Python中的整数大小没有限制 a=99999999999999999
如果数字过大可以使用下划线作为分隔符 a=999_999_999
2进制整数以0b开头 a=0b010110
16进制0x开头 a=0xA10
浮点数:Python中的浮点数都是float类型 b=1.23
对浮点数运算时可能得到一个不精确的结果 c=0.1+0.2 #结果是0.3000000000004,原因是十进制数转为二进制时会出现偏差(数学上无限,或者计算机存储位数不够精确)
字符串 表示一段文本信息
单引号’hello’ 双引号"hello"
**嵌套 ** “子曰:‘哈哈哈哈’” 或者 ‘子曰:“哈哈哈哈”’ 不能用相同引号嵌套
长字符串用\连接换行,因为单引号和双引号都不能跨行使用
使用三重引号表示一个可以换行并且保留文本内容格式的字符串’‘‘abc’’’ 或"““abc””"
转义符 \ ’ 表示 ’ \ “表示 " \t表示制表符 \n表示换行符 \ \表示反斜杠 \uxxxx表示Unicode编码,例如a=”\u8000"输出为 ‘耀’ 字
字符串拼接,不能和其他类型进行相加拼接,会报错
字符串复制,字符串*n就是把字符串重复n次并返回
四种变量输出方式
#拼串
print('欢迎 '+name+' 光临!')
#多个参数
print('欢迎',name,'光临!')
#占位符
print('欢迎 %s 光临!'%name)
#格式化字符串 前面加一个字母f可以创建一个格式化字符串,可以直接嵌入变量
a,b='hahaha','hohohoho'
print(f'hello{a}{b}')
占位符
%s任意字符 %f浮点数 %d整数
在占位符中间加小数,例如%2.5s表示只取字符串的第2到第5个字符/数值
a='猪八戒' b='hello%s'%'孙悟空' b='hello%s'%a b='hello%s你好%s'%('孙悟空',a)
布尔值 True/False 实际上布尔值也是整型数值
a,b=False,True
print(a,b) #0 1
print(a+1,b+1) #1 2
空值None,表示不存在
b=None
print(b) #None
类型检查
print(type(1)) # <class 'int'>
print(type(1.5)) # <class 'float'>
print(type(True)) # <class 'bool'>
print(type('hello')) # <class 'str'>
print(type(None)) # <class 'NoneType'> 注意None的类型是NoneType
类型转换 类型转换不会改变原变量值,想要改变要用转换类型后的返回值对原变量赋值
# 类型转换四个函数 int() float() str() bool()
# int() 可以用来将其他的对象转换为整型
# 布尔值:True -> 1 False -> 0
# 浮点数:直接取整,省略小数点后的内容
# 字符串:合法的整数字符串,直接转换为对应的数字,
对于字符串型的浮点数或者其他不可转换为整型的对象,会报错
# float() 和 int()基本一致
# str() 可以将对象转换为字符串
# True -> 'True'
# False -> 'False'
# 123 -> '123'
# bool() 可以将对象转换为布尔值,任何对象都可以转换为布尔值
# 规则:对于所有表示空性的对象都会转换为False,其余的转换为True
# 哪些表示的空性:0 、 None 、 ''
算数运算符
# + 加法运算符(如果是两个字符串之间进行加法运算,则会进行拼串操作)
1-True=0
# - 减法运算符
# * 乘法运算符(如果将字符串和数字相乘,则会对字符串进行复制操作,将字符串重复指定次数)
/ 除法运算符,运算时结果总会返回一个浮点类型,就算整除也返回浮点型
// 整除,只会保留计算后的整数位,总会返回一个整型
# ** 幂运算,求一个值的几次幂
**0.5表示2次方根
# % 取模,求两个数相除的余数
赋值运算符 = += -= *= /= **= //= %=
关系运算符 > >= < <= == != is is not
关系运算符连着用
1<2<3相当于 1<2 and 2<3
10<20>15 相当于 10<20 and 20>15
逻辑运算符
Python | Java |
---|---|
not | ! |
and | && |
or | || |
三元运算符/条件运算符
语句1 if 条件表达式 else 语句2 先判断条件表达式,True执行语句1,False执行语句2