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内置了多种序列,其中最常用的两种:列表和元组.另一种重要的序列是字符串. 列表和元组的主要不同在于:列表是可以修改的,而 ...
随机推荐
- NSString的创建
create #progma mark create NSString void stringCreate(){ //char *s="A String";->c NSSt ...
- 元祖(tuple)
元祖和列表几乎是一样的: 列表是可以进行修改的,它可以填加一个元素,也可以移除一个元素,但元祖是不能修改的 如果我们以后想导一个集合,这个集合以后不允许修改,我们用元祖:如何我们想让别人进行修改,我们 ...
- 重读APUE(15)-pthread_cond_wait与while循环
即使pthead_cond_wait()和pthread_cond_timewait()没有错误返回,等待的条件也可能是假的:即使pthread_cond_timewait()返回了超时错误,关联的条 ...
- FIREDAC返回多结果集
FIREDAC返回多结果集 以前使用ADO, 如果SQL返回的结果集有多个 可以通过NextRecordset来依次获取 代码移植到FireDAC, 对于多结果集处理差不多, 但是还是有一些不一样的地 ...
- You can't specify target table 'a' for update in FROM clause
项目中有一个功能变动上线,其中有一张表ttt的字段cc,历史数据需要处理,把字段cc中为'xxx'的值替换为'yyy'. 表A结构如下: CREATE TABLE `ttt` ( `id` bigin ...
- 进程 | 线程 | 当Linux多线程遭遇Linux多进程
背景 本文并不是介绍Linux多进程多线程编程的科普文,如果希望系统学习Linux编程,可以看[<Unix环境高级编程>第3版] 本文是描述多进程多线程编程中遇到过的一个坑,并从内核角度分 ...
- 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_01-项目概述-功能构架-项目背景
这个就是博学谷下的 在线教育平台
- 获取当前运行的exe路径
void GetAppPath(CString& path) { TCHAR str[] = {}; GetModuleFileName(NULL,str,); wchar_t *pszPos ...
- Sql 中常用日期转换Convert(Datetime) convert datetime
Convert(data_type,expression[,style]) Convert(varchar(10),字段名,转换格式) 说明:此样式一般在时间类型(datetime,smalldate ...
- paramiko实现putty功能
paramiko模块提供了ssh及sft进行远程登录服务器执行命令和上传下载文件的功能.这是一个第三方的软件包,使用之前需要安装. context:python3.5 执行命令 1.基于用户名和密码方 ...