python中基础知识(四)

1.定义列表

#列表和元组-----序列
#序列 --- 是数据元素的集合,数据元素可以是数值、字符串、布尔类型、对象等
#序列的类型:列表和元组

#列表
name="Bill"
names=["bill","mary","john"]#[]为列表标志
#混合类型列表,因为Python是一种动态类型的语言,数据类型是后期绑定的
values=["bills",True,False,10,20,20.5,[1,2,3,4,5]]
#print(values)

for vl in values:
    pass
    #print(vl)

#序列的基本操作---通过索引获取序列的值
#通过序号表示一个序列元素值,序号称为索引
#序号从0开始---python中的索引可以是负号
'''
print(names[0])
print(names[1])
print(names[1][2])
print(names[-1])
print(names[-2])
'''
'''
str0='hello world'
print(str0[6])
print(str0[5])
print("abcdefg"[5])
print("abcdefg"[1:4])
print("abcdefg"[-1])
'''
monthsZH=['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月']
year=input('year:')
month=input('month:')
day=input('day:')
month_num=int(month)
month=monthsZH[month_num-1]
print("year:",year,"month:",month,"day:",day)

2 序列分片

#序列的分片--slicing 
#分片:从一个序列中获取子序列 
#总结:分片有三个参数:开始索引:结束索引:步长-默认为1.,开始索引和结束索引可以是【正数 0 负数】 步长可以是【正数 负数】,开始索引和结束索引和步长也可以省略
'''
url="https://www.hao123.com/?tn=57028281_hao_pg"
print(url)
#分片可以截取子字符串
print(url[0:5])
print(url[6:8])
print(url[8:])
print(url[8:len(url)])
'''
#分片如何截取列表
numbers=[1,2,3,4,5,6,7,8]
'''
print(numbers[1:3])#[2, 3]
print(numbers[1:6])#[2, 3, 4, 5, 6]
print(numbers[-3:-1])#[6, 7]
print(numbers[-1:-3])#[]
print(numbers[-3:1])#[]
print(numbers[-7:5])#[2, 3, 4, 5]

print(numbers[-7:5])#[2, 3, 4, 5]
print(numbers[:len(numbers)])#[1, 2, 3, 4, 5, 6, 7, 8]
print(numbers[2:])#[3, 4, 5, 6, 7, 8]
#print(numbers[2,4,6])#error
print(numbers[:])#[1, 2, 3, 4, 5, 6, 7, 8]
'''
numbers1=numbers[:]
numbers1[1]=900
#print(numbers)#[1, 2, 3, 4, 5, 6, 7, 8]
#print(numbers1)#[1, 900, 3, 4, 5, 6, 7, 8]

#设置分片步长--默认步长是1
#获取奇数序列+偶数序列
print(numbers[0::2])#[1, 3, 5, 7]
print(numbers[1::2])#[2, 4, 6, 8]
print(numbers[len(numbers):2:-1])#[8, 7, 6, 5, 4]
print(numbers[len(numbers):2:-1])#[8, 7, 6, 5, 4]
print(numbers[::-1])#[8, 7, 6, 5, 4, 3, 2, 1]
print(numbers[::-2])#[8, 6, 4, 2]
print(numbers[::2])#[1, 3, 5, 7]

3. 序列的乘法

#序列的乘法
#序列和一个整数相乘
'''
s='a'
print(12*s)#aaaaaaaaaaaa
print(12*'abc')#abcabcabcabcabcabcabcabcabcabcabcabc
print(12*'a')#aaaaaaaaaaaa

numbers=[1,2,3,4,5]
print(3*numbers)#[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
'''
#下面打印一个三角符号
"""
[' ',' ',' ',' ',' ','*',' ',' ',' ',' ',' ']
[' ',' ',' ',' ','*','*','*',' ',' ',' ',' ']
[' ',' ',' ','*','*','*','*','* ',' ',' ',' ']
[' ',' ','*','*','*','*','*','* ','*',' ',' ']
[' ','*','*','*','*','*','*','* ','*','*',' ']
['*','*','*','*','*','*','*','* ','*','*','*']
"""
allShows=[]
irow=1
iloop=0
while(irow<7):
    spaceNum=6-irow;
    starNum=11-spaceNum*2;
    showTmp=spaceNum*' '+starNum*"*"+spaceNum*' '
    print(showTmp)
    #print(spaceNum*' ',starNum*"*",spaceNum*' ');
    allShows.append(showTmp)
    irow+=1
'''打印出来的图形如下:
      *      
     ***     
    *****    
   *******   
  *********  
 *********** 
'''
#for skey in allShows:
#    print(skey)

intCnt=len(allShows)
iloop=intCnt
while(iloop>=1):
    print(allShows[iloop-1])
    iloop-=1;
#print(allShows[intCnt::-1],sep='5555', end='44444')    
#print(intCnt)
print(type(allShows))
print(type(allShows[0]))
print(len(allShows[0]))

4.检查某个值是否属于一个序列

#检查某个值是否属于一个序列
#in运算符
str1='abcdefghijklmn'
print('a' in str1)#True
print('1' in str1)#False

accounts=[
          ['aaa','123'],
          ['bbb',456],
          ['ccc',789]
          ]
account=input('account:')
key=input('key:')
#key=int(key)
if [account,key] in accounts:
    print('ok')
else:
    print('error')

5.求序列的长度、最大值、最小值

#求序列的长度、最大值、最小值
str1='abcdefghijklmn'
print(len(str1))#14
print(min(str1))#a
print(max(str1))#n

accounts=[
          ['aaa','123'],
          ['bbb',456],
          ['ccc',789]
          ]
print(len(accounts))#3
print(min(accounts))#['aaa', '123']
print(max(accounts))#['ccc', 789]

values=[34,12.5,8,-99,100.859,40,38]
print(len(values))#7
print(min(values))#-99
print(max(values))#100.859

#print(len(4,5,1,2,9,0.5))#7
mr=min(4,5,1,2,9,0.5)
print(mr)#0.5
print(min(4,5,1,2,9,0.5))#0.5
#mx=max(4,5,1,2,9,0.5)
print(max(4,5,1,2,9,0.5))#9
#print(max(4,5,1,2,9,0.5,True,'abc','r'))#TypeError: '>' not supported between instances of 'str' and 'int'

6.列表的 赋值、删除列表元素、分片赋值

#列表的基本操作
#赋值、删除列表元素、分片赋值

#列表元素的赋值
valuess=['bill','gates','john']
valuess[0]='kityy'
valuess[1]=10.4
valuess[-1]='abcd'
#print(valuess)

#删除列表中的元素
numbers=[1,2,3,4,5,6,7,8,9]
del numbers[3]
#print(numbers)

#分片赋值
names=["name1",'name2','name3','name4','name5','name6']
#print(names[3:])
#names[3:]=['hello1','hello2','hello3','hello4']
names[3:]=['hello1']
#print(names[3:])
#print(names)
names[1:3]=['hello33333']
#print(names)

name=list('john')
print(name)
name[0:2]='kikky'
print(name)

del name[3:6]
print(name)

name[0:2]=[]
print(name)

7. 列表方法

#列表方法
list1=[1,2,3,4,5,6,7,8,9]
list1.append(8)#<class 'list'>: [1, 2, 3, 4, 5, 6, 7, 8, 9, 8]

list2=list1.copy()#list2:<class 'list'>: [1, 2, 3, 4, 5, 6, 7, 8, 9, 8]
list2[0]='xer' 
#list1 与 list2 彼此不受影响。

list3=list1[:]
list3[0]='xer'#list1 与 list3 彼此不受影响。

list2.clear()
res=list1.count(4)#list1=<class 'list'>: [1, 2, 3, 4, 5, 6, 7, 8, 9, 8] res=1
res=list1.extend([45,6,7])#list1:<class 'list'>: [1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 45, 6, 7]
res=list1.index(4, 2, 4)#res=3
res=list1.insert(3, [456,890,222])#list1:<class 'list'>: [1, 2, 3, [456, 890, 222], 4, 5, 6, 7, 8, 9, 8, 45, 6, 7]
res=list1.pop(2)#list1:<class 'list'>: [1, 2, [456, 890, 222], 4, 5, 6, 7, 8, 9, 8, 45, 6, 7]
res=list1.remove(6)#list1:<class 'list'>: [1, 2, [456, 890, 222], 4, 5, 7, 8, 9, 8, 45, 6, 7]
list2=list1.reverse()#list1:<class 'list'>: [7, 6, 45, 8, 9, 8, 7, 5, 4, [456, 890, 222], 2, 1]  list2:None
#print(list1)
#print(list2)
#print(list1.reverse())

#print(list1)
del list1[9]#list1:<class 'list'>: [7, 6, 45, 8, 9, 8, 7, 5, 4, 2, 1]
print(list1)
print(list1.sort())#结果是 [7, 6, 45, 8, 9, 8, 7, 5, 4, 2, 1]
print(list1)

liststr=["abc123",'34abc','56idyui'];
liststr.sort()
print(liststr)#['34abc', '56idyui', 'abc123']

#下面的list1与list4都会改变,是一个对象
list4=list1
print(list1)
print(list4)
list4[0]='axer'
print(list1)#['axer', 2, 4, 5, 6, 7, 7, 8, 8, 9, 45]
print(list4)#['axer', 2, 4, 5, 6, 7, 7, 8, 8, 9, 45]

list4[3:3]='rtref'
print(list4)#['axer', 2, 4, 'r', 't', 'r', 'e', 'f', 5, 6, 7, 7, 8, 8, 9, 45]

list1=[1,2,3,4,5]
print(list1)#[1, 2, 3, 4, 5]
#list1[3:3]='rtref'
#print(list1)#[1, 2, 3, 'r', 't', 'r', 'e', 'f', 4, 5]

#list1[3:2]='good'
#print(list1)#[1, 2, 3, 'g', 'o', 'o', 'd', 4, 5]
#list1[3:1]='good'
#print(list1)#[1, 2, 3, 'g', 'o', 'o', 'd', 4, 5]

#list1[3:100]='good'
#print(list1)#[1, 2, 3, 'g', 'o', 'o', 'd', 4, 5]
#list1[3:-100]='good'
#print(list1)#[1, 2, 3, 'g', 'o', 'o', 'd', 4, 5]
#list1[5:100]='good'
#print(list1)#[1, 2, 3, 4, 5, 'g', 'o', 'o', 'd']
list1[50:100]='good'
print(list1)#[1, 2, 3, 4, 5, 'g', 'o', 'o', 'd']

#list1.pop()
#print(list1)#[1, 2, 3, 4, 5, 'g', 'o', 'o']
list1.pop(0)
print(list1)#[2, 3, 4, 5, 'g', 'o', 'o', 'd']
#如果不想让转换后的内容影响原来的list.可以copy一份。

#使用sorted函数
x=[1,3,4,0]
y=sorted(x)
print(x)#[1, 3, 4, 0]
print(y)#[0, 1, 3, 4]

x=[1,3,4,0]
y=sorted(x,reverse=True)
print(x)#[1, 3, 4, 0]
print(y)#[4, 3, 1, 0]

8.元组

#元组 tuple -同list很相似,只是不能修改
#()
a=()
b=(1,2,3)
c=1,2,3,4,5
print(c)
print(type(c))#<class 'tuple'>

x=30,
print(x)#(30,)
print(type(x))#<class 'tuple'>

#列表是[],元组是()
print((12)*12)#144 出错的,把12当成数值
print((12,)*12)#(12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12)

'''
为什么还需要元组?
1.元组可以在映射中作为键值使用,而列表是不能作为健值使用
2.很多内建函数和方法,返回值就是元组,所以在使用这些函数和方法的时候,需要用元组。
元组支持所有的序列操作,但是不支持修改一类的,比如 赋值、插入、修改等。
'''

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值