8月28日课后笔记

8月28日课后笔记

一、循环嵌套

当代码重复执行时,用循环嵌套可以容易的解决问题。

i = 0
while i < 5:
    print('*', end='')
    print('*', end='')
    print('*', end='')
    print('*', end='')
    print('*', end='')
    print()
    i += 1
i = 0
while i < 5:
    j = 0
    while j < 5:
        print('*', end='')
        j += 1
    print()
    i += 1
"F:\python exerciese\venv\Scripts\python.exe" "F:/python exerciese/12.py"
*****
*****
*****
*****
*****

通过以上代码得出:外层循环控制高度,内层循环控制宽度
练习:打印三角形

i = 0
while i < 5:
    j = 0
    while j < i + 1:
        print('*',end='')
        j += 1
    print()
    i += 1
*
**
***
****
*****
i = 0
while i < 5:
    j = 0
    while j < 5 - i:
        print('*',end='')
        j += 1
    print()
    i += 1
*****
****
***
**
*

练习:九九乘法表

i = 0
while i < 9:
    i += 1
    j = 0
    while j < i:
        j += 1
        print(f'{j}*{i}={i*j}\t',end='')
    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	

二、continue和break

continue可以用来跳过当次循环

i = 0
while i < 6:
    i += 1
    if i == 2:
        continue
    print(i)
else:
    print('hello')
1
3
4
5
6
hello
break可以立即退出循环语句,包括else语句
i = 0
while i < 6:
    i += 1
    if i == 2:
        break
    print(i)
else:
    print('hello')
1

三、列表的快速入门

数据结构:数据结构就是类似于计算机当中的一种存放数据的方式
可变序列:列表
不可变序列:字符串、整数、元组
列表:python中的对象list
列表的作用:可以保存多个有序的数据
lst = [] #创建空列表
lst = [1,2,3,4,5]#列表里面存储的数据我们称之为元素
print(lst,type(lst))
lst = [‘python’,1,True,None,[2,3,4]]#列表可以保存任意的对象
#在列表当中可以通过索引(index)或者下标来获取列表中的元素
#索引是从0开始,列表的第一个位置的索引就是0,以此类推
lst = [10,20,30,40,50]
print(lst[2])
print(lst[1])#超出最大索引值就会报错
#len函数可以获取列表的长度(或者列表元素的个数)
print(len(lst))

四、切片

在利用Python解决各种实际问题的过程中,经常会遇到从某个对象中抽取部分值的情况,切片操作正是专门用于完成这一操作的。切片是指从现有列表中,获取一个子列表。
语法:列表[开始:结束:步长]

lst = [10,20,30,40,50]
print(lst[-1])#50
print(lst[-2])#40
#-1是列表中最后一个元素,-2是倒数第二个元素,以此类推
hero = ['钢铁侠','葫芦娃','黑寡妇','蚁人','美国队长']
print(hero[0:2])#['钢铁侠', '葫芦娃']
#通过切片获取元素时,会包括起始位置的元素,不会包括结束的元素,即左闭右开
print(hero)#['钢铁侠', '葫芦娃', '黑寡妇', '蚁人', '美国队长']
#做切片操作时,总会返回一个新的列表,不会影响原来的列表
#开始位置和结束位置的索引是否要写,如果省略结束位置,会从当前的开始位置一直截取到最后,如果省略开始位置,会从第一个元素开始到结束位置上的元素(不包括结束位置上的元素)
print(hero[:3])#['钢铁侠', '葫芦娃', '黑寡妇']
#如果开始位置和结束位置都省略,则会从第一个元素到最后一个元素
print(hero[:])#['钢铁侠', '葫芦娃', '黑寡妇', '蚁人', '美国队长']
#步长可以理解为获取元素的间隔,它默认值为1,可以省略
print(hero[0:5:2])#['钢铁侠', '黑寡妇', '美国队长']
#步长不能为0,可以为负数
print(hero[::-1])#['美国队长', '蚁人', '黑寡妇', '葫芦娃', '钢铁侠']
print(hero[::-2])#['美国队长', '黑寡妇', '钢铁侠']
a = ['a','b','c','d','e','f','g','h','i']
print(a[::-2])#['i', 'g', 'e', 'c', 'a']

通用操作

#+可以将2个列表拼接成一个列表
a = [1,2,3] + ['a','b','c']
print(a)
#[1, 2, 3, 'a', 'b', 'c']
#*可以将列表重复指定的次数
lst = [1,2,3]*2
print(lst)
#[1, 2, 3, 1, 2, 3]
#in用来检查指定元素是否存在于列表中、not in用来检查指定元素是否不在列表中
hero = ['钢铁侠','葫芦娃','黑寡妇','蚁人','美国队长']
print('绿巨人'not in hero)#True
#min 最小值、max:最大值
#函数:xxx()
#方法:yyy.xxx()
#index()获取指定元素在列表中的位置
hero = ['钢铁侠','葫芦娃','蜘蛛侠','黑寡妇','蚁人','美国队长','蜘蛛侠','蜘蛛侠']
print(hero.index('蜘蛛侠',3,7))#'蜘蛛侠'的下标是6
#count指定元素在列表中出现的位置
print(hero.count('蜘蛛侠'))

六、修改列表

#通过索引修改列表中的元素
hero = ['钢铁侠','葫芦娃','黑寡妇','蚁人','美国队长']
print('修改前',hero)
hero[0] = '雷神'
print('修改后',hero)
#修改前 ['钢铁侠', '葫芦娃', '黑寡妇', '蚁人', '美国队长']
#修改后 ['雷神', '葫芦娃', '黑寡妇', '蚁人', '美国队长']
#del删除列表中的元素
del hero[2]
#通过切片来修改列表中的元素
hero = ['钢铁侠','葫芦娃','蜘蛛侠','黑寡妇','蚁人','美国队长',]
hero[0:3] = 'abcd'
print('通过切片来修改列表中的元素',hero)
#通过切片来修改列表中的元素 ['a', 'b', 'c', 'd', '黑寡妇', '蚁人', '美国队长']
#如果替换的元素大于原有的元素,多余的元素会往后顺延
#当设置了步长时,序列中元素的个数必须和切片中元素的个数保持一致
#通过切片来删除元素
hero[1:3] = []
print('修改后',hero)
#修改后 ['a', 'd', '黑寡妇', '蚁人', '美国队长']
# s = 'python'
# s[1] = 'j'
# print(s)
#错误是因为字符串是不可变序列,所以不可以改
s = 'python'
a = list(s)
a[1] = 'j'
print(a)
#['p', 'j', 't', 'h', 'o', 'n']

作业

作业一、现在有a=[1,2,3,4,5,6],不通过函数的形式实现列表的反转([6,5,4,3,2,1]),并写出推导过程

a = [1,2,3,4,5,6]
b = a[::-1]
print(b)
"F:\python exerciese\venv\Scripts\python.exe" "F:/python exerciese/55.py"
[6, 5, 4, 3, 2, 1]

作业二、给用户9次机会,随机猜1-10个数字。如果随机的数字和用户输入的数字一致则表示正确,如果不一致则表示错误。最终结果要求用户怎么也猜不对。

lst = [1,2,3,4,5,6,7,8,9,10]
for i in range(len(lst)-1):
    number = int(input('请输入一个数字:'))
    print('对不起,没有猜对')
    for j in range(len(lst)-1):
        if number == lst[j]:
            del lst[j]
print('正确号码是:',lst[0])
"F:\python exerciese\venv\Scripts\python.exe" "F:/python exerciese/55.py"
请输入一个数字:2
对不起,没有猜对
请输入一个数字:3
对不起,没有猜对
请输入一个数字:4
对不起,没有猜对
请输入一个数字:5
对不起,没有猜对
请输入一个数字:6
对不起,没有猜对
请输入一个数字:7
对不起,没有猜对
请输入一个数字:8
对不起,没有猜对
请输入一个数字:9
对不起,没有猜对
请输入一个数字:10
对不起,没有猜对
正确号码是: 1
lst = [1,2,3,4,5,6,7,8,9,10]
number = int(input('请输入一个数字:'))
lst.remove(number)
i = 0
while i < 8:
    i += 1
    number2 = int(input('答案不对,继续尝试:'))
    lst.remove(number2)
else:
    print('正确号码是:',lst[0])
"F:\python exerciese\venv\Scripts\python.exe" "F:/python exerciese/56.py"
请输入一个数字:1
答案不对,继续尝试:2
答案不对,继续尝试:3
答案不对,继续尝试:4
答案不对,继续尝试:5
答案不对,继续尝试:6
答案不对,继续尝试:7
答案不对,继续尝试:8
答案不对,继续尝试:9
正确号码是: 10
import random
lst = []
i = 0
while i < 9:
    number = int(input('请输入一个数字:'))
    lst.append(number)
    print('对不起,没有猜对!')
    i += 1
while True:
    number_x = random.randint(1,10)
    if number_x in lst:
        continue
    else:
        break
print('正确号码是:',number_x)
"F:\python exerciese\venv\Scripts\python.exe" "F:/python exerciese/56.py"
请输入一个数字:1
对不起,没有猜对!
请输入一个数字:2
对不起,没有猜对!
请输入一个数字:3
对不起,没有猜对!
请输入一个数字:4
对不起,没有猜对!
请输入一个数字:5
对不起,没有猜对!
请输入一个数字:6
对不起,没有猜对!
请输入一个数字:7
对不起,没有猜对!
请输入一个数字:8
对不起,没有猜对!
请输入一个数字:9
对不起,没有猜对!
正确号码是: 10

Process finished with exit code 0

作业三、有二个列表lst1=[11,22,33,]lst2=[22,33,44],获取内容相同的元素

lst1 = [11,22,33]
lst2 = [22,33,44]
for l1 in lst1:
    for l2 in lst2:
        if l1 == l2:
            print(l1)
"F:\python exerciese\venv\Scripts\python.exe" "F:/python exerciese/57.py"
22
33
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值