码迷,mamicode.com
首页 > 编程语言 > 详细

Python全栈-day4

时间:2018-03-22 19:30:34      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:lower   gif   abs   需要   开始   合成   去除   break   ==   

一、字符串

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
View Code

 

Python全栈-day4

标签:lower   gif   abs   需要   开始   合成   去除   break   ==   

原文地址:https://www.cnblogs.com/mdzzbojo/p/8625400.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!