【千锋Python2205班8.25笔记-day04-循环和列表】
01-homework
1.根据输入的成绩的范围打印及格
或者不及格
。
score = float(input('请输入成绩:'))
if score >= 60:print('及格')
else:print('不及格')
2.根据输入的年纪范围打印成年
或者未成年
,如果年龄不在正常范围内(0~150)打印这不是人!
age = int(input('请输入一个年龄:'))if 0 <= age <= 150:if age >= 18:print('成年')else:print('未成年')else:print('这不是人')
3.输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数
。
a = 50
b = 30
if (a - b) % 2 != 0:print(a - b)
else:print(f'{a - b}不是奇数')
4.使用循环计算1*2*3*4*...*10
的结果
product = 1
for i in range(1, 11):product *= i
print(f'10的阶乘为{product}')
5.统计100以内个位数是2并且能够被3整除的数的个数。
numCount = 0
for i in range(1, 101):if i % 10 == 2 and i % 3 == 0:numCount += 1
print(numCount)
for i in range(12, 101, 30):print(i)
6.输入任意一个正整数,求他是几位数
num = 99999
numCopy = num
Count = 1
while numCopy // 10 != 0:numCopy //= 10Count += 1
print(f'{num}是一个{Count}位数')
7.打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。
例如:153是⼀个⽔仙花数,因为 1³ + 5³ + 3³
等于 153
for i in range(100, 1000):gw = i % 10sw = i // 10 % 10bw = i // 100if gw ** 3 + sw ** 3 + bw ** 3 == i:print(f'{i}是水仙花数')
8.求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34…(这儿的n可以是任意正整数,可以通过输入来确定)
a = 1
b = 1
N = 8
#仅仅控制计算次数
for _ in range(N - 2):total = a + ba = bb = total
print(f'斐波那契额数列第{N}个数的值为{total}')
9.这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?(可以直接使用穷举法)
#x代表大马
for x in range(0, 35):# y代表中马for y in range(0, 51):if 6 * x + 4 * y + (100 - x - y) == 200:print(f'大马使用{x}匹,中马使用{y}匹,小马使用{100 - x - y}匹')
02-嵌套循环对比
import time模块
作用:直接借用别人实现好的功能来解决你遇到的问题。
print(time.time())
Python将1970年1月1日设置为第一天,time()得到的结果是从第一天到这一行代码被执行的总秒数。
Excel将1900年1月1日设为第一天,目前将9999年12月31日设置为最后一天
两种方法执行时间比较
start = time.time()
for x in range(0, 35):# y代表中马for y in range(0, 51):if 6 * x + 4 * y + (100 - x - y) == 200:print(f'大马使用{x}匹,中马使用{y}匹,小马使用{100 - x - y}匹')
end = time.time()
print(f'程序执行花费时间为{end - start}')
start = time.time()
for i in range(0, 35):for j in range(0, 51):for z in range(0, 101):if i + j + z == 100 and 6 * i + 4 * j + z == 200:print(f'大马{i}匹,中马{j}匹,小马{z}匹')
end = time.time()
print(f'程序执行花费时间为{end - start}')
03-review
1.格式化输出(旧式的字符串格式化(%s、%d、%f)、format的用法、f-字符串(格式化字符串字面值))
2.格式化输出的进阶(使用":格式"将传入的数据样式改掉)
3.for循环、while循环、嵌套循环
04-break和continue关键字
案例:数字炸弹游戏。给定一个范围中的随机一个数字,N个人去猜,猜对了有惩罚。
import random
#random:随机模块
#randint(a,b):从[a,b]中随机选取一个整数
num = random.randint(1, 100)
#print(num)
flag = True
while flag:selfNum = int(input('请输入您猜的数字:'))if selfNum > num:print('再小一点')elif selfNum < num:print('再大一点')else:print('恭喜你猜对了,接受惩罚')# flag = Falsebreak
break和continue:循环关键字,只能放到循环中使用
break:被触发时,直接结束break所在循环。
continue:被触发时,直接结束当前循环进入下一次循环
for i in range(1, 21):if i % 5 == 0:print('*****')# continuebreakprint('=====')else:print(i)
06-列表的性质
列表
1.作用:一次性存放多个元素。
2.列表的性质
(1).列表是可变的。(可以做修改,增删改)
(2).列表是有序的。(下标,每个元素有自己的固定位置)
(3).列表的容器标志:[];列表的类型:list。
(4).列表中可以存放任意类型的数据。(建议:一个列表中的数据类型保持一致)
(5).列表中允许出现重复元素
1.创建一个空列表
list1 = []
list2 = list()
print(list1, list2)
2.创建一个非空列表
list3 = [1, 1.1, True, None, 'abccde', [123], (1, 2, 3)]
print(list3)
3.len():能够查看容器中元素的个数
print(len(list3))
4.对列表进行循环遍历
for i in list3:print(i, type(i))
5.列表的重复和拼接:生成的是一个新的列表
拼接
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list3 = [1, 2, 3]
print(list1 + list2 + list3)
# 重复
print(list1 * 5)
07-下标和切片
1.下标:
有序容器中每个元素的位置索引下标分为正向下标和负向下标
正向下标:从0开始,从左向右数依次递增
负向下标:从-1开始,从右向左数一次递减
list1 = ['王者荣耀', '阴阳师', '三国杀', '和平精英', '光遇']
1.通过下标获取元素:语法:容器[下标]
print(list1[1])
print(list1[-4])
2.切片
作用:获取有序容器中部分元素
语法:容器[start: end: step]
step默认为1可以不写,表示从左向右取元素。start和end也都可以不写,表示代表开头和结尾。
start和end可以使用正向下标和负向下标。切片是左闭右开区间。
list1 = ['王者荣耀', '阴阳师', '三国杀', '和平精英', '光遇']
print(list1[1:-1]) # ['阴阳师', '三国杀', '和平精英']
print(list1[1:-1:2]) # ['阴阳师', '和平精英']
print(list1[:]) # ['王者荣耀', '阴阳师', '三国杀', '和平精英', '光遇']
print(list1[:-1]) # ['王者荣耀', '阴阳师', '三国杀', '和平精英']
print(list1[1:]) # ['阴阳师', '三国杀', '和平精英', '光遇']
print(list1[-1:-5:-1]) # ['光遇', '和平精英', '三国杀', '阴阳师']
print(list1[::-1]) # ['光遇', '和平精英', '三国杀', '阴阳师', '王者荣耀']
print(list1[-1:-5:-3]) # ['光遇', '阴阳师']
如果step>0,end对应的元素必须在start对应元素的后边。下一次获取的元素为本次获取元素的下标加步长对应的元素。
如果step<0,end对应的元素必须在start对应元素的前边。下一次获取的元素为本次获取元素的下标加步长对应的元素。
练习:
list2 = [‘柯南’, ‘百变小樱’, ‘奥特曼’, ‘甄嬛传’, ‘海贼王’, ‘火影忍者’, ‘斗破苍穹’]
1.获取[‘柯南’,‘奥特曼’,‘海贼王’,‘斗破苍穹’]
print(list2[::2])
2.获取[‘斗破苍穹’,‘甄嬛传’,‘柯南’]
print(list2[-1::-3])
3.获取[‘奥特曼’,‘百变小樱’,‘柯南’]
print(list2[2::-1])
4.获取[‘柯南’]
print(list2[0:1])
5.获取 ‘柯南’
print(list2[0])
注意:
下标不能越界,切片可以越界
list2 = ['柯南', '百变小樱', '奥特曼', '甄嬛传', '海贼王', '火影忍者', '斗破苍穹']
#list2[8] # IndexError: list index out of range
print(list2[0:10000])
08-循环遍历
有序容器的循环遍历分为直接遍历和间接遍历
1.直接遍历
list1 = ['A', 'B', 'C', 'D']
for i in list1:print(i)
2.间接遍历
for index in range(len(list1)):print(f'下标{index}--->元素{list1[index]}')
#for index in range(-len(list1), 0):
for index in range(len(list1) * -1, 0):print(f'下标{index}--->元素{list1[index]}')
练习:
通过循环获取元素’C’的下标
list1 = ['A', 'B', 'C', 'D']
for i in range(len(list1)):if list1[i] == 'C':print(i)break
09-列表的增删改
list1 = []
print('---向列表中添加元素---')
1.增加
append:在列表的末尾追加一个元素
insert:在列表的任意位置添加一个元素
extend:将一个容器中的元素添加到列表中
print(list1)
list1.append('Python')
list1.append('Java')
print(list1)
list1.insert(1, 'C++')
print(list1)
list2 = ['UI', 'C', 'Go', 'HTML', 'Python']
list1.extend(list2)
print(list1)
2.修改
1.通过下标修改元素
list1[1] = 'Python'
print(list1)
3.删除
del:通过下标删除元素,下标超出范围报错
remove:删除指定的元素,要删除的元素不存在,报错;一次只删除一个元素,从左向右删除
pop:通过下标删除元素,下标超出范围报错;pop删除的元素还可以被找到
clear:清空列表
del list1[0]
print(list1)
list1.remove('C')
print(list1)
list1.remove('Python')
print(list1)
content = list1.pop(0)
print(content)
print(list1)
list1.clear()
print(list1)
练习:
生者死者游戏。30 个人在一条船上,超载,需要 15 人下船。于是人们排成一队,排队的位置即为他们的编号。报数,从 1 开始,数到 9 的人下船。如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了呢?
peopleList = []
for i in range(1, 31):peopleList.append(i)
print(peopleList)while len(peopleList) > 15:num = 1while num < 9:num += 1peopleList.append(peopleList.pop(0))people = peopleList.pop(0)print(people)print(peopleList)
【千锋Python2205班8.25笔记-day04-循环和列表】相关推荐
- 【千锋Python2205班8.29笔记-day06-冒泡排序和字符串基础】
01-homework 1.分别使用两种方法对列表去重 name_list = ['张三', '李四', '王五', '李四', '王五', '王五', '张三'] #间接删除 newList = [ ...
- 【千锋Python2205班9.29笔记-day09-字符串(一阶段)】
01-review # 1. 元组(tuple) """ 容器:(数据1, 数据2, 数据3,...) 不可变的;有序的元素:没有要求 """ ...
- 【千锋Python2205班10.21笔记-day05-xpath语法和指令系统(一阶段)】
01-岗位数据爬虫 import requests from re import findall from json import loadsheaders = {'cookie': '_uab_co ...
- 【千锋Python2205班9.20笔记-day02-python基础语法(一阶段)】
01-review 1.注释 单行注释(ctr+/) """ 多行注释 """ ''' 多行注释 ''' 2.行和缩进 print(100) ...
- 千锋逆战班学习第二十五天
千锋逆战班学习第25天 努力或许没有收获,但不努力一定没收获,加油. 今天我学了Java课程的集合. 中国加油!!!武汉加油!!!千锋加油!!!我自己加油!!! 4.有如下代码: public cla ...
- 千锋逆战班学习第二十三天 集合练习(一)
千锋逆战班 在千锋"逆战"学习第23天, 每个人生阶段都需要努力去扮好自己的角色,越努力越轻松,越坚强越幸运! 加油! 2(List)有如下代码 import java.util. ...
- 千锋逆战班学习第二十四天
千锋逆战班 在千锋"逆战"学习第24天, 每个人生阶段都需要努力去扮好自己的角色,越努力越轻松,越坚强越幸运! 加油! 1(Object类)有下面代码 interface IA{v ...
- 千锋逆战班学习日志Day47
千锋逆战班学习第47天 表单标签 CSS介绍 二.CSS和HTML结合 2.1CSS和HTML结合之内联结合 2.2CSS与HTML结合之内部部结合 2.3CSS和HTML结合之外部结合 三.访问路径 ...
- #千锋逆战班,接口回调#
在千锋学习的第十九天, 每个人生阶段都需要努力去扮演好自己的角色,越努力,越轻松,越坚强越幸运,加油! 中国加油!武汉加油,千锋加油!我自己加油! 导入java.lang.Comparable方法来对 ...
最新文章
- wsdl文件是怎么生成的_电子标书怎么做需要注意的事项,您学会了吗?
- 三维离散点包络 matlab,求大神指点绘制空间内散点图的包络面,,,散点程序如下...
- JDK源码分析:Byte.java
- android怎么根据标题解析json,如何在android中解析没有json对象标题的json数组?
- 如何计算给定一个unigram语言模型_CS224n笔记[5]:语言模型(LM)和循环神经网络(RNNs)...
- JAVA两个视图层_MVC - 管理帐户 . 一个视图有两个局部视图和两个模型
- 新突破!CVPR2019接收论文:新的基于自编码变换的无监督表示学习方法—AET
- CPPUnit 测试宏
- 这样的开源方式,你喜欢吗?
- 数据包的忽略打印与脱敏打印
- 程序员交接文档格式(自己整理,仅供参考,付md文档)
- 【数据结构】从零实现顺序表+链表相关操作
- 卡方线性趋势检验_趋势卡方检验
- Ftp站点访问及FileZilla客户端使用
- 微信公众号上传永久图片素材
- 华清远见java学习心得
- shp、tif文件坐标系转换
- BugkuCTF-MISC-图穷匕见
- SpringBoot-Mybatis-Plus配置
- 深搜和广搜的原理及优缺点