前端学习:python基础-1
False、True、None
1、模块
一个文件为一个模块,跨文件访问需要导入语句的形式
eg:
import <模块名>
form <模块名> import <代码元素>
form <模块名> import <代码元素> as <代码元素别名>
与前端差异:
import <模块>/{ 模块中变量 } form <路径>
imprt <模块> as <模块别名> / { 模块中变量 as 模块中变量别名 } form <路径>
2、数据类型
Python中有6种主要的内置数据类型:数字(int)、字符串(str)、列表([])、元组(())、集合和字典
Python种有4种数字类型:整数类型(int)、浮点类型(float)、复数类型(complex)和布尔类型(True和False)
与前端差异
js五种基本数据类型:string(字符串)、number(数字)、boolean(布尔值)、null、undefined
引用数据类型:object(包含Arrray、Function等)
还有新增的数据类型: symbol、bigInt
3、数字转换
隐式类型转换:True === 1;False === 0
eg:
1.0 + 1 + True = 3.0
1.0 + 1 + False = 2.0
显式类型转换:
都有自己的转换函数
整数转换函数:int()
eg: int(True) === 1 ; int(False) === 0 ; int(1.0) === 1 ; int(0.6) === 0 (截掉小数部分)
浮点数转换函数:float()
eg: float(False) === 0.0 ; float(True) === 1.0
bool转换函数:bool()
eg: bool(0.0 或 0) === False ; float(非0) === True
bool()函数可以将None、0、0.0、0j(复数)、''(空字符串)、[](空列表)、()(空元组)、{}(空字典)转换成False
4、运算符
算数运算符:+(加)、-(减)、*(乘)、/(除)、%(取余)、**(幂次方)、
//:(地板除法)求小于a与b的商的最大整数
eg: 3//2 = 1 (1.5的最大整数) ; -3/2 = -2 (-1.5的最大整数)
比较运算符:==(等于,等同于===)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)
逻辑运算符:
not: 非
eg: not False === True
and: 与
eg: False and True === False
or: 或
eg: False or True === True
与前端的区别:
表达不同(意义相同):not === ! ; and === && ; or === || ;
位运算符(先记第一个,其他的暂时不用学):
~:位反,将x的值按位取反
eg: ~a = (a + 1) * -1
&:位与,x & y, 将x与y按位进行位与运算
|:位或,x | y, 将x与y按位进行位或运算
^ :位异或,x ^y, 将x与y按位进行位异或运算
>>:右移,x >> y,将x右移a位, 高位采用符号位补位
<<:左移,x << y,将左移a位, 低位采用0补位
赋值运算符:
+=:加赋值。 a+=b => a = a + b
-=:减赋值。 a-=b => a = a - b
*=:乘赋值。 a*=b => a = a * b
/=:除赋值。 a/=b => a = a / b
%=:取余赋值。 a%=b => a = a % b
**=:幂赋值。 a**=b => a = a ** b
其余还有位运算符的赋值
运算符优先级(从上向下):
(): 小括号
** : 幂
~ :位反
+、- :正负号
*、/、%、//:乘、除、取余、地板除
+、-:加、减
<<、>> : 位移
&:位与
^:位异或
|:位或
<、<=、>、>=、<>、!=、== :比较
not : 逻辑非
and、or: 逻辑与、逻辑或
5、if 结构:
缩进(在Python编程规范中推荐使用4个半角空格)
if 判断条件: 或者 if 判断条件: 或者 if 判断条件:
执行内容 执行内容 执行内容
else: elif 判断条件
执行内容 执行内容
else:
执行内容
与前端的区别:
前端为:
if (判断条件) { 或者 if (判断条件) { 或者 if(判断条件){
} } else { } else if (判断条件) {
} }
循环:
while语句: 或者 for 变量 in 可迭代对象: 例如: for item in 'HELLO': 又例如: for element in [1, 2, 3, 4]:
while 循环条件: 循环体语句组 => print(item) ==> print(element)
循环体语句组 else:
else: 语句组
语句组
跳转语句:
break:跳出循环
continue:跳出本次循环, 进行下次循环
6、序列:
索引: 与前端概念相同
不同:a = 'hello'; a[5]索引超出长度,python报错,js为undefined
加和乘(js字符串不可以用乘):
'hello' + 'world' == 'helloworld' 与前端相同
'hello' * 2 == 'hellohello' 等价于前端 'hello'.repeat(2)
切片操作:
切片运算符的语法形式为: [start, end, step]
注意,切下的小切片包括start位置的元素,但不包括end位置的元素, start和end都可以省略
start是开始的索引,end是结束的索引,step是步长(切片时获取的元素的间隔,可以为正整数,也可以为负整数)
步长暂时理解为,先切,再从start(包含)开始间隔step后取值,在取值(包含)开始再间隔step...
eg:
text = 'HELLO' or text = '0123456789'
print(text[2:4]) => "LL" print(text[::2]) => '02468'
print(text[:]) => 'HELLO' print(text[::3]) => '0369'
省略开始索引 = 默认开始索引为0; 省略结束索引 = 默认结束索引为序列的长度;可以使用负索引
成员测试:
成员测试运算符有两个: in 和 not in; 分别用于测试是否包含/不包含某个元素;
7、列表:
列表(list) : 是一种可变序列类型,我们可以追加、插入、删除、和替换列表中的元素。
list('hello') => ['h', 'e', 'l', 'l', 'o']
type([]) => <class 'list'>ty
通过list函数创建列表对象,字符串是序列对象,创建的列表对象包含5个字符
与前端差异:
eg: new Array('hello') => ['hello']
追加元素:
1、在列表中追加单个元素时,可以使用列表的append(x)方法(不能同时追加多个元素)
eg:
list1 = [1,2]
list1.append(3)
print(list1) => [1, 2, 3]
与前端差异:等价于js的push(3)方法
2、在列表中追加多个元素时,可以使用加(+)运算符或者列表的extend(list2)方法(可以追加多个元素)
eg:
list1 = [1, 2]
list2 = [3, 4]
list1.extend(list2) 或者 list1 = list1 + list2
print(list1) => [1, 2, 3, 4]
与前端差异:等价于前端的concat(array2)方法,当然还可以使用别的方式实现
插入元素:
插入元素,使用列表的.insert(index, x)方法: index表示要插入的索引位置(也可以理解为新元素索引为index),x为要插入的元素
eg:
list1 = [10, 20, 30, 40, 50]
list1.inset(3, 100)
print(list1) => [10, 20, 30, 100, 40, 50]
与前端差异:splice方法,可做增删改
替换元素:
替换元素,直接将列表下标索引元素放在赋值符号(=)的左边即可(就是直接赋值)
eg:
list1 = [10, 20, 30]
list1[1] = 100
print(list1) => [10, 100, 30]
删除元素
使用列表的.remove(x)方法:x表示需要删除的元素
eg:
list1 = [10, 20, 20, 30]
list1.remove(20)
print(list1) => [10, 20, 30]
前端使用splice方法
8、元祖
元祖(()): tuple 是一种不可变序列类型
创建元组
1、tuple(): 函数
eg:
tuple([1, 2, 3]) => (1, 2, 3) => 小括号可以省略 1,2,3
tuple('hello') => ('h','e','l','l','l','o') => 小括号可以省略 'h','e','l','l','o' 创建字符串元祖
2、(元素1, 元素2, 元素3, 元素4, 元素5)
eg:
(1,2,3)
() 可以通过tuple函数或者()创建空元祖
(1,) 或者 1, => 创建一个只有一个元素的云组,元素后面的逗号不能省略
P40