吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1575|回复: 6
收起左侧

[Python 转载] python自学第四天:第四章:列表+上一帖解答

[复制链接]
52lmLM 发表于 2021-4-30 12:29
进入了第四天的学习
在上一期的”温故而知新“环节里,有朋友问我:
我看你学的很快,请问你学完就都能背下来了?不给自己留一二天的时间吗?我咋看着那么费劲啊,还是你厉害?
其实我真的没有认为我学的很快,因为python深似海,我刚学习到了一些概念性的东西
如果真的要说自学语言这个问题的话
第一有一定的英语基础,便于理解语句(翻译过来和中文说话其实差不多),理解了以后在书写几遍运行几遍起码三天内不会玩
第二我明确地知道自己想要什么样的效果,有学习的动力
第三有学习方法,一个不太好理解的语句我会反复演练反复推敲。
今天学习的内容是列表内容大致包括:列表的数据类型及使用、增强赋值操作、序列数据类型、引用和一个小程序
[Python] 纯文本查看 复制代码
#第四章 列表
#4.1列表是一个值,[]是它起止的标志,想字符串中''标志着字符的起止一样,体现形式也是['a','b','c','d'],也可以是[]空列表
#列表的取值:
'''
a=['a','b','c','d']
a[1]='a'
a[2]='b'
a[3]='c'
a[4]='d'
print('hello,'+a[0])        #列表中括号中的数字代表列表的第几个元素,数字超出范围将报错,数字只能是整数
'''
'''
a=['a','b','c','d'],[1,2,3]
a=[0]                       #输出['a','b','c','d'],直接输出第0个列表
a[0][2]                     #输出c,表示第0个列表中的第2个值
'''
'''
a=['a','b','c','d']         #负数也可以参与抽取
a=[-1]                      #输出d,第-1位就是倒数第一个
'''
'''
#利用切片取得部分列表            #切片中第二个值不予显示,是<+,>的关系
a=['a','b','c','d']
a[0:4]                      #输出['a','b','c','d']
a[1:3]                      #输出['b','c']
a[0:-1]                      #输出['a','b','c',]

a=['a','b','c','d']         #切片中0元素可以省略
a[:2]                      #输出['a','b']
a[1:]                      #输出['b','c','d']
a[:]                      #输出['a','b','c','d']
'''
#len()可以取得列表中元素的总数
'''
a=['li','looo','eff','ggg','hhhf']
len(a)                      #输出5,输出元素的个数

a=['li','looo','eff','ggg','hhhf']
a[1]='hhhhh'                        #此时,a列表已经变成了['li','hhhhh','eff','ggg','hhhf']

a=['li','looo','eff','ggg','hhhf']
a[1]=a[2] 
                          #此时,a列表已经变成了['li','eff','eff','ggg','hhhf']
a=['li','looo','eff','ggg','hhhf']
a[1]=2                              #此时,a列表已经变成了['li','eff','2','ggg','hhhf']

#列表可以像字符串一样加减

['li','looo','eff','ggg','hhhf']+['a','b','c','d']  #输出['li','looo','eff','ggg','hhhf','a','b','c','d']
['a','b','c','d']*3                                 #输出['a','b','c','d','a','b','c','d','a','b','c','d']

#列表元素的删除
a=['li','looo','eff','ggg','hhhf']                  #输出a=['li','looo','ggg','hhhf']
del a[2]
'''
#4.2利用列表:列表的作用是储存变量,如果你编程中需要很多变量,可以用列表储存,并且更容易增删改查
'''
catname1='1'                #如果数量改变,需要修改等会非常麻烦
catname2='2'
catname3='3'
catname4='4'
catname5='5'
'''
'''
#改进
print('输入猫1的名字:')
catname1=input()
print('输入猫2的名字:')
catname2=input()
print('输入猫3的名字:')
catname3=input()
print('输入猫4的名字:')
catname4=input()
print('输入猫5的名字:')
catname5=input()
print('猫的名字是:')
print(catname1+' '+catname2+' '+catname3+' '+catname4+' '+catname5)
'''
'''
#再改进
catnames=[]                 #猫的名字列表
while True:                 #启用while循环
    print('请输入猫的名字'+str(len(catnames))+'(或者输入"N"以停止')   #输出猫的名字列表的数字
    names=input()               #输入名字
    if names=='':               #如果是空就结束程序
        break
    catnames=catnames+[names]
print('猫的名字是')
for names in catnames:
    print(names)
'''
#列表中的循环:以下程序可以有效的将一个列表里的值提取出来
'''
list=['aa','bb','cc','dd','ee','ff','gg']
for i in range(len(list)):
    print('在该列表中指引出第'+str(i)+'个值是'+list[i])
    
'''
'''
#in和not in

mypet=['aa','bb','cc','dd']
print('请输入你的宠物名字')
name=input()
if name not in mypet:
    print('我这里没有你的宠物')
elif name in   mypet:
    print('你的宠物在这里')
'''
'''
#多重赋值技巧:这个小技巧赋值的数量必须和列表的长度相等
cat=['f','fa','fat']                #这种形式过于缓慢
a=cat[0]
b=cat[1]
c=cat[2]

cat=['f','fa','fat']                #这种会更快
0,1,2=cat

#enumerte函数与列表搭配使用,每次可以返回两个值
cat=['f','fa','fat']
for index,item in enumerate(cat):
    print('指引出'+str(index)+'在列表里'+item)
'''
'''
#random.choies():选择列表中的一个和random.shuffle():给列表重新排序 与列表联用
import random
cat=['f','fa','fat']
print(random.choice(cat))
print(random.choice(cat))
print(random.choice(cat))
'''
'''
import random
ren=['f','fa','fat']
random.shuffle(ren)
print(ren)
'''
'''
#4.3增强赋值语句:a=a+1 a+=1其他操作符雷同
#4.4方法
#用index查找值
ren=['f','fa','fat']            #可以返回列表中值所在的位置
print(ren.index('f'))
'''
'''
#用append()和insert()在列表中添加值      这个方法只能用于同格式之间的添加
ren=['f','fa','fat']            #用append从列表里添加一个值
ren.append('fat')
print(ren)

ren=['f','fa','fat']            #在某某位置增加一个值
ren.insert(1,'chaa')
print(ren)
'''
'''
#用remove()删除值           如果知道名字删除,用remove很好用,如果知道位置,就用del删除
ren=['f','fa','fat']
ren.remove('f')
print(ren)

ren=['f','f','fa','fat']    #如果有重复值,remove只能删除一个
ren.remove('f')
print(ren)
'''
'''
#用soft给列表排序
a=[2,3,4,7,8,-1,-6]             #默认从小到大
a.sort()
print(a)

a=[2,3,4,7,8,-1,-6]
a.sort(reverse=True)            #添加reverse=True条件以倒叙
print(a)

a=['a','d','b','c','g']             #默认从A到Z
a.sort()
print(a)

a=['a','A','C','c','g','G']             #添加条件实现控制大小写
a.sort(key=str.lower)
print(a)
'''
'''
#使用severse()翻转列表中的值
a=['a','d','b','c','g']
a.reverse()
print(a)
'''
#4.5
#4.6序列数据类型  列表不是唯一表示序列值的数据类型
'''
name='zooopoz'
print(name[0])
print(name[-3])
print(name[0:3])
for i   in name:
    print('*****+'+i+'*****')
'''
#列表中的元素更改的,'字符串'是不可更改的,不能对字符串里的元素进行赋值
#如果想使用新的字符串,必须赋值一个新的变量,利用切片和连接重新赋值一个变量,而列表被重新赋值时会直接替换
'''
name='have a cat'
newname=name[0:4]+' the '+name[7:10]
print(newname)
'''
'''
#元组数据类型:和列表有两点不同,第一点是用()表示,第二点是不可以任意增删改里边的元素,其余的部分几乎和列表一样
#使用元组比使用列表运行快,另外,如果元组中只有一个元素,你可以在元素后边加一个逗号,告知系统这是一个元组
#你可以用list()和tuple()实现元组和列表的转换
#4.7引用:引用修改变量的值时,每个变量不会受影响,引用修改列表的值时,列表会全部改变

a=50            #给a赋值50:计算机创造了50的值
b=a             #给b赋值到a:计算机把50再次分配到了b
a=100           #当我们改变a的值,b的值不受影响
print(a)
print(b)

a=['a','A','C','c','g','G']     #创建了列表a
b=a                             #给b赋值等同于a的列表
b[2]='hello'                    #改变b列表的字符
print(a)                        #ab对应的列表都发生了改变
print(b)
'''
#4.7.1 标识和id()函数:可以使用id()命令来输出字符串或变量在系统中的编号
#4.7.2 传递引用
#4.7.3 copy模块和copy()和deepcopy()函数
'''
import  copy
a=['A','B','C','D']
print(id(a))
b=copy.copy(a)
print(id(b))
b[1]='hello'
print(b)
'''
'''
#4.8小程序:C的生命游戏,这个研究了很久,这个程序对新手真的不友好。

import random,time,copy
kuandu=60
gaodu=20
#创建一个格子的列表
nextcell=[]
for x  in range(kuandu):
    lie=[]
    for y in range(gaodu):
        if random.randint(0,1)==0:
            lie.append('#')
        else:
            lie.append(' ')
    nextcell.append(lie)
while True:
    print('\n\n\n\n\n\n')
    bianhuacell=copy.deepcopy(nextcell)
    #输出与效果呈现
    for y in range(gaodu):
        for x in range(kuandu):
            print(bianhuacell[x][y],end=' ')
        print()


    for x in range(kuandu):         #书中这个地方缩进有错误
        for y in range(gaodu):
            leftcoord=(x-1)%kuandu
            rightcoord=(x+1)%kuandu
            abovecoord=(y-1)%gaodu
            belowcoord=(y+1)%gaodu

            numlinju=0
            if bianhuacell[leftcoord][abovecoord]=='#':
                numlinju+=1
            if bianhuacell[x][abovecoord]=='#':
                numlinju+=1
            if bianhuacell[rightcoord][abovecoord]=='#':
                numlinju+=1
            if bianhuacell[leftcoord][y]=='#':
                numlinju+=1
            if bianhuacell[rightcoord][y]=='#':
                numlinju+=1
            if bianhuacell[leftcoord][belowcoord]=='#':
                numlinju+=1
            if bianhuacell[x][belowcoord]=='#':
                numlinju+=1
            if bianhuacell[rightcoord][belowcoord]=='#':
                numlinju+=1
            if bianhuacell[x][y]=='#'and(numlinju==2or numlinju==3):
                nextcell[x][y]='#'
            elif bianhuacell[x][y]==' 'and numlinju==3:
                nextcell[x][y]='#'
            else:
                nextcell[x][y]=' '
    time.sleep(1)
'''
image.png

免费评分

参与人数 3吾爱币 +6 热心值 +2 收起 理由
jaffa + 1 谢谢@Thanks!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
小夏爱破解 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Anyling 发表于 2021-4-30 12:42
每天学习,快乐生活
头像被屏蔽
iYolo丶moye 发表于 2021-4-30 12:58
shaoji2008 发表于 2021-4-30 13:07
苏紫方璇 发表于 2021-4-30 13:10
插入代码里写Markdown是不生效的,编辑器里有MD的按钮,可以使用那个进行插入
dongdiyu789 发表于 2021-4-30 13:15
爬虫01.png
当年学到这里就一心退坑了
卖血上网 发表于 2021-4-30 13:43
a=['a','b','c','d']
a[0:4]                      #输出['a','b','c','d']
不应该是abc么
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 16:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表