day4 Python笔记总结

news/2024/11/14 12:16:00/

day4 Python笔记总结

在经过上节课对循环语句的学习,对循环的用法有了基础性的学习。对于学习嵌套循环的对比打下了基础。

一、嵌套的循环对比

import time

嵌套的循环对比作用是:直接借用别人实现好的功能来解决你遇到的问题。在Python将1970年1月1日设置为第一天,time()得到的结果是从第一天到这一行代码。

例如:

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}')
print('——————————————————————————————————————————')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}')

输出结果为:

大马使用2匹,中马使用30匹,小马使用68匹
大马使用5匹,中马使用25匹,小马使用70匹
大马使用8匹,中马使用20匹,小马使用72匹
大马使用11匹,中马使用15匹,小马使用74匹
大马使用14匹,中马使用10匹,小马使用76匹
大马使用17匹,中马使用5匹,小马使用78匹
大马使用20匹,中马使用0匹,小马使用80匹
程旭执行花费时间为0.0009999275207519531
——————————————————————————————————————————
大马2匹,中马30匹,小马68匹
大马5匹,中马25匹,小马70匹
大马8匹,中马20匹,小马72匹
大马11匹,中马15匹,小马74匹
大马14匹,中马10匹,小马76匹
大马17匹,中马5匹,小马78匹
大马20匹,中马0匹,小马80匹
程旭执行花费时间为0.03200221061706543

二、break和continue关键字的用法比较

例如在案例中:数字炸弹游戏。给定一个范围内随机一个数字,N个去猜,猜对了有惩罚。

#数字炸弹游戏。给定一个范围内随机一个数字,N个去猜,猜对了有惩罚。

#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 = Falsebreakprint('==========')

breakcontinue:循环关键字,只能放到循环中去使用

break:被触发时,直接结束break所在循环

continue:被触发时,直接结束当前循环进入下一次循环

输出结果为:请输入您猜的数字:

例如:

for i in range(1,21):if i % 5 ==0:print('****')#continuebreakprint('====')else:print(i)

结果为:

1
2
3
4

三、for-else和while-else语句的用法比较

案例:判断1-100之间的所有素数(质数)

所谓素数就是只有1和它本身两个因子的数最小的素数是2

for i in range(1,101):if i == 1:print(f'{i}不是素数')elif i == 2:print(f'{2}是素数')else:for j in range(2,i):if i% j == 0:print(f'{i}不是素数')breakelse:print(f'{i}是素数')

应用场景:当前所有情况必须判断完才能下结论时使用for-else语句

关于用户名合法问题

"""
语法:
for 变量 in 容器:代码块
else:代码块"""   

在for-else语句中,当for循环正常结束时,else语句被执行;当for循环非正常结束时,else语句不执行。

当break、return等关键字会影响for循环的正常结束。(限于有序循环中)

四、列表的性质

1、列表的作用:一次性存放多个元素

2、列表的性质:

1.列表是可变的,(可以做修改)

例如:创建一个空列表

list = []
list2 = list()
print(list1,list2)

2.列表是有序的(下标,每个元素有自己的固定位置)

3.列表的容器标志:[];列表的类型:list

4.列表中可以任意存放类型的数据(建议:一个列表中的数据类型保持一致)

例如:创建一个非空列表

list3 = [1, 1.1 , True, None,'abcde', [123], (1 ,2 ,3 )]
print(list3)
print(len(list3))

len();能够查看容器中元素的个数

5.列表中允许重复出现元素

例如:在列表list1

list1 = [1, 2, 3]
list2 = [4, 5, 6]
list3 = [1, 2, 3]
print(list1+ list2+ list3)

可重复

print(list1 * 5)

五、下标和切片

1、下标

下标:有序容器中每个元素的位置索引

下标分为正向下标和负向下标

正向下标:从0开始,从左到右依次递增

负向下标:从1开始,从右到左依次递减

可通过下标获取元素,语法:容器[下标]

例如:

list1 = ['王者','阴阳师','三国杀','和平精英', '光遇']
print(list[1])
print(list[-4])

输出为:

list[1]
list[-4]

2、切片

作用:获取有序容器中部分元素

语法:容器[[start:end:stpe]

stpe默认为1可以不写,表示从左到右取元素.start和end也可以不写,表示代表开头和结束

start和end可以使用正向下标和负向下标.切片时左闭右开区间.

例如·:

 list1 = ['王者','阴阳师','三国杀','和平精英', '光遇']
print(list1[1:-1])#
输出为:['阴阳师','三国杀','和平精英']
print(list1[1:-1:2])
输出为:['阴阳师','和平精英']
print(list1[:])
输出为:['王者','阴阳师','三国杀','和平精英','光遇']
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 = ['柯南', '百变小樱', '奥特曼', '甄嬛传', '海贼王', '火影忍者', '斗破苍穹']

对应的切片输出语法为:

print(list2 [0:1000])

六、循环列表

有序容器的循环遍历分为直接遍历和间接遍历

1、直接遍历

例如:

list1 = ['A', 'B', 'C', 'D']
for i in list1:print(i)

输出结果为:A
B
C
D

2、间接遍历

for index in range(len(list1)):print(f'下标{index}--->元素{list1[index]}')for index in range(-len(list1), 0):print(f'下标{index}--->元素{list1[index]}')

输出结果为:

下标0--->元素A
下标1--->元素B
下标2--->元素C
下标3--->元素D
下标-4--->元素A
下标-3--->元素B
下标-2--->元素C
下标-1--->元素D

七、列表的增删改

1、增加

append:在列表的末尾追加一个元素

insert:在列表的任意位置添加一个元素

extend:将一个容器中的元素添加到列表中

例如:

list1 = []
print('---向列表中添加元素---')
print(list1)
list1.append('Python')
list1.append('Java')
print(list1)list1.insert(1, 'C++')
print(list1)

输出结果为:

---向列表中添加元素---
[]
['Python', 'Java']
['Python', 'C++', 'Java']
['Python', 'C++', 'Java', 'UI', 'C', 'Go', 'HTML', 'Python']

---删除列表中元素---
['Python', 'Java', 'UI', 'C', 'Go', 'HTML', 'Python']
['Python', 'Java', 'UI', 'Go', 'HTML', 'Python']
['Java', 'UI', 'Go', 'HTML', 'Python']
Java
['UI', 'Go', 'HTML', 'Python']
[]

2、修改

通过下标修改元素

例如:

list2 = ['UI', 'C', 'Go', 'HTML', 'Python']
list1.extend(list2)
print(list1)

输出结果为:['Python', 'Python', 'Java', 'UI', 'C', 'Go', 'HTML', 'Python']

3、删除

例如:

list1[1] = 'Python'
print(list1)print('---删除列表中元素---')

输出结果为:

—删除列表中元素—
['Python', 'Java', 'UI', 'C', 'Go', 'HTML', 'Python']
['Python', 'Java', 'UI', 'Go', 'HTML', 'Python']
['Java', 'UI', 'Go', 'HTML', 'Python']

del:通过下标删除元素,下标超出范围报错

例如:

del list1[0]
print(list1)

输出:['Python', 'Java', 'UI', 'Go', 'HTML', 'Python']

remove:删除指定的元素,要删除的元素不存在,报错;

例如:

list1.remove('C')
print(list1)
list1.remove('Python')
print(list1)

输出为:['Java', 'UI', 'Go', 'HTML', 'Python']

Java

一次只删除一个元素,从左向右删除

pop:通过下标删除元素,下标超出范围报错;

pop删除的元素还可以被找到

例如:

content = list1.pop(0)
print(content)
print(list1)

输出为:['UI', 'Go', 'HTML', 'Python']

4、清空

例如:

list1.clear()
print(list1)

输出为:[]


http://www.ppmy.cn/news/169524.html

相关文章

【实践】python公考数学

❤判断推理 ❤数理关系 ❤资料分析 区分确定和不定信息。不定信息有&#xff1a;假言、不相容选言、相容选言、特称&#xff08;有的&#xff09;。 从重复信息入手。比如某词项出现两次。 分情况讨论&#xff1a;当a>0当a0当a<0。 涉及百分数的题&#xff0c;当加和超过…

python练习题5

基础题 依次输入两个整数&#xff0c;如果两个数相减的结果为奇数则输出该结果&#xff0c;否则输出提示信息结果不是奇数。 num1 int(input("请输入第一个整数&#xff1a;")) num2 int(input("请输入第二个整数&#xff1a;")) num3 num1 - num2 if…

百马百担问题:有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问大,中,小马各有多少?

算法设计与分析习题4_6 百马百担问题&#xff1a;有100匹马&#xff0c;驮100担货&#xff0c;大马驮3担&#xff0c;中马驮2担&#xff0c;两匹小马驮1担&#xff0c;问大&#xff0c;中&#xff0c;小马各有多少&#xff1f; #include <stdio.h> int main() {int a,b,…

制作简单进销存管理系统(C#)

实验三&#xff1a;制作简单进销存管理系统 任务要求&#xff1a; 在进销存管理系统中&#xff0c;商品的库存信息有很多种类&#xff0c;比如商品型号、商品名称、商品库存量等。在面向对象编程中&#xff0c;这些商品的信息可以存储到属性中&#xff0c;然后当需要使用这些…

java系统学习(五) --------java类和对象的定义

什么是类 类是客观存在的,抽象的,概念的东西。 什么是对象 对象是具体的,实际的,代表一个事物。例如:车是一个类,汽车,自行车就是它的对象。 关于类与对象的描述:类是对象的模版,对象是类的一个个体。 Java中定义类的方法

[Java入门] 百马百担问题

[Java入门] 百马百担问题 白马白担问题&#xff1a;100 匹马驮 100 担货物&#xff0c;其中大马驮 3 担货&#xff0c;中马驮 2 担&#xff0c;两匹小马驮 1 担。问共有大、中、小马各多少匹&#xff1f;编程实现求解的算法。 类似百钱买百鸡 public class Test {public stat…

用python解决百马百担问题_利用C语言实现“百马百担”问题方法示例

前言 百马百担问题,有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问共有多少种驮法?且各种驮法中大、中、小马各多少匹? 【分析】 1、定义整型变量m、n、k分别存放大马匹数、中马匹数、小马匹数; 2、定义整型变量sum存放共有几种驮法,且sum赋初值为0; 3、…

用JAVA,写百马百担

百马百担。&#xff08;百钱百鸡同理&#xff09; 现有100匹马需驮100担货&#xff0c;其中大马驮3担&#xff0c;中马驮2担&#xff0c;两匹小马驮一担。 问一百匹马中大马、中马、小马各多少&#xff1f; 编写程序将每种情况列出来。 用for进行编写&#xff0c;使用for嵌套 …