20190804-Python基础 第二章 列表和元组
容器,Python支持一种数据结构的基本概念(容器,基本上就是可包含其他对象的对象。)
两种主要的容器是:序列(如列表和元组)和映射(如字典)
Ps: 列表与元组区别,列表可修改,元组不能。
对序列的通用操作:索引、切片、相加、相乘、成员资格检查。其他,内置函数确定序列长度,以及找出序列中最大和最小元素。
1. 索引
# 将以指定年、月、日的日期打印出来
months = [
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December'
] # 一个列表,其中包含1-31对应的结尾
endings = ['st','nd','rd'] + 17*['th']\
+ ['st','nd','rd'] + 7*['th']\
+ ['st'] year = input('Year:')
month = input('Month(1-12):')
day = input('Day(1-21):') month_number = int(month)
day_number = int(day) # 别忘了将表示月和日的数减1,这样才能得到正确的索引
month_name = months[month_number-1]
ordinal = day + endings[day_number-1] print(month_name + ' ' + ordinal + ', ' + year) # 测试endings列表打印出的内容
print(['st','nd','rd'] + 17*['th']\
+ ['st','nd','rd'] + 7*['th']\
+ ['st'])
2. 切片
# 从url中提取域名https://www.google.com
url = input('input your url:')
domain = url[12:-4]
print('Domain name:' + domain)
结果:
input your url:https://www.google.com
Domain name:google.
因输入url直接回车会跳转打开链接,所以空格回车输出结果,但引入了一个多余的空格,导致最终结果多了一个"."
number[3:6:1],默认步长为1,可不写。
第一个索引包含在内,第二个索引不包含在内。
步长为正数时,从起点移动到终点;为负数时,从终点到起点,且第一个索引必须比第二个索引大。
3. 序列相加
print([1,2,3] + [7,8,9,10])
结果:
[1, 2, 3, 7, 8, 9, 10] print([1,2,3,4] + 'qwrrt')
结果:
Traceback (most recent call last):
File "D:/Python/PycharmProjects/untitled1/venv/Robots_learning.py", line 818, in <module>
print([1,2,3,4] + 'qwrrt')
TypeError: can only concatenate list (not "str") to list
使用加法运算拼接序列,但是,一般不能拼接不同类型的序列。
4. 乘法
将序列与数x相乘时,将重复这个序列x次来创建一个新的序列:
print('Python '* 5)
结果:
Python Python Python Python Python
None在Python中代表什么都没有;初始化。
# 在屏幕中央且宽度合适的方框内打印一个句子
sentence = input('Plz enter your sentence:') screen_width = 80
text_width = len(sentence)
box_width = text_width + 12
left_margin = (screen_width - box_width) // 2 print()
print(' '* left_margin + '+' + '-'*(box_width-2) + '+')
print(' '* left_margin + '|' + ' '*(box_width-2) + '|')
print(' '* left_margin + '|' + ' '*(((box_width - text_width)//2)-1) + sentence +' '*(((box_width - text_width)//2)-1)+'|')
print(' '* left_margin + '|' + ' '*(box_width-2) + '|')
print(' '* left_margin + '+' + '-'*(box_width-2) + '+')
print() 结果:
Plz enter your sentence:You'er beautiful! +---------------------------+
| |
| You'er beautiful! |
| |
+---------------------------+
5. 成员资格检测
检查特定值是否包含在序列中,使用运算符in,返回结果True,False,为布尔运算。
# 检查用户名和PIN码
database = [
['albert', ''],
['dilbert', ''],
['smith', '']
] username = input('User Name:')
pin = input('PIN code:') # 检查用户名和PIN码
if [username, pin] in database:
print('Access granted!')
else:
print('You don\'t have access to the database!') 结果:
User Name:Elon
PIN code:1232345
You don't have access to the database!
20190804-Python基础 第二章 列表和元组的更多相关文章
- 20190806-Python基础 第二章 列表和元组(3)元组&章小结
元组,不可修改的序列(与列表的唯一差别) 1. 元组用圆括号括起,用逗号分隔 2. 如果只有一个值,也必须在后面加上逗号 print((42)) print((42,)) 结果: 42 (42,) p ...
- 20190805-Python基础 第二章 列表和元组(2)列表
1. list函数,用于将字符串转换为列表 2. 基本的列表操作 修改列表 - 给元素赋值,使用索引表示法给特定的元素赋值,如x[1] = 2 删除元素 - 使用del语句即可 name1 = ['a ...
- Python 第二章-列表和元组
第二章-列表和元组 2.0 在Python中,最基本的数据结构是序列(sequence).序列中的每个元素被分配一个序列号-即元素的位置, 也称为索引.第一个索引是0,第二个是1,以此类推. ...
- python基础教程-第二章-列表和元组
本章将引入一个新的概念,:数据结构.数据结构是通过某种方式(例如对元素进行编号)组织在 一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构.在python中,最基本的数据结构 ...
- 《Python基础教程(第二版)》学习笔记 -> 第二章 列表和元组
本章将引入一个新的概念:数据结构. 数据结构是通过某种方式阻止在一起的数据元素的集合,这些数据元素可以是数字或者字符,设置可以是其他数据结构. Python中,最基本的数据结构是序列(Sequence ...
- Python基础教程学习笔记:第二章 列表和元组
1.序列中元素的索引: 第一个元素索引是0,第二个是1,依次递增 最后一个元素索引是-1,倒数第二个是-2,依次递减 2.序列(Sequence)的种类: 列表(list).元组(tuple).字符串 ...
- Python基础教程 读书笔记(2)第二章 列表和元组
2.1序列概览 列表和元组的主要区别在于,列表可以修改,元组则不能.也就是说如果要根据要求来添加元素,那么列表可能会更好用;而出于某些原因,序列不能修改的时候,使用元组则更为合适.使用后者的理由通常是 ...
- .Net程序员之Python基础教程学习----列表和元组 [First Day]
一. 通用序列操作: 其实对于列表,元组 都属于序列化数据,可以通过下表来访问的.下面就来看看序列的基本操作吧. 1.1 索引: 序列中的所有元素的下标是从0开始递增的. 如果索引的长度的是N,那么所 ...
- Python基础:数据类型-列表与元组(6)
Python中数据结构主要有序列.集合和字典. 1. 通用序列操作 Python内置了多种序列,其中最常用的两种:列表和元组.另一种重要的序列是字符串. 列表和元组的主要不同在于:列表是可以修改的,而 ...
随机推荐
- MySQL数据分析-(2)数据库的底层逻辑
(一) 数据库存在的逻辑 1.案例开篇-大部分公司对于数据和数字的管理都是低效率的 我们要学习数据库,就必须要搞清楚数据库是在什么样的情景下发明并流行的?学习新知识就要搞清楚每个知识点的来龙去脉,这样 ...
- redis之持久化RDB与AOF
redis数据持久化 Redis是一种内存型数据库,一旦服务器进程退出,数据库的数据就会丢失,为了解决这个问题,Redis提供了两种持久化的方案,将内存中的数据保存到磁盘中,避免数据的丢失. RDB持 ...
- 十七、程序包管理之yum和编译安装
YUM Redhat二次发行版 Yellow Dog Linux,上使用的yum(Yellowdog Update Modifier),由yellow dog 研发 yum命令的工作原理 1.接收用户 ...
- 你的windows许可证即将过期
0xC004F025拒绝访问:所请求的操作需要提升特权:解决方法:1.打开我的电脑找到windows System32目录下的cmd 2.对windows System ...
- Java的Lambda表达式
Java的Lambda表达式 1. 什么是Lambda表达式 简单的说,Lambda表达式就是匿名方法.Lambda表达式让程序员能够使用更加简洁的代码,但是同样也使代码的可读性比较差. Lambda ...
- pod package 生成 Framework
pod package 生成 Framework pod package 是 cocoapods 的一个插件,如果没有的话使用以下命令安装: sudo gem install cocoapods-pa ...
- electron之打包成安装程序
1.安装electron-winstaller npm install --save-dev electron-winstaller 2.创建一个build.js var electronInstal ...
- 数据库访问接口之ODBC
ODBC API 实现数据库操作的手段是句柄.在ODBC中,使用不同的句柄(HANDLE)来标志环境(environment).连接(Connection).语句(statement).描述符(des ...
- MySQL软件的相关操作
服务的启动与关闭 * 启动 net start mysql * 关闭 net stop mysql * 打开服务窗口 services.msc *查询端口号: netstat -ano mysql密码 ...
- SaaS领域如何分析收入增长?
SaaS领域如何分析收入增长? 今天我们试着将其模式运用到收入增长上进行分析.这对常规收入的计算会极有帮助,例如企业级应用软件(SaaS)或消费者订阅业务. 列举某公司通过月度订阅获得营收为例,为了更 ...