Python七天快速入门——第三天
Python七天快速入门——第四天 上
Python七天快速入门——第四天 下
Python七天快速入门——第五天
Python七天快速入门——第六天
Python七天快速入门——第七天
本教程直接从语言特性入手,旨在让没有编程基础的小白或者其他语言领域大佬快速上手Python,本文只介绍最基础内容,深入使用Python不在本教程范围😉
第二天
一、FOR循环操作
1.1 使用循环遍历列表
遍历列表所有元素时,我们往往会用到循环操作,常用的循环方式就是FOR循环,下面直接上示例:
student = ["ZhangSan", "LiSi", "WangErmazi"] for student_name in student: print(student_name)
输出结果如下:
Python的FOR循环尽可以使用“读”的方法进行理解包括Java,以下循环语:for student_name in student:
其实完全可以理解为在列表student中依次寻找一个元素赋值给student_name。
这里需要注意for指令后的“:”,冒号后的操作需要空一个制表位才能指明下面的操作是FOR循环囊括的。
为了更好的阐述以上内容,我们需要关注以下两种代码:
两种代码仅仅因为制表位的不同,会得出不同的输出结果:
第一种代码FOR循环指令冒号下方紧邻的Tab位,所以循环执行的语句只有print(student_name)
而第二种代码则相反,冒号后方紧挨着的Tab位有两行,所以执行的语句执行以下两行
print(student_name) print(student)
1.2 FOR循环缩进Tab位的重要性
根据以上示例,Python 根据缩进来判断代码行与前一个代码行的缩进关系。Python 通过使用缩进让代码更易读,使用缩进让代码整洁而结构清晰。
读者应该养成细致检查FOR循环缩进的良好习惯丢失缩进和多余缩进会造成程序的异常,甚至造成难以想象的问题。
1.3 FOR循环与range()
1.3.1 range() 函数用法
为了接下来对FOR阐述,这里首先说明函数 range()的应用。
range()的语法格式为range(start, stop [,step] )
- start 指的是计数起始值,默认是 0;
- stop指的是计数结束值,但不包括 stop ;
- step是步长,默认为 1,不可以为 0 。
需要注意的是range()输出的范围:
s t a r t ≤ r a n g e ( s t a r t , s t o p [ , s t e p ] ) < s t o p start \leq range(start, stop [,step] )<stop start≤range(start,stop[,step])<stop
应用示例如下(使用list()可以创建列表):- 示例一:
student_num = range(10) print(list(student_num))
输出结果如下
- 示例二:
student_num = range(4,10) print(list(student_num))
输出结果如下:
- 示例三:
student_num = range(1,13,2) print(list(student_num))
输出结果如下:
1.3.2 常用数学运算函数
这里介绍一般的数学函数(当然,python还包括其他的函数,本文目前不涉及其他扩展函数):
运算函数 | 描述 |
---|---|
x // y | 取商 |
x % y | 取模 |
x // y | x 除以 y,取整除 |
abs(x) | 求x的绝对值 |
comples(x,y) | 创建一个实部为x虚部为y的虚数 |
sum(x) | x是列表,求x的和 |
min(x) | 求列表x中元素的最小值 |
max(x) | 求列表x中元素的最大值 |
1.3.3 FOR循环与range()联合使用
下面介绍两个例子:
- 我们可以使用FOR循环与range()函数顺序输出0~10,如下:
for value in range(11): print(value)
输出结果如下
2. 当然,我们也可以使用FOR循环与range()创建列表:student_num=[] for value in range(11): student_num.append(value) print(student_num)
输出结果如下:
1.4 列表切片
1.4.1 切片基本操作
使用列表时,我们有时候可能需要使用列表的一部分,我们把从列表提取一部分的>操作称为切片。
直接上代码:student_num=[] for value in range(11): student_num.append(value) print(student_num[1:4])
输出结果如下:
在列表中指定初始位置和末尾元素,切片取出的元素是从指定的初始位置开始到指定的末尾元素前一个元素为止。
当然切片的使用方法还有很多:student_num=[] for value in range(11): student_num.append(value) #输出student_num[1]到student_num[3] print(student_num[1:4]) #输出student_num[1]到最后一个元素 print(student_num[1:]) #输出student_num[0]到student_num[3] print(student_num[:4]) #输出student_num列表的最后四个列表 print(student_num[-4:])
输出结果如下:
注意一点,切片常常用来进行列表之间的复制:student = ["ZhangLing","ZhangYi", "ZhangEr", "ZhangSan","ZhangSi","ZhangWu"] student_name=student[:] print(student) print(student_name)
这时的两个列表是两个列表,我们注意区分以下这种形式:
student = ["ZhangLing","ZhangYi", "ZhangEr", "ZhangSan","ZhangSi","ZhangWu"] student_name=student print(student) print(student_name)
两种形式尽管输出相同,但是
student_name=student
这种方法是给student创建了一个别名,其实际意义还是同一个列表。
1.4.2 遍历切片
读者可以根据示例熟悉切片的遍历:
student = ["ZhangLing","ZhangYi", "ZhangEr", "ZhangSan","ZhangSi","ZhangWu"] for student_name in student[0:3]: print(student_name)
输出结果如下:
二、元组
首先直接上定义:Python 不可变(不可修改)的列表被称为元组。
元组中所有元素都放在一个小括号 () 中,相邻元素之间用逗号分隔,如>下所示:student = ("ZhangLing","ZhangYi", "ZhangEr", "ZhangSan","ZhangSi","ZhangWu") print(student)
输出结果如下:
当然可以访问元组中的元素:student = ("ZhangLing","ZhangYi", "ZhangEr", "ZhangSan","ZhangSi","ZhangWu") print(student[1])
输出结果:
遍历元组的方式和遍历列表相同:student = ("ZhangLing","ZhangYi", "ZhangEr", "ZhangSan","ZhangSi","ZhangWu") for student_name in student: print(student_name)
输出如下:
元组的操作只有访问操作,如果需要修改元素的话只能重新定义元组。
三、IF语句
3.1 条件测试
IF 语句的核心就是一个值为 True 或 False 的表达式,这种表达式称为条件测试。>
- 字符判断
- 字符的判断一般都是判断相等,例如网上输入用户民或者验证码需要向服务器请求比较是否输入正确。python中使用“==”用来判断相等,示例如下:
student = "ZhangLing" student_copy="ZhangLing" student_copy_copy="zhangling" print(student==student_copy) print(student==student_copy_copy)
输出如下:
python是区分大小写的,所以student=student_copy判断为真,输出True
而 student=student_copy_copy判断为假,所以输出False
当然如果需要忽略小写或者忽略大写可以使用upper()和lower()方法将变量全部调整为大写或者小写,然后再进行比较。
- 字符的判断也可能判断不相等,python中使用“!=”用来判断不相等,示例如下:
student = "ZhangLing" student_copy="ZhangLing" student_copy_copy="zhangling" print(student!=student_copy) print(student!=student_copy_copy)
输出如下:
student != student_copy判断为假,输出False
而 student != student_copy_copy判断为真,所以输出True
- 数值逻辑判断
判断符 | 描述 |
---|---|
>= | 大于等于 |
<= | 小于等于 |
< | 小于 |
> | 大于 |
== | 等于 |
!= | 不等 |
示例代码如下:
print(1>=2) print(1<=2) print(1<2) print(1>2) print(1==2) print(1!=2)
输出如下:
3. 复合条件判断
使用条件测试时,一般需要判断的条件并不是只有一条,所以会使用“and”和“or”两个指令。
要检查是否多个条件都为 “真”,可使用关键字 and 将多个条件测试合为一;
关键字 or 也能够检查多个条件,但只要至少一个条件满足,就能通输出为真,也可以与and类别理解:检查是否多个条件都为 “假”,可使用关键字 and 将多个条件测试合为一。
示例如下:print(1>=2 and 2>1) print(1<=2 and 2<3) print(1>=2 or 2>1) print(1<=2 or 2<3) print(1>=2 or 2<1)
输出如下:
4. 判断元素是否存在列表中
要判断特定的值是否已包含在列表中,可使用关键字 in。
要判断特定的值是否没有包含在列表中,使用关键字 not in。
示例如下:student = ["ZhangSan", "LiSi", "WangErmazi"] print("ZhangSan" in student) print("zhangsan" in student) print("ZhangSan" not in student) print("zhangsan" not in student)
输出如下:
3.2 IF语句的应用
3.2.1 IF语句操作
首先上示例:
student = ["ZhangSan", "LiSi", "WangErmazi"] name="LiSi" if name in student: print("LiSi is a student .")
输出结果如下:
IF语句的缩进与FOR相同,一般的应用格式如下:if conditional_test: do something
当conditional_test为真时,程序会执行冒号后缩进的操作。
3.2.2 IF-ELSE 语句操作
仅仅使用IF语句往往难以满足程序要求,时常会出现这种情况:
一个逻辑量为真时需要执行一种操作,为假时去执行另一种操作,示例如>下:student = ["ZhangSan", "LiSi", "WangErmazi"] name="ZhouWu" if name in student: print("LiSi is a student .") print("ZhouWu is not a student .") else: print("LiSi is not a student .") print("ZhouWu is a student .")
输出如下:
3.2.2 IF-ELIF-ELSE 语句操作
程序执行过程,一个IF或者只有IF-ELSE往往不能满足要求,python中>提供了 IF-ELIF-ELSE语句用来完成多条件的判断,示例如下:
ZhangSan_grade = 100 if ZhangSan_grade<60: print("Zhang San's results failed.") elif ZhangSan_grade<70: print("Zhang San's results are qualified.") elif ZhangSan_grade<90: print("Zhang San's results are good.") else: print("Zhang San's results are excellent.")
输出结果如下:
强调两点:
- IF-ELIF-ELSE语句中,ELSE可以没有,ELIF可以有多个>
- ELSE是一条包罗万象的语句,只要不满足任何 IF 或 ELIF 中的条件测试,其中的代码就会执行。但是使用ELSE可能会导致程序出现恶意状况(例如外部攻击输入恶意数据),因此不建议使用ELSE,编写程序时如果能够明确逻辑条件,应该尽可能使用ELIF,规避使用ELSE的情况。