python 人生苦短,我学Python(二)
文章目录1.1.所谓的类型转换,就是将一个类型的对象转化为其他类型的对象。2.类型转换不是改变对象本身的类型,而是将对象的值转换为新的对象。或者可以说是根据当前对象的值创建一个新对象。
文章目录
1. 类型转换
1.1 不要误解 类型转换
所谓的类型转换,就是将一个类型的对象转化为其他类型的对象。
类型转换不是改变对象本身的类型,而是将对象的值转换为新的对象。或者可以说是根据当前对象的值创建一个新对象。
1.2 int() float() str() bool()
需要注意的是以上转换的函数,不会对原来的变量产生影响。
当然也不是随便就转换的,像一些字符串,None值等等就没办法转换为整数。
例如:带小数点的数字,类型为字符串,就没法转换为整型。
a = "123.111"
b = int(a); //这里就会报错ValueError
bool()转换需要注意下面内容:
整型和字符串型转换其他如下:
2. 算术运算符
最基本的加减乘除,容易忘记的有整除,幂运算,取余。
在对浮点数做算术运算时,结果也会返回一个浮点数。
3. 赋值运算符
4. 关系运算符
4.1 关系运算符
需要注意,这里我们的相等(==)和不等(!=)比较的不是id,而是对象的值。
想要比较id的话,使用 is 和 is not 来比较是否是同一个对象,比较的是对象的id。例如:
a = 1;
b = a is True;
print(b);
print("打印他们的id比较:")
print(id(a),id(True));
4.2 字符串比较
在Python中可以对字符串进行比较,但比较的时unicode编码。
利用上面的特性,可以对字符串按照字母顺序进行排序,但是对于中文来说意义不是特别大。
如果我们不希望i比较两个字符串的Unicode编码,则需要将其转换为数字然后再比较。就像下面这种形式。
a = '2';
b = '11';
print(int(a) > int(b));
5. 逻辑运算符
需要注意,逻辑运算符对于非布尔值的内容,它先会转换为布尔(bool(xxx)),然后取反。这里非布尔值类型转换为布尔值类型,什么None,空字符串,0这些空性为false,其他为true。
上面最注意的是当我们对非布尔值进行与或运算时,Python会将其当作布尔值运算, 最终返回原值 ,并不是返回True或False。
提示一下:
在python中是没有&&及||这两个运算符的,取而代之的是英文and和or。其他运算符没有变动。
6. 条件运算符(三元运算符)
Python中的三元运算符格式如下:
语句1 if 条件表达式 else 语句2
7. 运算符优先级
和数学一样,在Python运算也有优先级,先乘除,后加减。
其实在开发过程中,根本没必要死记这些优先级,我们完全可以用小括号来改变运行效果。例如:
a = (1 or 2) and 3;
print(a); //and优先级比or要高,但是因为括号优先级比他们两个高,所以先计算括号内部的。
逻辑运算符可以连着使用。例如:
a = 10 < 20 > 15; //它就相当于 10 < 20 and 20 > 15 。
print(a);
8. 流程控制语句
8.1 条件判断语句(if语句)
语法:
if 条件表达式 :语句1
表达式为True执行语句,为False跳过。
上面的语句1内容,通常配合代码块使用。需要注意的是:代码块以缩进开始。
if True :
print("你猜得出来我是干什么的吗");
print("abc");
print("123");
缩进有两种方式,一种是tab键,一种是4个空格,一定要统一,不能混合使用,混合使用就会报错。平时操作学习用tab键来操作就可以了。
其实这里也是可以定义修改的将tab修改为空格,视情况而定,不同公司应用方式不同。
8.2 命令行输入 input()函数
在命令行中输入信息,我们可以使用input函数来操作。
对于input需要注意的是:
input()返回值是一个字符串。
input也可以用于暂时组织程序结束的效果。
因为input的返回值是一个字符串形式,所以通常我们要做类型转换的一些操作。如下
age = int(input('请输入你的年龄:'));
# 这里直接将age转为int型,就可以直接和下面的 >= 做判断了。
if age >= 18 :
print('你已经成年了~~~');
8.3 if -else 语句
8.4 if-elif-else 语句
对于if-elif-else语句只有一个代码块会被执行。
9. 循环语句
9.1 while 循环语句
语法:
while 条件表达式 :
代码块1;
else:
代码块2;
水仙花数的案例:
标准答案:(最好熟知!)
i = 100;
while i < 1000:
# 这就是一个水仙花数的案例,非常简单。
a = i // 100;
b = (i - a*100) // 10;
c = i % 10;
# print(i,a,b,c);
if a**3 + b**3 + c**3 == i :
print("水仙花数:",i);
i += 1;
9.2 break 和 continue (循环语句)
break可以用来立即退出循环语句(包括else)。
continue可以用来跳过当次循环。
break和continue只会对离他最近的循环起作用!
pass是用来在判断或循环语句中占位的,主要是还没考虑好些什么代码,可以用它替代执行。
time模块,来统计时间。time()函数可以用来获取当前事件,返回的单位是秒。如下:
from time import *
time(); # 返回时间是秒!
begin = time();
...
end = time();
print("程序执行花费了:",end-begin,"秒");
我们来计算一个程序代码执行的顺序就可以通过time()函数来测量即可。时间性能,算法优化,这是最根本的。
10. list 列表
10.1 列表 简介
Python中没有数组的数据结构,但它有列表,而且列表很像数组。
列表的常用事项:
1. 使用 [ ] 来创建列表。
2. 列表存储的数据,我们称为元素。
3. len()函数:获取该列表的长度。
此外,列表获取索引值的索引可以是负数,它是从后向前获取元素,-1表示倒数第一个,-2表示倒数第二个。
10.2 切片
通过切片来获取指定的元素:
语法:列表[起始:结束]
切片注意事项:
1. 切片获取的元素,会包括起始位置的元素,不会包括结束位置的元素。
2. 切片操作后,它返回一个新的列表,不会影响原来的列表。
3. 起始和结束位置的索引可以省略不写,默认会执行到最后。
对于切片还有一个步长:
语法:列表[起始:结束:步长]
切片的步长,步长表示每次获取元素的间隔,默认值为1。意思就是默认是隔一个取一个,定义几个隔几个。
注意:这里步长不能是零,但可以是负数,负数就是从列表的后部开始向前取。
10.3 列表常用方法和函数
10.3.1 常用函数
拼接列表(+),重复列表(*)
in 和 not in 判断元素是否存在列表中,它们返回的是True 或者 Flase。
len()获取列表中的个数。
min()获取列表中最小值。
max()获取列表中的最大值。
list.count()统计指定元素在列表中出现的次数。
10.3.2 index()函数用法
index()获取指定元素在列表中的位置。注意如果列表中有重复的,则获取第一次出现的索引。index还有第二个参数,表示查找的起始位置,第三个参数表示查找的结束位置。
11. 序列
上面所有关于列表的常用操作,方法函数切片,对序列也是可以操作的!!
需要注意的是:
可变序列(序列中的元素可以改变):例如:列表(list),字典(dict)。
不可变序列(序列中的元素不能改变):例如 字符串(str)元组(tuple)。
12. 可变序列 - 列表(list)
修改列表元素,直接通过索引来修改元素。
通过del来删除元素。
还可以通过切片来修改列表。一定注意:
1. 在给切片进行赋值时,必须传递一个序列(只能使用序列)。
2. 因为字符串也是一个序列(不可变序列,上面有记载),所以可以用字符串来给它可以直接赋值。数值不可以直接赋值!
3. 当设置了步长时,序列中元素的个数必须和切片中元素的个数一致。这个意思就是每个空隙之间,必须能嵌套下。
4. 还可以通过切片来删除元素。通过使用del操作。
5. 也可以向切片设置为空,来删除,也是可以的。
6. 以上这些操作,只适用于可变序列。
不可变序列,无法通过索引来修改!!!那怎么操作呢??
解决:可以通过list()函数,将其他的序列转换为list,再操作就可以了。
13. 列表方法
13.1 append() 方法
在平时我们给列表后面添加一个元素,不能通过索引来直接赋值,索引值直接命名会导致列表超出范围。我们可以使用append()方法来操作。
append()作用就是向列表最后添加一个元素。
13.2 insert() 方法
insert(i,x)方法:向列表的指定位置插入一个元素。
第一个,i参数要插入的位置;第二个,x参数要插入的元素。
13.3 extend() 方法
extend()使用新的序列来扩展当前序列。需要一个序列作为参数,它会将该序列中的元素添加到当前列表中。
13.4 clear() 方法
作用就是清空序列,全部清空。
13.5 pop() 方法
pop()方法:根据索引删除并返回指定元素。如果不写索引参数,那么默认删除最后一个元素。
13.6 remove() 方法
pop是根据索引删除元素,而remove根据元素值删除的。
remove(),删除指定值的元素,如果相同值的元素有多个,只会删除第一个元素。
13.7 reverse() 方法
reverse()方法用来反转列表。
13.8 sort() 方法
用来对列表中的元素进行排序,默认是升序排列。降序排列需要有一个reverse = True参数来进行排列。
14. 遍历列表
最常用的遍历还是for… in … 遍历最好。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)