从今天开始我将速通Python的一些基础语法!
当未来遇到与Python相关的需求时,可以立刻上手学习进阶内容,为后续的进一步学习做个铺垫。
由于我有其他语言基础,所以很多我觉得相似或相同的知识点不会被记录,本文只是针对自己复习用。
一、Python基础知识:
1.1字面量类型
Python的字面量类型(包含集合)和c/c++、java没有太大区别,只是原本的Map集合改名为了字典Dictionary类型,其本质依然是无序Key-Value集合。
1.2字符串类型
Python的字符串也是用” “和’ ‘表示,不过多了一种三引号””” “””的使用方式,他表示在一对三引号的范围内,均是字符串(可以换行)(因为Python代码不以分号分隔,而是依靠换行分隔),同时他也是一种多行注释。
2.基础Python语句
- 换行:python语句不以分号结尾,而是以每一行作为区分
- 缩进:在C中,代码的缩进只影响代码的可读性和美观,不影响实际使用,而在Python中,代码缩进控制着不同函数相互间的嵌套和归属
- 大括号格式:大括号{}不会独占一行,其内部可以容纳多行语句
3.注释
- 单行注释:#
- 多行注释:””” “””
4.变量
- Python中,变量无类型,但变量存储的数据有类型,可以用type(变量)来查看数据类型。e.g.
name = 123,type = type(name)
- Python中,变量无需提前声明,拿来就能用。
- 变量命名规范不以大小写分割,而是以下划线分割单词。
e.g.student_nickname = "arexc"
5.1类型转换
类似于向下转型,如int(x),float(x),str(x)……,其中str()比较特殊。首先,任何类型都可以通过str()转换成字符串,然后,字符串内必须真的是数字,才可以将字符串转换为数字。
6.运算符
‘/’就是除(9/4=2.25),’//’才是整除;’**’是指数运算符。其余运算符和c/c++无异
7.1字符串拼接 ‘+’
注:字符串不能与非字符串拼接
7.2字符串格式化
- 利用变量占位符,用法示例:
message = "我是%3s,我出生于%4d年,我的零花钱为%4.2f" % name year price
- 通过语法:f”内容{变量}” 的格式来快速格式化,用法示例:
f"我是{name},我出生于{year}年,我的零花钱为{price}"
注:显然,表达式、函数返回值也可以格式化。
8.print()、input()name = input("你是谁")
print(f"{name}")
二、Python基础语句
除了缩进的问题,其他大部分与C语言没什么区别,以下是一些特别的
- if elif else语句(== if… else if… else…),示例:
if 条件1:
...
elif 条件2:
...
else:
... - for循环与C语言完全不同。
for 临时变量 in 待处理数据集:
......
其实是将数据集里的数据一一取出来,赋值给临时变量去执行循环中的代码,取完为止 - range(num1,num2,step),可作为for循环的数据集使用
三、函数
函数的定义:def 函数名(参数):
函数体
return 返回
(注:返回值可有可无,如果没有,Python会返回一个None,None等同于False,其实就是null值)
函数的调用:函数名(参数)
可在函数内部使用global
关键字将局部变量声明为全局变量,遵守局部优先原则。
四、数据容器(集合)
Python的数据容器其实就是集合,有 列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict) 这五类,用起来和Java里区别也不大,我把我觉得特殊的地方一一
列举一下:
4.1 list列表
- list_example = [?,?,[?,1,?]]
- 可以直接用索引取出:list_example[2][1] == 1
- 常用方法:
- 元组一旦定义,就不可修改(相当于 const list)
- tuple_example = (?,?,(?,?,?)) 注:元组只有一个数据时,这个数据后面也要添加逗号,否则不是元组类型
- 常用方法:index()、count()、len(),比较少(因为不可修改)
4.3 str字符串
- 无他,就记一些常用方法即可:
4.4 序列
- 序列:内容连续、有序,可使用下标索引的一类数据容器。显然,列表、元组、字符串,均可以可以视为序列。
- 序列支持切片。
- 切片:从一个序列中,取出一个子序列。
语法:序列[起始下标:结束下标:步长]。表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列:- 起始下标表示从何处开始,可以留空,留空视作从头开始
- 结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾
- 步长表示,依次取元素的间隔
- 步长 1 表示,一个个取元素
- 步长 2 表示,每次跳过 1 个元素取
- 步长 N 表示,每次跳过 N-1 个元素取
- 步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)
4.5 set集合
- set_example = {?,?,{?,?,?}}
- 常用方法:
4.6 dict字典(其实就是map)
- dict_example = {k : v , k : v , k : {k : v , k : v}}
- 常用方法:
- 字典遍历,可以用dict_example.keys(),也可以直接用dict_example,不过临时变量得到的都是key。
5. 数据容器的通用操作及相互转换
注:dict 的 max 和 min 方法比较的是 value,sort 方法排的也是 value,dict在转 list 和tuple 时只会转出key。
五、类
Python中使用class关键字定义类,类要遵循下述格式(模板)。class 类名:
类变量;
def __init__(self, 参数, ... ): # 构造函数
...
def 方法名1(self, 参数, ...): # 方法1
...
def 方法名2(self, 参数, ...): # 方法2
...
在方法的第一个参数中明确地写人表示自身实例的 self 是 Python 的一个特点(this)。
类变量和实例变量:
类体中、所有函数之外:此范围定义的变量,称为类变量(就是静态变量!);
类体中,所有函数内部:以“self.变量名”的方式定义的变量,称为实例变量(就是实例属性!而且不用提前声明!);
类体中,所有函数内部:以“变量名=变量值”的方式定义的变量,称为局部变量。
六、结尾
Python的基础部分就补到这里了,总体而言Python的基础部分不难,和C/C++、Java的一些地方没太大区别,但往后进阶一些肯定是会有非常多独到、精妙、方便但不易学的部分的,未来我也一定会去研究,就继续保持谦虚、保持求知吧!