python 人生苦短,我学Python(二)

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 … 遍历最好。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xupengboo

你的鼓励将是我创作最大的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值