全栈Python教程day2

一、列表、元组操作

列表是我们以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作。

定义列表

names=[‘lv‘,‘shi‘,‘hai‘,‘ll‘]

结果:通过下标访问列表中的元素,下标从0开始计数

print(names[1])

切片:取多个元素

names=[‘lv‘,‘shi‘,‘hai‘,‘ll‘]

print(names[1:3])   #取下标1至下标3之间的数字,包括1但不包括3 

print(names[-1]) #取最后一个值print(names[-2:]) #取最后两个值
print(names[:3])#取前三个值

步长切片:

names=[‘1lv‘,‘#shi‘,‘Hai‘,[‘hh‘,‘kk‘],‘ll‘,‘fadfa‘]print(names[0:-1:2])#隔两个取值print(names[::2]) #0和-1都可以省略

追加:

names=[‘lv‘,‘shi‘,‘hai‘,‘ll‘]names.append(‘ls‘)

插入:

names=[‘lv‘,‘shi‘,‘hai‘,‘ll‘]names.insert(2,‘li‘) #数字代表下标,不能批量插入

修改:

names=[‘lv‘,‘shi‘,‘hai‘,‘ll‘]names[2]=‘liu‘ #把li改为liu,print(names)

删除:

方法一:

names=[‘lv‘,‘shi‘,‘hai‘,‘ll‘]names.remove(‘lv‘)#删除lvprint(names)

方法二:

names=[‘lv‘,‘shi‘,‘hai‘,‘ll‘]del names[0] #删除lv,方法二print(names)

方法三:

names=[‘lv‘,‘shi‘,‘hai‘,‘ll‘]names.pop() #默认不输入下标,删除最后一个值,输入下标后跟del用法一样print(names)

获取下标:

names=[‘lv‘,‘shi‘,‘hai‘,‘ll‘]print(names)print(names.index(‘shi‘))
names=[‘lv‘,‘shi‘,‘hai‘,‘ll‘]print(names)

print(names[names.index(‘shi‘)])

统计:

names=[‘lv‘,‘shi‘,‘hai‘,‘ll‘]print(names)

print(names.count(‘lv‘))

反转:

names=[‘lv‘,‘shi‘,‘hai‘,‘ll‘]print(names)
names.reverse()print(names)

排序:

names=[‘lv‘,‘shi‘,‘hai‘,‘ll‘]print(names)
names.sort()print(names)

扩展:

names=[‘lv‘,‘shi‘,‘hai‘,‘ll‘]

print(names)

names2=[1,2,3,4]

names.extend(names2)print(names,names2)

拷贝:

names=[‘1lv‘,‘#shi‘,‘Hai‘,‘ll‘,‘fadfa‘]

names2=names.copy()print(names)print(names2)

 浅copy:

names=[‘1lv‘,‘#shi‘,‘Hai‘,[‘hh‘,‘kk‘],‘ll‘,‘fadfa‘]

names2=names.copy()names[2]=‘海‘names[3][0]=‘HH‘print(names)print(names2)

import copynames=[‘1lv‘,‘#shi‘,‘Hai‘,[‘hh‘,‘kk‘],‘ll‘,‘fadfa‘]names2=copy.copy(names)#浅复制names[2]=‘海‘names[3][0]=‘HH‘#浅复制print(names)print(names2)

深copy:

import copynames=[‘1lv‘,‘#shi‘,‘Hai‘,[‘hh‘,‘kk‘],‘ll‘,‘fadfa‘]names2=copy.deepcopy(names)#深copynames[2]=‘海‘names[3][0]=‘HH‘print(names)

print(names2)

列表循环:

names=[‘1lv‘,‘#shi‘,‘Hai‘,[‘hh‘,‘kk‘],‘ll‘,‘fadfa‘]for i in names:    print(i)

元组

元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表

语法


1

names = ("alex","jack","eric")

它只有2个方法,一个是count,一个是index,完毕。

names = (‘lv‘,‘shi‘)print(names.count(‘lv‘))

names = (‘lv‘,‘shi‘)

print(names.index(‘lv‘))

程序练习

程序:购物车程序

需求:

  1. 启动程序后,让用户输入工资,然后打印商品列表
  2. 允许用户根据商品编号购买商品
  3. 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
  4. 可随时退出,退出时,打印已购买商品和余额

源代码如下:

product_list = [(‘Iphone‘,5800),(‘Mac pro‘,9800),(‘Bike‘,800),(‘Watch‘,1000),(‘Book‘,58)]shopping_list = []salary = input("Input your salary:")if salary.isdigit(): #判断工资是否为数字  isdigtit判断是否为数字salary = int(salary)    while True:        # for item in product_list:        #     print(product_list.index(item),item) #通过获取下标的方式来获取商品编号for index,item in enumerate(product_list):   #通过获取下标的方式来获取商品编号 enumerate表示取出列表的下标print(index,item)        user_choice =  input("请选择要买的物品:")        if user_choice.isdigit():            user_choice = int(user_choice)            if user_choice < len(product_list) and user_choice >=0:    #len 表示判断列表长度p_item = product_list[user_choice] #获取产品if p_item[1] <= salary: #买得起 p_item[1]表示商品价格shopping_list.append(p_item) #添加到购物车salary -= p_item[1]  #扣钱print("增加 %s 到购物车,您的余额是:\033[31;1m%s\033[0m"%(p_item,salary) ) #\033[31;1m%s\033[0m 将%s变色else:                    print("\033[41;1m您的余额只剩[%s]啦,还买个毛线啊!\033[0m"% salary)            else:                print("\033[31;1m商品不存在!!!\033[0m")        elif user_choice == ‘q‘:            print(‘-------shopping list-------‘)            for p in shopping_list:                print(p)            print("您的余额为:\033[21;1m%s\033[0m"%salary)            exit()        else:            print("\033[31;1m错误!!!\033[0m")else:    print("\033[31;1m请输入正确的工资!\033[0m")

字符串操作


name = "my \tname is shihai"print(name.capitalize()) #首字母大写print(name.count("i")) #统计print(name.center(50,"_"))#  把name放中间,并打印50个字符print(name.endswith("ai"))#判断字符串以什么结尾print(name.expandtabs(tabsize=30))#转成空格 跟name里的\t结合使用print(name.find("hai"))#查找hai并返回下标name = "my name is {name} and i am {year} old"print(name.format(name=‘lv‘,year=25))#格式化print(name.format_map({‘name‘:‘lv‘,‘year‘:12})) #format_map 里边是字典print(‘ab23‘.isalnum())#包含a到z 和所有的阿拉伯数字print(‘addA‘.isalpha())#纯英文字母print(‘122‘.isdecimal())#十进制print(‘1A‘.isdigit())#整数print(‘1 中文‘.isidentifier())#判断是不是一个合法的标识符(变量名)print(‘33.3‘.isnumeric())#判断是不是数字print(‘33A‘.isspace())#是不是空格print(‘33A‘.istitle())#是不是标题print(‘33A‘.isprintable())#是不是打印  tty文件 drive文件不能打印print(‘33A‘.isupper())#是不是大写print(‘,‘.join([‘1‘,‘2‘,‘3‘,‘4‘]))print(name.ljust(50,‘*‘))#长度为50,不足的用*补全print(name.rjust(50,‘_‘))#同上print(‘Aaadfs‘.lower())#大写变小写print(‘Aaadfs‘.upper())#小写变大写print(‘\nAaadfs‘.lstrip())#从左边去掉空格或回车print(‘Aaadfs\n‘.rstrip())#从右边去掉空格或回车print(‘    Aaadf\n‘.strip())#去掉空格或回车p = str.maketrans("abcdefli",‘1234#$56‘)#将前边的字符串与后边的字符串一一对应   可以用来生成随机密码print("alex li".translate(p))#结果为15#x 56print(‘lvshh‘.replace(‘h‘,‘H‘,1))#替换,如果有多个就在后边加上相对应的数字print(‘lv shi hai‘.rfind(‘i‘))#从左往右找,找到最右边的字符的下标print(‘1+2+3+4‘.split(‘+‘))#把字符串按括号内的字符分割成一个列表print(‘1+2\n+3+4‘.splitlines())#按换行来分割成列表print(‘Lv shi Hai‘.swapcase())#把大写转换成小写,小写转换成大写print(‘Lv shi Hai‘.title())#每个开头的字母大写print(‘Lv shi Hai‘.zfill(50))#指定宽度,不够的用0填充

字典的使用

字典一种key - value (键-值)的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。

语法:

info = {    ‘stu1101‘: "ll",    ‘stu1102‘: "xiaoming",    ‘stu1103‘: "wangli",}print(info)

字典的特性:

dict是无序的,字典是不需要下标的;

key必须是唯一的,so 天生去重;

实例:
info = {    ‘stu1101‘: "ll",    ‘stu1102‘: "xiaoming",    ‘stu1103‘: "wangli",}b = {    ‘stu1101‘: "lv",    1:3,    2:5}info.update(b)#将两个字典合并,中间有交叉的key就合并覆盖,没有交叉就创建print(info)c = dict.fromkeys([6,7,8],[1,{"name":"lv"},444])#初始化新的字典print(c)c[7][1][‘name‘] = "li"print(c)

print(info.items())#把字典转换成列表print(info["stu1101"])info["stu1101"]="丽丽"#修改数据info["stu1104"]="丽丽"#增加数据# del 删除del info["stu1104"]# info.pop 标准删除info.pop("stu1104")info.popitem()#随机删print(info.get("stu1104"))#查找,有就输出,没有就打印出noneprint(info.get("stu1103"))print("stu1101" in info)#info.has_key("1103")  python2中的用法

#多级字典嵌套及操作av_catalog = {    "欧美":{        "www.youporn.com": ["很多免费的,世界最大的","质量一般"],        "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],        "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],        "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]    },    "日韩":{        "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]    },    "大陆":{        "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]    }}av_catalog["大陆"]["1024"][1] += ",可以用爬虫爬下来"av_catalog.setdefault("大陆",{"www.baidu.com":[1,2]})#先在字典里取值,如果能取到就返回,不能取到就创建新的

print(av_catalog)#ouput[‘全部免费,真好,好人一生平安‘, ‘服务器在国外,慢,可以用爬虫爬下来‘]

#字典的循环info = {    ‘stu1101‘: "ll",    ‘stu1102‘: "xiaoming",    ‘stu1103‘: "wangli",}for i in  info:        #最基本的循环,比下边的循环方式要高效print(i,info[i])

for k,v in info.items():    print(k,v)

三级菜单:
 




























 

 

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

来自为知笔记(Wiz)

时间: 2024-10-11 21:41:23

全栈Python教程day2的相关文章

全栈Python教程day1

 Python在一些公司的应用:  谷歌:Google App Engine .code.google.com .Google earth .谷歌爬虫.Google广告等项目都在大量使用Python开发 CIA: 美国中情局网站就是用Python开发的 NASA: 美国航天局(NASA)大量使用Python进行数据分析和运算 YouTube:世界上最大的视频网站YouTube就是用Python开发的 Dropbox:美国最大的在线云存储网站,全部用Python实现,每天网站处理10亿个文件的上传

2018年老男孩最新全栈python第8期全套视频教程(6个月)陆续更新完!

2018年老男孩最新全栈python第8期视频教程(6个月)陆续更新完! 1.png (78.13 KB, 下载次数: 0) 下载附件 半小时前 上传 视频日期:   老男孩教育Python高级全栈开发工程师 课程内容: 第一阶段: linux基础以及常用服务学习(2周) 计算机组成原理 linux前世今生 linux介绍以及特点 Unix的历史介绍 自由软件以及基金会 GUN.GPL核心 linux的三大企业应用领域介绍 linux的各种开发性版本以及区别 linux的环境搭建 CentOs安

Python全栈开发,Day2

一.Pycharm的使用 1.创建项目 2.python调整字体大小随ctrl+鼠标滚轮上下滚动 3.python新建程序自动补全编码和环境 4.设置断点(在代码前面行号后面单击鼠标左键) 5.调试断点 二.in.not in s = '老男孩alexwusir' print('老男孩' in s) print('老男孩wusir' in s) print('老男' in s) print('老男' not in s) comment = input('请输入你的评论:') if '苍井空' i

python全栈开发教程目录

python入门到进阶 Python基础2——数据类型的操作 Python基础——函数入门 Python基础——函数进阶 Python基础——函数的装饰器 Python基础——函数的装饰器 Python基础——函数的迭代器和生成器 Python基础——内置函数 数据库教程 Windows系统下安装MySQL详细教程(命令安装法) MySQL第一讲 一一一一 数据库入门 MySQL第二讲 一一一一 MySQL语句进阶 MySQL第三讲 一一一一 视图.触发器.函数.存储过程 前端教程 jQuery

Python全栈之路Day2 (补)

初次编辑 2017年9月19日 0:03:16 摘要一.操作系统基础二.网络基础三.Linux系统基础作业今日总结 摘要 引用:海峰老师 复习昨日计算机基础课程,并且对照重点知识进行记忆 整理计算机操作系统.多道技术及osi五层协议的相关知识 整理linux操作系统维护常用命令(未完) &&&&&2017年9月18日 23:57:54 一.操作系统基础 操作系统概念:协调.管理和控制计算机硬件资源和软件资源的控制程序 操作系统由操作系统的内核(运行于内核态,管理硬件

python 全栈 python基础 (五)三元运算 字符编码 元组 集合 三级菜单优化!

三元运算 条件判断不能加冒号: a=3 b=5 c=a if a<b else b oct() 转成八进制的简写:16进制 标志:BH为后缀或是0x为前缀hex() 转成16进制 元组 跟列表是一样一样的!但它是只读列表,没有更改的权限! dir() 把传入的数据类型的,所有方法以列表的形式返回.作用: 明确的表示 元组里存储的数据是不应该被修改的!!! list(tuple元组) 变成列表 tuple(list列表) 变成元组 集合 setlinux ={"","&q

python 全栈 python基础(六)前期基础整理

计算机中,有且仅有CPU具有执行权限,能够执行指令的只有CPU! 人在应用程序上输入的文字或文本,叫做明文! 在屏幕上输入或是输出的是字符,计算机保存的是 有字符编码的 二进制数. 变量赋值规则:例如:a=1 先在内存中开辟一块空间,存放数1,内存上会有一个相对应的id号,然后变量a指向这块内存区域和id号,python编译器有垃圾清除的功能,若开辟的这块内存区域一段时间内不调用,数据就会被清除,为其他的数据腾空间. python2 容错率高,自作聪明的完成转码拼接. python3 将字节类型

python 全栈 python基础 (十三)匿名函数 与 内置函数

一.匿名函数  1.定义: 匿名函数顾名思义就是指:是指一类无需定义标识符(函数名)的函数或子程序. 2.语法格式:lambda 参数:表达式 lambda语句中,开头先写关键字lambda,冒号前是参数,可以有多个,用逗号隔开:冒号右边的为表达式,需要注意的是只能有一个表达式.由于lambda返回的是函数对象(构建的是一个函数对象),所以需要定义一个变量去接收.  3.注意点:lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值.lambda 函数不能包含命令,包含

python 全栈 python基础 (二十一)logging日志模块 json序列化 正则表达式(re)

一.日志模块 两种配置方式:1.config函数 2.logger #1.config函数 不能输出到屏幕 #2.logger对象 (获取别人的信息,需要两个数据流:文件流和屏幕流需要将数据从两个数据流中接收) 1.函数式简单配置 import logging logging.debug('debug message') logging.info('info message') logging.warning('warning message') logging.error('error mes