一、字符串
1.字符串基础
1)作用:用于描述姓名、性别、地址等信息
2)定义方式:单引号或者双引号以及三引号内添加字符
注:day3中介绍
name = ‘zhang‘ user_name = "alex" info = ‘‘‘ 实现多行字符串输入 ‘‘‘
2.字符串常规操作+内置方法
1)strip()、lstrip()、rstrip()
# 去除空格或者相应字符 msg = ‘hello my name is zhang...‘ # 去除左边字符 print(msg.lstrip(‘hello‘)) # 去除右边字符 print(msg.rstrip(‘...‘))
2)lower()、upper()
# 将字符串字符转换成小写 print(‘Egon‘.lower()) # 将字符串字符转换成大写 print(‘egon‘.upper())
3)startwith()、endswith()
# 判断是否以相应的字符串开头或者结尾 print(msg.startswith(‘hello‘)) print(msg.endswith(‘...‘))
4)format()
# 格式化字符串的函数,此函数可以快速处理各种字符串 # 第一种:{} s1 = ‘my name is %s,my age is %s‘ %(‘egon‘,18) s2 = ‘my name is {},my age is {}‘.format(‘egon‘,18) print(s1) print(s2) # 第二种:通过索引 s3 = ‘my name is {2},my age is {1}‘.format(‘egon‘,18,‘zhang‘,33) print(s3) # 第三种:通过key关键字 s4 = ‘my name is {name},my age is {age}‘.format(name=‘egon‘,age=18) print(s4)
5)spilt()、rspilt()
# 从左或者从右边开始切片,可设置切片次数 mes = ‘egon|123|/sjs|32‘ print(mes.split(‘|‘,1)) print(mes.rsplit(‘|‘,2))
6)join()
# 将类别转换成字符串 # 强调:join方法传入的列表必须是包含str类型的元素 cmd = ‘egon:123:/sjs:32‘ # # 按照‘:‘切片,保存为列表 l = cmd.split(‘:‘) # 按照‘:‘,将列表的元素组合成字符串 res = ‘:‘.join(l) print(l) print(res)
7)replace(self,old,new,count)
# 字符串替换,conut替换的次数 mesage = ‘zhang is zhang sjjj dcskd‘ print(mesage.replace(‘zhang‘,‘ch‘,1)) print(mesage.replace(‘zhang‘,‘bo‘,2))
8)isdigit()
# 判断字符创中是否都是整数,是返回True反之返回False print(‘100‘.isdigit())
3.其他内置操作
1)求元素索引、长度、数量
find(),rfind(),index(),rindex(),count()
2)对齐、补全操作
center(),ljust().rjust(),zfill()
3)制表符
expandtabs()
4)captalize()
大写变小写小写变大写
swapcase()
首字母大写
title()
5)is其他
isalpha()
判断字符是否全部为字母
isalnum()
判断字符是否为字母和数字组成
总结:
1.只能存一个值
2.有序
3.不可变
二、列表
1.列表基础:
1)作用:存放多个值
2)定义方式:[ ]内以逗号为分隔多个元素,列表内元素无类型限制
# l=[‘a‘,‘b‘,‘c‘] #l=list([‘a‘,‘b‘,‘c‘]) l1=list(‘hello‘) print(l1)
2.列表常规操作+内置方法
1)按索引存取值(正向存取+反向存取):即可改也可以取
l=[‘a‘,‘b‘,‘c‘] print(id(l)) print(l[-1]) l[0]=‘A‘ print(id(l)) print(l)
2)切片(顾头不顾尾,步长)
stus=[‘alex‘,‘egon‘,‘wxx‘,‘yxx‘,‘lxx‘] print(stus[1:3]) #输出 1-2 个元素
3)求列表长度
stus=[‘alex‘,‘egon‘,‘wxx‘,‘yxx‘,‘lxx‘] print(len(stus))
4)成员运算in 和 not in
stus=[‘alex‘,‘egon‘,‘wxx‘,‘yxx‘,‘lxx‘] # in 存在则返回True print(‘alex‘ in stus) # not in 不存在则返回True print(‘zhang‘ not in stus)
5)append()、insert()
# 追加 stus=[‘alex‘,‘egon‘,‘wxx‘,‘yxx‘,‘lxx‘] stus.append(‘wupei‘) stus.append(‘peiqi‘) print(stus) # 插入,可指定位置插入 stus=[‘alex‘,‘egon‘,‘wxx‘,‘yxx‘,‘lxx‘] stus.insert(1,‘艾利克斯‘) print(stus)
6)pop()、remove()
stus=[‘alex‘,‘egon‘,‘wxx‘,‘yxx‘,‘lxx‘] # del stus[1] # print(stus) # stus.pop(1) stus.pop() # 默认删除末尾 print(stus) res1=stus.remove(‘alex‘) # 单纯的删除 print(res1)
7)while循环取值和for循环以及补充
stus = [‘zhang‘,‘egon‘,‘wxx‘,‘yxx‘,‘lss‘] # 方法一:依赖于索引 i = 0 while i < len(stus): print(stus[i]) i += 1 for + else进行索引循环 for i in range(len(stus)): print(i,stus[i]) else: print(‘取值完毕!‘) # 方法二:不依赖索引 for item in stus: print(item)
3.需要掌握的操作
1)count()
stus = [‘zhang‘,‘egon‘,‘wxx‘,‘yxx‘,‘lss‘,‘zhang‘] # 统计列表中某个元素的个数print(stus.count(‘zhang‘))
2)extend()、append()
# 添加多个元素stus.extend([‘a‘,‘hh‘,‘ss‘])print(stus) # append()一次只能添加一个元素
stus.append([‘sfeedd‘,‘dddf‘,‘sdew‘])print(stus)
3)index()
# 求元素索引print(stus.index(‘wxx‘))
4)翻转列表
stus.reverse() print(stus)
5)sort()
# 排序 # 字母大小排序 A-Z < a-z,只能比较同类型的数值,对于有索引值的 # 直接按照位置一一对应进行比较 stus.sort() print(stus)
三、练习
1.堆栈和队列
list_1 = [] # 1.队列:先进先出 # 入队列 list_1.append(‘first‘) list_1.append(‘second‘) list_1.append(‘third‘) print(list_1) # 出队列 print(list_1.pop(0)) print(list_1.pop(0)) print(list_1.pop(0))
# 堆栈---先进后出
#入栈
list_1.append(‘first‘) list_1.append(‘second‘) list_1.append(‘third‘) print(list_1) # 出栈 # pop()默认从列表的末尾删 print(list_1.pop()) print(list_1.pop()) print(list_1.pop()) # insert()实现 for i in range(3): list_1.insert(i,‘zhang_%d‘ % i) print(list_1) print(list_1.pop()) print(list_1.pop()) print(list_1.pop())
总结:
1.可存多个值
2.有序
3.可变
四、作业
1.九九乘法口诀
for i in range(1,10): for j in range(1,i+1): res = i*j print("%s*%s=%s" %(i,j,res),end=‘ ‘) print()
2.金字塔
max_layer = 5 for current_layer in range(1,max_layer+1): for i in range(max_layer - current_layer): print(‘ ‘,end=‘‘) for j in range(2*current_layer-1): print(‘*‘,end=‘‘) print()
3.购物车
# 实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格, # 购买个数加入购物列表,如果输入为空或其他非法输入则要求用户重新输入 msg_dic={ ‘apple‘:10, ‘tesla‘:100000, ‘mac‘:3000, ‘lenovo‘:30000, ‘chicken‘:10, } tag = True shopping_car = [] while tag: print(‘商品信息:‘) for key in msg_dic: print(key,msg_dic[key]) goods_name = input(‘输入商品名称>>‘).strip() if goods_name not in msg_dic: print(‘输入的商品有误,重新输入...‘) continue while tag: goods_count = input(‘购买数量>>‘) if goods_count.isdigit(): goods_count = int(goods_count) break price = msg_dic[goods_name] info = { ‘goods_name‘:goods_name, ‘price‘:price, ‘goods_count‘:goods_count } shopping_car.append(info) print(shopping_car) option = input("去结账输入‘N/n‘,继续购买输入‘Y/y‘>>") if option == ‘Y‘ or option == ‘y‘: pass elif option == ‘N‘ or option == ‘n‘: tag = False