python学习(自用)
数据类型
- 基本数据类型:
- 整型(int):用于表示整数,可以是正整数、0或负整数。
- 浮点型(float):用于表示小数,即带有小数点的数字。
- 字符串(str):用于表示文本或字符序列,用单引号或双引号括起来。
- 布尔型(bool):用于表示逻辑值,只有两个取值,True(真)或False(假)。
- 布尔型(bool):用于表示逻辑值,只有两个取值,True(真)或False(假)。
- 复合数据类型:
- 列表(list):一个有序的元素集合,用方括号括起来,元素之间用逗号分隔。
- 元组(tuple):一个有序且不可变的元素集合,用圆括号括起来,元素之间用逗号分隔。
- 集合(set):一个无序且不可重复的元素集合,用花括号括起来,元素之间用逗号分隔。
- 字典(dict):一个键值对的集合,用花括号括起来,键值对之间用逗号分隔,键和值之间用冒号分隔。
运算符
- /和//:在python中,直接用两个int类型去做/,会得到一个double类型。如果想做类似于C语言中的除(即结果依然是int,且无法整除时向下取整),需要用//。
- **:此符号意为指数,a**b得到的是a的b次方。
上面两个运算符的复合赋值语句与其余算数运算符相同。 - python中没有++和--。
其余与C同。
字符串扩展
- 定义字符串时可以用单引号包裹也可以用双引号包裹,甚至可以用三引号包裹(是的就是这个跟注释一模一样)的写法,但最好养成自己的一个习惯,且能不用三引号就别用三引号,
别恶心自己。 - print函数可以接收多种类型的参数,不仅仅是字符串。然而,这些参数最终都将被转换为字符串并输出到控制台。
说到这,其实可以仔细谈谈python的print函数。在python中,当print()函数被调用并传入非字符串类型的参数时,它将这些参数传递给相应的格式化方法(例如%运算符、str.format()方法或f-string),这些方法会根据需要调用参数的__str__()方法来获取其字符串表示形式。不过要注意的是,当我们传入类似于
"My name is %s and I'm %d years old." % (name, age)
这样的参数(用str.format()方法或f-string同理)时,实际上我们已经进行过格式化了,也就是说这个参数已经是一个被格式化过的纯字符串类型,我们实际上是传了一个字符串进去,而当传入一个字符串类型的参数给print()函数时,print()函数通常不会调用格式化方法。
- 字符串格式化:有两种方式:
- 首先是比较通用的且类似于C的,用占位符占位,例如
"My name is %s and I'm %d years old." % (name, age)
,只有单个占位符的话字符串后面的%后可不加括号。常用的占位符有%s、%d、%f。 - 精度控制:%后有n.m,n表示整个字串占多少位,不足的前面填空格补足;m表示小数部分占多少位,不足的后面填0补足。
- 其次是比较快速的:语法就是在字符串的"前写一个f作为标记,在引号中用{}包裹变量。
- 首先是比较通用的且类似于C的,用占位符占位,例如
输入
不过多赘述,只需知道input函数的返回值是字符串,可以通过强制类型转换来获得想要的数据类型。
布尔类型和比较运算符(判断和循环语句的基石)
最近学的东西有点杂,整叉劈了,MySQL中没有==符号,但python中的赋值和判断是和C语言一样的。
- 只谈一个个人感觉很反常的一个东西:布尔值的字面量,也就是True和False,首字母必须大写。
控制结构
python中不像C一样用{}来划定控制结构的作用范围,而是用代码缩进来划分;而且python中会在控制语句的后面加:。
if、elif、else
- 如同小标题所展示的,python中控制语句和C不同的就在于其将else if写为了elif。
循环控制
while
- 基本语法:
while 循环条件:
代码块
for
- 基本语法:
for 临时变量 in 数据集:
代码块
- python中的for循环和C语言差别很大:在C语言中,for循环的控制语句的基本形式是for (初始化;循环条件;每次循环后执行的动作) {代码块},这种形式实际上和while循环是十分相似的,只是多了初始化和每次循环后固定执行的动作,for循环实际上可以完全等价地转化为while循环。然而在python中,for循环是一种轮询机制,是对一批内容(也就是数据集)进行逐个处理,可以理解为逐个处理待办事项,在第i次循环中,for循环的行为是将数据集中的第i个数据赋给临时变量,然后执行代码块中的内容,执行完毕后进行第i + 1次循环,直到i大于数据集的大小为止。
- 数据集:在Python中,for循环可以遍历任何可迭代的对象。以下是一些常见的可迭代对象类型:
- 列表(List):由一组有序的元素组成,可以使用索引访问每个元素。
- 元组(Tuple):与列表类似,但不可变,即无法修改元组中的元素。
- 字典(Dictionary):由键值对组成,可以使用键访问每个元素。
- 字符串(String):由一组字符组成,可以使用索引访问每个字符。
- 集合(Set):由一组无序的、不重复的元素组成,无法使用索引访问元素。
- 文件对象(File Object):可以遍历文件的每一行或每个字符。
- 生成器(Generator):可以使用for循环遍历生成器产生的每个元素。
- 范围(Range):可以使用for循环遍历指定范围内的整数。
- 除了以上这些类型,任何实现了迭代器(Iterator)接口的对象都可以使用for循环进行遍历。迭代器接口定义了__iter__()和__next__()方法,用于返回迭代器对象和获取下一个元素。
- range:range并不是一个数据类型,可以通过range函数来得到一个range对象,range对象表示一个整数序列,下面是range函数的用法:
range(num)#表示得到一个从0到num、步长为1的整数序列。
range(num1, num2)#表示得到一个从num1到num2(不包含num2)、步长为1的整数序列。
range(num1, num2, step)#表示得到一个从num1到num2(不包含num2)、步长为step的整数序列。
- 在规范上,for循环中的临时变量是不能在外部访问的,但实际上从外部是能够访问到这个临时变量的,但是如果真的需要访问的话最好还是将变量在for循环前定义一下。
函数
- 基本语法:
def 函数名 (传入参数):
函数体
return 返回值
结束语
Python的入门学习就到这里,哥们要去学习JS啦哈哈哈,对于python模块和库的学习毕竟不能放在这个大锅里,边用边学吧。