52lmLM 发表于 2021-4-30 12:29

python自学第四天:第四章:列表+上一帖解答

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

a=['a','b','c','d']         #切片中0元素可以省略
a[:2]                      #输出['a','b']
a                      #输出['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='hhhhh'                        #此时,a列表已经变成了['li','hhhhh','eff','ggg','hhhf']

a=['li','looo','eff','ggg','hhhf']
a=a
                        #此时,a列表已经变成了['li','eff','eff','ggg','hhhf']
a=['li','looo','eff','ggg','hhhf']
a=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
'''
#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+
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)
   
'''
'''
#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
b=cat
c=cat

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=             #默认从小到大
a.sort()
print(a)

a=
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)
print(name[-3])
print(name)
for i   in name:
    print('*****+'+i+'*****')
'''
#列表中的元素更改的,'字符串'是不可更改的,不能对字符串里的元素进行赋值
#如果想使用新的字符串,必须赋值一个新的变量,利用切片和连接重新赋值一个变量,而列表被重新赋值时会直接替换
'''
name='have a cat'
newname=name+' the '+name
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='hello'                  #改变b列表的字符
print(a)                        #ab对应的列表都发生了改变
print(b)
'''
#4.7.1 标识和id()函数:可以使用id()命令来输出字符串或变量在系统中的编号
#4.7.2 传递引用
#4.7.3 copy模块和copy()和deepcopy()函数
'''
importcopy
a=['A','B','C','D']
print(id(a))
b=copy.copy(a)
print(id(b))
b='hello'
print(b)
'''
'''
#4.8小程序:C的生命游戏,这个研究了很久,这个程序对新手真的不友好。

import random,time,copy
kuandu=60
gaodu=20
#创建一个格子的列表
nextcell=[]
for xin 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,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=='#':
                numlinju+=1
            if bianhuacell=='#':
                numlinju+=1
            if bianhuacell=='#':
                numlinju+=1
            if bianhuacell=='#':
                numlinju+=1
            if bianhuacell=='#':
                numlinju+=1
            if bianhuacell=='#':
                numlinju+=1
            if bianhuacell=='#':
                numlinju+=1
            if bianhuacell=='#':
                numlinju+=1
            if bianhuacell=='#'and(numlinju==2or numlinju==3):
                nextcell='#'
            elif bianhuacell==' 'and numlinju==3:
                nextcell='#'
            else:
                nextcell=' '
    time.sleep(1)
'''

Anyling 发表于 2021-4-30 12:42

每天学习,快乐生活

iYolo丶moye 发表于 2021-4-30 12:58

shaoji2008 发表于 2021-4-30 13:07


好好学习py,天天向上

苏紫方璇 发表于 2021-4-30 13:10

插入代码里写Markdown是不生效的,编辑器里有MD的按钮,可以使用那个进行插入

dongdiyu789 发表于 2021-4-30 13:15


当年学到这里就一心退坑了{:1_908:}

卖血上网 发表于 2021-4-30 13:43

a=['a','b','c','d']
a                      #输出['a','b','c','d']
不应该是abc么
页: [1]
查看完整版本: python自学第四天:第四章:列表+上一帖解答