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-循环和列表】相关推荐

  1. 【千锋Python2205班8.29笔记-day06-冒泡排序和字符串基础】

    01-homework 1.分别使用两种方法对列表去重 name_list = ['张三', '李四', '王五', '李四', '王五', '王五', '张三'] #间接删除 newList = [ ...

  2. 【千锋Python2205班9.29笔记-day09-字符串(一阶段)】

    01-review # 1. 元组(tuple) """ 容器:(数据1, 数据2, 数据3,...) 不可变的;有序的元素:没有要求 """ ...

  3. 【千锋Python2205班10.21笔记-day05-xpath语法和指令系统(一阶段)】

    01-岗位数据爬虫 import requests from re import findall from json import loadsheaders = {'cookie': '_uab_co ...

  4. 【千锋Python2205班9.20笔记-day02-python基础语法(一阶段)】

    01-review 1.注释 单行注释(ctr+/) """ 多行注释 """ ''' 多行注释 ''' 2.行和缩进 print(100) ...

  5. 千锋逆战班学习第二十五天

    千锋逆战班学习第25天 努力或许没有收获,但不努力一定没收获,加油. 今天我学了Java课程的集合. 中国加油!!!武汉加油!!!千锋加油!!!我自己加油!!! 4.有如下代码: public cla ...

  6. 千锋逆战班学习第二十三天 集合练习(一)

    千锋逆战班 在千锋"逆战"学习第23天, 每个人生阶段都需要努力去扮好自己的角色,越努力越轻松,越坚强越幸运! 加油! 2(List)有如下代码 import java.util. ...

  7. 千锋逆战班学习第二十四天

    千锋逆战班 在千锋"逆战"学习第24天, 每个人生阶段都需要努力去扮好自己的角色,越努力越轻松,越坚强越幸运! 加油! 1(Object类)有下面代码 interface IA{v ...

  8. 千锋逆战班学习日志Day47

    千锋逆战班学习第47天 表单标签 CSS介绍 二.CSS和HTML结合 2.1CSS和HTML结合之内联结合 2.2CSS与HTML结合之内部部结合 2.3CSS和HTML结合之外部结合 三.访问路径 ...

  9. #千锋逆战班,接口回调#

    在千锋学习的第十九天, 每个人生阶段都需要努力去扮演好自己的角色,越努力,越轻松,越坚强越幸运,加油! 中国加油!武汉加油,千锋加油!我自己加油! 导入java.lang.Comparable方法来对 ...

最新文章

  1. wsdl文件是怎么生成的_电子标书怎么做需要注意的事项,您学会了吗?
  2. 三维离散点包络 matlab,求大神指点绘制空间内散点图的包络面,,,散点程序如下...
  3. JDK源码分析:Byte.java
  4. android怎么根据标题解析json,如何在android中解析没有json对象标题的json数组?
  5. 如何计算给定一个unigram语言模型_CS224n笔记[5]:语言模型(LM)和循环神经网络(RNNs)...
  6. JAVA两个视图层_MVC - 管理帐户 . 一个视图有两个局部视图和两个模型
  7. 新突破!CVPR2019接收论文:新的基于自编码变换的无监督表示学习方法—AET
  8. CPPUnit 测试宏
  9. 这样的开源方式,你喜欢吗?
  10. 数据包的忽略打印与脱敏打印
  11. 程序员交接文档格式(自己整理,仅供参考,付md文档)
  12. 【数据结构】从零实现顺序表+链表相关操作
  13. 卡方线性趋势检验_趋势卡方检验
  14. Ftp站点访问及FileZilla客户端使用
  15. 微信公众号上传永久图片素材
  16. 华清远见java学习心得
  17. shp、tif文件坐标系转换
  18. BugkuCTF-MISC-图穷匕见
  19. SpringBoot-Mybatis-Plus配置
  20. 深搜和广搜的原理及优缺点

热门文章

  1. 乔布斯自传自述-新浪
  2. 使用python实现刷脸登录
  3. unity中实现城市夜晚汽车流水的效果
  4. Java B组蓝桥杯第十届国赛:最优旅行
  5. LNMP架构部署及应用
  6. 南京大学知名计算机系教授周志华否认“出走”传闻 | 最新
  7. 信息摘要算法之一:MD5算法解析及实现
  8. Keil5新建GD32裸机程序工程模板
  9. 几何公差学习笔记(三)-- 公差的详细解释
  10. 反病毒软件解析计算机的异常现象(转)