Python全栈-day4-语法基础2
一、字符串
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(''.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
Python全栈-day4-语法基础2的更多相关文章
- Python全栈开发【基础四】
Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...
- Python全栈开发【基础三】
Python全栈开发[基础三] 本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...
- Python全栈开发【基础二】
Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...
- Python全栈开发【基础一】
Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与wh ...
- python全栈开发day110-Flask基础语法
1.Flask 初识: 短小精悍,三方支持的组件多 稳定性较差 2.三行 :启动flask服务 from flask import Flask app = Flask(__name__) app.ru ...
- Python全栈开发-Day3-Python基础3
本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3.递归 4.函数式编程介绍 5.高阶函数 1.函数基本语法及特性 三种编程范式: 1.面向过程:过程——> def 2.面向对象:类— ...
- Python全栈之路-----基础篇
Python诞生 Python是著名的”龟叔“Guido van Rossum(吉多·范罗苏姆)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Python语法很多来自C,但又受到 ...
- Python全栈-day2-day3-语法基础1
1.什么是变量,为什么需要变量 变量即变化的量,衡量现实中实物的状态:程序执行的本质就是一系列的状态变化,变是程序本身执行的直接体现,因此程序的执行需要这种机制将执行状态以及状态的变化保存下来. 1) ...
- Python全栈开发-Day4-Python基础4
本节内容 匿名函数 装饰器 列表生成式.迭代器&生成器 内置函数 Json & pickle 数据序列化 1. 匿名函数 匿名函数就是不需要显式的指定函数 1 2 3 4 5 6 7 ...
随机推荐
- 转:HashMap实现原理分析(面试问题:两个hashcode相同 的对象怎么存入hashmap的)
原文地址:https://www.cnblogs.com/faunjoe88/p/7992319.html 主要内容: 1)put 疑问:如果两个key通过hash%Entry[].length得 ...
- Excel--数据对比方法
1.函数对比: 适用于两列数据对比 =IF(EXACT(A2,B2)=TRUE,"相同","不同") 2.快捷键对比: 适用于少数数据对比 选中对比两列数据,快 ...
- 【Python全栈-后端开发】Django入门基础
Django基础知识 一. 什么是web框架? 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的 ...
- 【PyQt5-Qt Designer】QComboBox-下拉列表框
知识点: 1.QComboBox下拉列表框的一些常用方法 2.下拉列表框常用信号使用方法 案例:选中下拉框选项时触发信号 #[str] 表示comboBox中的选择框内容如A B C D 等 self ...
- C#图解:第七章
C#图解第七章:类和继承 1.类继承 通过继承我们可以定义一个新类,新类纳入一个已经声明的类并进行扩展. 1.可以使用- 一个已经存在的类作为新类的基础..已存在的类称为基类(baseclass),新 ...
- es组合多个条件进行查询
GET /test_index/_search{ "query": { "bool": { "must": { "match&qu ...
- 帝国cms搜索关键字调用标签(showsearch)怎么用
前面ytkah介绍了如何让帝国CMS7.2搜索模板支持动态标签调用,现在我们来说说怎么调用帝国cms搜索关键字调用标签(showsearch).在帝国cms后台那边的使用方法:[showsearch] ...
- dedecms批量删除文档关键词可以吗
这几天在重新整服务器,几个站点都是用dedecms搭建的,版本相对比较早,虽然都已经打了补丁,但客户还是在纠结,所以就下载了新的系统进行搭建(注意编码要和原来的一样),导入数据,一切安好,可发现后台有 ...
- 20170927 Webservice发布指定账户进行访问
1. 搭建IIS 平台 于服务器A1 2.发布Webservice 到A1 我的问题在于(Webservice中方法中内容会对B1服务器的共享路径进行写入文件动作), 如何来控制网页使用特定的账户去访 ...
- VS 2017 安装测试
3月7日, VS 出了新的版本2017 安装效果如下: 不过官方说会改变VS 2015附件python 的方式,变成类似C++ 一样集成python语言包到VS中. 目前没有看见,大家如果有兴趣可以安 ...