一,基础语法
最基本的语法,每种编程语言都会有的,属于编程语言能成为一门语言的基础构成
1.1,行结构
通常情况下,一句语句写作一行,如
print(123)
但有的也是可以写作多行的,如复合语句,像if...else...,就跨越了多行
a = 4
if a<3:
print(True)
else:
print(False)
当然有的熟练的老手也喜欢把它给写成一行
a = 4
print(True) if a<3 else print(False)
1.2,缩进
(1)缩进的意思就是在每一行代码前留的空白,空白的长度代表代码的逻辑等级,相同的表示平级,越长的代表越低,所以在看一个代码段的时候,就是通过缩进来判断这段代码逻辑
a = 4
if a < 3:
print(True)
print(789)
如在上述代码中,即通过缩进的长短,即可判断出,print(True) 是if a < 3:的下一层级
(2)在IDE中写程序,在回车时,一般会帮你自己缩进,一般占4个空格,一般直接按Tab键即可
1.3,注释
简单解释就是,这个是给人看的不是给机器执行的。python里面的注释方法:
- 单行注释:以#开头
- 多行注释:每行用一个#开头,或直接用三引号将注释内容包起来
print(1234)
# 单行注释
'''
多行注释
单引号,多引号都可以
'''
1.4,拼接
一般在一条语句太长,从代码的可读性考虑,需要将代码换行时,受限于行规则,所以要进行拼接。分为两种:
- 显式行拼接:用 \ 来进行换行
a = 1 + 2 + 4
#显式行拼接如下
a = 1 + \
2 + \
4
- 隐式行拼接:只针对圆括号、方括号及花括号里面的内容换行,可直接进行换行
a = ['1' , '2' , '3' , '4' , '5', '6']
#隐式行拼接如下
a = ['1' , '2' ,
'3' , '4' , '5',
'6']
1.5,变量
1.5.1,定义及作用
变量,就是可以变化的量,就如同我们人类在说话过程中常用‘这件事’‘这个人’来代替某个具体的事物,但又会随着场景的变化,指代的具体事物又能发生变化,也可以说是在数学里面的x、y等未知数。
变量的作用就是帮助编程语言更好的去描述一个逻辑,或者用来代替某个场景里面的某个具体事物。
1.5.2,内部逻辑
变量是需要先定义再使用的,在计算机层面,这个定义的过程就是在申请内存空间去存放一个变量值,然后将变量值的内存地址绑定给变量名;
之后去使用这个变量的时候,就相当于从这个变量名所绑定的内存地址去找到此处内存里存放的值,再用这个值参与到场景使用中去
1.5.3,组成
(1)变量名:可直接引用的名字,如下代码中的a;也如2,内部逻辑所说的通过它来指向值所在内存地址
(2)等于号:赋值符号,用来将变量的内存地址绑定给变量名
(3)值:对应内存地址存放的数据,如下代码中的4
a = 4
扩展问题
1, 在下面的代码中,b的输出是多少?
a = 4
b = a
print(b)
4
解释:意思相当于是b指向值的内存地址是a指向的地址,也就是4
2,在下面的代码中,a的输出是多少?
a = 4
a = 40
print(a)
40
解释:在定义a =40后,原指向4的关联关系失效,此内存空间释放,重新开辟内存空间,存放40,并建立和a的关联关系
1.5.4,变量名命名规范以及标识符
在python里面对变量名命名需要遵循一定的规范,另外还有很多预先定义好的函数及关键字等,在定义变量名的时候要注意避开这些名字,同样需要避开的还有函数、类、模块等名称的定义,为了方便,我们给这类名称起了个名字叫标识符
标识符:用于变量、函数、类、模块等的名称
命名规范:
- 变量名只能包括字母、数字和下划线;变量名不能以数字开头
- 变量名不能包括空格,可以使用下划线来分隔多个单词
- 不能使用 Python 的关键字及内置函数名作变量名,常见的可以去进行百度
- 变量名要尽量简短及具描述性,尽量做到短小精悍,见名知义
- Python 中变量名是区分大小写的,例如,Name 和name 是两个不同的变量名
- 可参考:驼峰命名法,大驼峰MyName,小驼峰myName
1.6,常量
就是不变化的量,如π,在python里面比较弱化,没有单独定义常量的方式,和变量使用方式完全一致
1.7 函数使用方法:
一般一个函数的使用,主要需要注意的就是需要传入的值以及传入后会返回什么
- 需要传入的值:一般看函数的定义中,括号里面有哪些形参,有必传的,有可以不传有预设值的。在IDE中,将鼠标悬停函数名的上方,或者按住ctrl点击函数名可看到具体定义,一般能看到
- 传入后会返回什么:就是在传入对应实参后,函数执行,会返回什么,有可能会返回一个类型,有可能或返回一个具体的值,具体看函数定义
1.8 输入和输出
1.8.1 输出:print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
- 作用:按sep、end、file、flush参数定义格式输出*objects
- objects:输出的对象,输出多个对象时,需要用 , 分隔,对
象会被转成字符串再输出 - sep:输出的对象用什么间隔开来,默认值是一个空格
- end:输出最后用什么结尾,默认值是换行符 \n
- file:要写入的文件对象,默认为sys.stdout,指向控制台
- flush:通常输出是否被缓存决定于 flush ,如果 flush 参数为 True,流会被强制刷新
1.8.2 输入:input([prompt])
- 中括号表示参数可不传
- 作用:函数接受一个标准输入数据,返回为 string 类型
name = input("请输入你的姓名:")
print(name, "您好,很高兴认识你!")
终端输入
鸡哥
终端输出
鸡哥,您好,很高兴认识你!
二,标准数据类型(只包括数字、字符串的基础)
2.1,整体理解
可以理解为存储信息的方式,比较容易理解的,‘小明有4个苹果’,如果想存储这句话,可以分解成‘小明有’、‘4’、‘个苹果’三部分,其中‘4’就是数字类型,‘小明有’、‘个苹果’就是字符串类型。
但在程序运算中,往往还涉及到了大量的数据的计算,可能是单纯的大量的数字,可能是单纯的大量的字符串,还可能是它俩的无序或有序的结合等等,为了提升存储效率以及方便计算,所以还出现了其他的数据类型。
2.2,数字(Number)
2.2.1,特点
- 不可变
- 不是序列
2.2.2,整数(int)
- 和数学含义一样,没有小数点的数,如-9999,0,9999等
- 数字越多需要的内存越大
2.2.3,浮点数(float)
- 带一个小数点,如1.23
- 科学计数法,带科学计数标志e或E,如2e3,2E3(代表2*10^3)
2.2.4,布尔型(bool)
- True和Flase,值是1和0,可以和数字相加
2.2.5,复数(complex)
- 虚部+实部,和数学中类似,不过虚部用j或J,如2 + 3j
- j前面的系数不能省略
2.2.6,相关内置函数介绍
(1)type(object)
- 作用:返回传入对象的类型
a = 4
print(type(a))
输出
<class 'int'>
(2)int([x], base=10)
- 作用:将传入的base进制的x转换成十进制整数,然后返回;不传返回0
a = int(3.99)
b = int("0b101010", base=2)
print(a, b)
输出
3 42
(3)float([x])
- 作用:将 x 转换成浮点数并返回,不传入参数,则返回 0.0
a = 123
b = "123"
a1 = float(a)
b1 = float(b)
print(a1,b1)
输出
123.0 123.0
(4)bool([x])
- 作用:将给定参数转换为布尔类型,True 或 False,没传返False
print(bool(None))
print(bool(1))
输出
False
True
(5)complex([real[, imag]])
- 作用:创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数,没传返0j
print(complex(3.2, 1))
print(complex(3.2))
输出
3.2+1j
3.2+0j
2.3,字符串(String)
2.3.1 特点
- 不可变
- 是序列
2.3.2 字符串定义
用一对单引号或一对双引号定义
a = '好好好,这么玩是吧'
b = "good good good, this play it is"
2.3.4 相关内置函数:str(object='')
- 作用:返回 object 的字符串格式,不传返回空字符串
print(str(123456))
输出字符串类型的123456
2.3.5 转义
(1)引号用来定义字符串,那么如何输出引号
# 利用转义字符, \后面的引号会被认定为字符串输出
print("\"\"")
# 利用单引号, 外面的单引号代表定义字符串, 里面的双引号是字符串的内容
print('""')
(2)转义字符
用\转义字符,如\代表反斜杠,\n代表换行,\t代表横向制表符
(3)Raw字符串
直接在字符串前面输入r,表示所有转义都不进行
print(r"www.baidu.com\n")
print('-----')
print("www.baidu.com\n")
输出
www.baidu.com\n
-----
www.baidu.com