Python学习笔记:第五站 转圈圈
Python学习笔记
文章目录
- Python学习笔记
- 第五站 转圈圈
- 1. range()函数的使用
- 2. while循环
- 3. for-in循环
- 4. break、continue与else语句
- 5. 嵌套循环
- 6. 本章作业
课程笔记参考B站视频: Python全栈开发教程。
第五站 转圈圈
1. range()函数的使用
内置函数就是前面不需要添加任何前缀,可以直接使用的函数。range()
函数是Python中的内置函数,用于生成一个整数序列,其返回值是一个迭代器对象。range()
函数常用于for循环中遍历的对象。下面是创建range对象的三种方式:
range(stop)
:创建一个[0,stop)之间的整数序列,步长为1。range(start,stop)
:创建一个[start,stop)之间的整数序列,步长为1。range(start,stop,step)
:创建一个[start,stop)之间的整数序列,步长为step。
range类型最大的优点就是不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的。因为仅仅需要存储start,stop和step,只有当用到range对象时,才会去计算序列中的相关元素。
下面是代码示例:
# 演示range()的三种创建方式
print('--------第一种方式,只有一个参数-------')
r1 = range(10) # 默认从0开始
print(r1, type(r1)) # 迭代器对象
print(list(r1)) # list为列表,用于查看range中的整数序列
print('--------第二种方式,有两个参数---------')
r2 = range(1,10) # 于是从0开始
print(list(r2))
print('--------第三种方式,有三个参数---------')
r3 = range(1,10,2)
print(list(r3), end='\t') # end=''表示不换行
print('r3中包括9:', 9 in r3)
# 下面演示一些特殊情况
r4 = range(0,10,-2) # 步长可以为负数
print(list(r4))
r5 = range(0,-10,-2) # 步长可以为负数
print(list(r5))
# r6 = range(0,10,2.5) # 会报错,只能是整数序列
# print(list(r6))
- 运行结果
--------第一种方式,只有一个参数-------
range(0, 10) <class 'range'>
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
--------第二种方式,有两个参数-------
[1, 2, 3, 4, 5, 6, 7, 8, 9]
--------第三种方式,有三个参数-------
[1, 3, 5, 7, 9] r3中包括9: True
[]
[0, -2, -4, -6, -8]
注:in
与 not in
判断整数序列中是否存在(不存在)指定的整数。
2. while循环
反复做同一件事情的情况,称为循环。Python中的循环分为while
、for-in
两大类。也就是说,Python中不存在do-while循环体,进一步可参考 “Python为什么不设计do-while循环结构?”。
下面是使用while的语法结构:
a = 1
while a<10:print(a, end='\t')a+=1
- 运行结果
1 2 3 4 5 6 7 8 9
可以看出在使用过程中,遵循“四步循环法”,即:
初始化变量
条件判断
条件执行体(循环体)
改变变量
下面根据上图所示的四部循环法,展示循环求和的代码:
# 求解0~10之间的累加和
a = 0 # 1.初始化变量
sum = 0 # 存储求和的中间结果
while a<11: # 2.条件判断sum += a # 3.条件执行体a += 1 # 4.一定不要忘了改变循环变量
print('0~10的累加和为:', sum)
- 运行结果
0~10的累加和为: 55
下面是一道课堂练习:
a = sum = 0
while a<101:if not (a%2):sum += aa += 1
print('1~100之间的偶数和为:', sum)
- 运行结果
1~100之间的偶数和为: 2550
3. for-in循环
for-in
循环(简称for循环),其中in
表达从(字符串、序列等)中依次取值,又称为遍历。for-in
遍历的对象必须是可迭代对象。目前学到的可迭代对象,一个是序列,一个是字符串。for-in的语法结构为:
for 自定义的变量 in 可迭代对象:
循环体
如果循环体内不需要访问自定义变量,可以将自定义变量替代为下划线。(只能说这个用法相当神奇)
下面演示for循环的几种用法:
# 可迭代对象:字符串
for item in 'Python':print(item, end=' ')
print() # 换行# 可迭代对象:序列,由range()产生的整数序列
for i in range(10):print(i, end=' ')
print() # 换行# 自定义变量用不到可以写成下划线
for _ in range(1,4):print('去码头整点薯条!!')# 之所以执行三次是因为重要的事情说三遍# 使用for循环计算1~100之间的累加和
sum = 0
for i in range(1,101):if not(i%2):sum += i
print('1~100之间的偶数和为:', sum)
- 运行结果
P y t h o n
0 1 2 3 4 5 6 7 8 9
去码头整点薯条!!
去码头整点薯条!!
去码头整点薯条!!
1~100之间的偶数和为: 2550
课堂练习:水仙花数针对三位数来说,若该数的每一位的三次幂的和等于该数本身,那么就称其为水仙花数。请输出100~999之间的水仙花数。
下面是代码示例:
# 计算所有的水仙花数
for i in range(100,1000):ones = i%10tens = (i//10)%10huns = i//100# print(huns, tens, ones) # 用于验证求解是否正确if (ones**3 + tens**3 + huns**3) == i:print(i)
- 运行结果
153
370
371
407
4. break、continue与else语句
break
称为非正常结束循环语句,用于结束循环结构,通常与分支结构if一起使用。
下面是代码示例:
# 从键盘录入密码,最多三次
print('---------使用for循环实现---------')
for i in range(3):code = input('请输入密码:')if code=='8888':print('输入正确!')breakelse:print('密码输入错误!')print('---------使用while循环实现---------')
i = 0
while i<3:code = input('请输入密码:')if code=='8888':print('输入正确!')breakelse:print('密码输入错误!')i += 1
continue
语句用于结束当前循环,进入下一次循环,通常与分支结构中的if一起使用。
下面是代码示例:
'''
要求输出1~50之间所有的5的倍数
'''
print('-----------不使用continue----------')
for i in range(1,51):if not(i%5):print(i, end=' ')
print() # 换行
print('-----------使用continue------------')
for i in range(1,51):if i%5:continueprint(i, end=' ')
- 运行结果
-----------不使用continue----------
5 10 15 20 25 30 35 40 45 50
-----------使用continue------------
5 10 15 20 25 30 35 40 45 50
Python中,else
语句不仅可以配合if使用,还可以配合循环使用。若在执行循环的过程中没有遇到break
语句,就会执行else块中的内容。这样的设置对于很多场景来说非常方便。
下面是代码示例:
'''
输入密码,最多三次,三次都输错之后报警
'''
print('-------------else配合for循环------------')
for i in range(3):pwd = input('请输入密码:')if pwd=='8888':print('密码正确,请进~')breakelse:print('密码输入错误!')
else:print('三次全部输错,请下次再试!')
print('-------------else配合while循环----------')
i = 0
while i<3:pwd = input('请输入密码:')i += 1if pwd == '8888':print('密码正确,请进~')breakelse:print('密码输入错误!')
else:print('三次全部输错,请下次再试!')
5. 嵌套循环
嵌套循环指的是循环结构中又嵌套了另外的完整的循环结构,其中内层循环做为外层循环的循环体执行。一般建议嵌套层数不超过3层。
下面是代码示例:
'''
1. 输出3*4的星号矩阵
'''
for i in range(3):for j in range(4):print('*', end=' ')print()
'''
2. 输出九九乘法表
'''
for i in range(1,10):for j in range(1,i+1):print(str(j)+'*'+str(i)+'='+str(i*j),end='\t')print()
- 运行结果
* * * *
* * * *
* * * *
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
注意嵌套循环中的break和continue遵循就近原则,只用于控制距离其最近的循环。
下面是代码示例:
print('---演示break在嵌套循环中的应用---')
for i in range(5):for j in range(1,11):if j%2==0:breakprint(j, end=' ')print()
print('---演示continue在嵌套循环中的应用---')
for i in range(5):for j in range(1,11):if j%2==0:continueprint(j, end=' ')print()
- 运行结果
---演示break在嵌套循环中的应用---
1
1
1
1
1
---演示continue在嵌套循环中的应用---
1 3 5 7 9
1 3 5 7 9
1 3 5 7 9
1 3 5 7 9
1 3 5 7 9
6. 本章作业
1. 循环输出26个字母对应的ASCII码值
说明:
比如:a --> 97
下面是代码示例:
x = 97 # 代表的是a的ASCII码值
for _ in range(26):print(chr(x),'--->', x)x += 1
- 运行结果
a ---> 97
b ---> 98
c ---> 99
d ---> 100
e ---> 101
f ---> 102
g ---> 103
h ---> 104
i ---> 105
j ---> 106
k ---> 107
l ---> 108
m ---> 109
n ---> 110
o ---> 111
p ---> 112
q ---> 113
r ---> 114
s ---> 115
t ---> 116
u ---> 117
v ---> 118
w ---> 119
x ---> 120
y ---> 121
z ---> 122
2. 模拟用户登录
说明:在上一节输入用户名和密码的基础上,添加次数限制。
下面是代码示例:
for i in range(1,4):user_name = input('请输入用户名:')user_pwd = input('请输入密码:')if user_name=='admin' and user_pwd==8888:print('登录成功')breakelse:print('用户名或密码不正确!!!')if i < 3:print(f'您还有{3-i}次机会!!!')else:print('对不起,三次均输入错误,请联系后台管理员')
- 运行结果略。
Python学习笔记:第五站 转圈圈相关推荐
- python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹
python学习笔记(五岁以下儿童) 深拷贝-浅拷贝 浅拷贝就是对引用的拷贝(仅仅拷贝父对象) 深拷贝就是对对象的资源拷贝 普通的复制,仅仅是添加了一个指向同一个地址空间的"标签" ...
- python学习笔记(五)缩进
python学习笔记(五)缩进 原作:http://www.cnblogs.com/vamei/archive/2012/05/29/2524706.html 笔记: #!/usr/bin/env p ...
- 5岁自学python编程-python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹...
python学习笔记(五岁以下儿童) 深拷贝-浅拷贝 浅拷贝就是对引用的拷贝(仅仅拷贝父对象) 深拷贝就是对对象的资源拷贝 普通的复制,仅仅是添加了一个指向同一个地址空间的"标签" ...
- python学习笔记(五)---替换函数
python学习笔记(五)-替换函数 replace()函数替换内容 用法: replace('需要替换的内容','替换后的内容',替换次数) 备:如果需要替换单引号需要加'\' 例子: str = ...
- Python学习笔记:第二站 七十二变
Python学习笔记 文章目录 Python学习笔记 第二站 七十二变 1. 二进制与字符编码 2. Python中的标识符与保留字 3. Python中的变量 4.Python中的数据类型 5. P ...
- Python学习笔记:第九站 一串连一串
Python学习笔记 文章目录 Python学习笔记 第九站 一串连一串 1. 字符串的驻留机制 2. 字符串的常用操作 3. 字符串的比较 4. 字符串的切片操作 5. 格式化字符串 6. 字符串的 ...
- 【Python学习笔记】b站@同济子豪兄 用pytorch搭建全连接神经网络,对Fashion-MNIST数据集中的时尚物品进行分类
[Python学习笔记]原作b站@同济子豪兄 用pytorch搭建全连接神经网络,对Fashion-MNIST数据集中的时尚物品进行分类 跟着b站@同济子豪兄的视频自学写的代码,内容是用pytorch ...
- python学习笔记(五)字符串函数二
原文链接:http://blog.svenapps.com/post/python-xue-xi-bi-ji/python-xue-xi-bi-ji-wu-zi-fu-chuan-han-shu-er ...
- Python学习笔记(五)——正则表达式
定义 正则表达式提供了功能强大.灵活又高效的方法来处理文本:快速分析大量文 本以找到特定的字符模式:提取.编辑.替换或删除文本字符串:将提取的字 符串添加到集合以生成报告.正则表达式广 ...
- Python学习笔记(五.数据分析 ——上)
系列文章持续更新中- 文章目录 前言 一.相关性分析 A.获取股票价格 a.获取日K线的股票价格 b.获取每分钟的股票价格 B. 合并股票价格 C.股票价格相关性分析 二.假设检验 三.方差分析 A. ...
最新文章
- vue实现div多选全选功能_怎样为你的 Vue.js 单页应用提速
- Java 注解详解 (annotation)
- 手机空间定位_你或许被默默定位很久了却不知情,盘点生活中各类定位技术
- NHibernate学习之五:三种常见的配置方法。
- 微课|中学生可以这样学Python(2.3.4节):例2-1
- 将Excel文件数据导入到SqlServer数据库的三种方案
- 数据结构期末考题总结(附答案)
- C语言中的常量与变量
- win10常用快捷键合集
- ubuntu 20.04 设置静态ip
- KK 的99 条额外的建议[翻译]#yyds干货盘点#
- 华为鸿蒙国内厂商适配,华为再放大招!鸿蒙系统将适配高通/联发科手机:获国产厂商力挺...
- Intellij idea旗舰版最新免费破解使用方法(针对在校学生)
- 腾讯云轻量8核16G服务器18M带宽CPU流量性能测评
- 谷歌开发者大会焦点:TensorFlow.js可制作微信小程序,Android 10原生支持5G,TF2.0大更新...
- 快速上手Ubuntu之安装常用软件篇——打造一个满足基本娱乐办公的Ubuntu
- 软考高级-信息系统管理师之质量管理(最新版)
- 魔法宝石(动态规划)
- 题解报告:P2404 自然数的拆分问题(dfs+回溯)
- 查看Oracle sys_lob,system表空间满的处理-SYS_LOB0003450292C00039$$
热门文章
- 一篇抄十篇,CVPR Oral被指大量抄袭,大会最后一天曝光!
- android点击号码打电话,Android从虚拟号码拨打电话
- 大数据学习环境搭建系列(十二)Xshell的安装使用
- 小乐乐比较懒惰,他现在想睡觉,然后再去学习。他知道现在的时刻,以及自己要睡的时长,想设定一个闹钟叫他起床学习,但是他太笨了,不知道应该把闹钟设定在哪个时刻,请你帮助他。(只考虑时和分,不考虑日期)
- 微信分享JS接口失效说明及解决方案
- android6 miui9分屏,小米MIUI9重磅新功能曝光:分屏、画中画,更流畅省电
- 电力系统matlab程序设计,电力系统分析潮流计算课程序设计及其MATLAB程序设计
- Java Web当中使用EasyUI|快速建立漂亮的后台网站(教程+源代码)
- 向大家介绍一下我的生日礼物
- springboot《音悦唯尔》在线音乐播放网站129rq[独有源码]了解毕业设计的关键考虑因素