python 切片和range()用法说明

yipeiwu_com6年前Python基础

理解切片基本用法:

首先需要明白,可迭代对象,按照正数索引(正序)是从0开始的,按照负数索引(逆序)是从-1开始的。
>>> astring = 'Hello world'
>>> astring[0:2]
'He'
>>>
可见,这种情况下,给切片操作一个起始位置,和一个终止位置,则显示从起始位置开始(包括起始位置)到终止位置(不包括终止位置)之间的内容;

在有负数索引的情况下,是类似的,只要确定终止位置的内容:

>>> astring[0:-1]
'Hello worl'
>>>

>>> astring
'Hello world'
>>> astring[0::1]
'Hello world'
>>> astring[0::2]
'Hlowrd'
>>> astring[0::3]
'Hlwl'
>>> astring[0::4]
'Hor'
>>>
在有三个参数的情况下,第一个起始位置,第二个是终止位置,地三个是步长。

测试程序:
# 首先理解切片含义,如下为切片程序结果演示
>>> s='abcde'
>>> s[:0]
''
>>> s[0:]
'abcde'
>>> s[1:]
'bcde'
>>> s[2:]
'cde'
>>> s[:3]
'abc'

理解range()基本用法:

测试程序一:

>>> range(1,5) # 输出从1到5的结果。包括头,不包括尾.
[1, 2, 3, 4]
>>> range(1,5,2) # 输出从1到5,间隔距离为2的结果。包括头,不包括尾.
[1, 3]
>>> range(5) # 输出从0到5的结果。默认起止为0。包括头,不包括尾.
[0, 1, 2, 3, 4]


测试程序二:

>>> s='abcde'
>>> i = -1
>>> for i in range(-1,-len(s),-1): # 输出结果
...     print s[:i]
...
abcd
abc
ab
a

测试程序三:

>>> s='abcde'
>>> for i in range(len(s),0,-1): # 输出结果
...     print s[:i]
...
abcde
abcd
abc
ab
a


测试程序四:

>>> s='abcde'
>>> for i in [None] + range(-1,-len(s),-1): # 用None作为索引值的输出结果
...     print s[:i]
...
abcde
abcd
abc
ab
a

另外,range可以直接给list变量赋值:
elements = range(0, 6)

相关文章

解决新django中的path不能使用正则表达式的问题

新版的path 虽然 取代了 之前的url,但是在写路由的时候不能在路由中直接写正则表达式,不然会找不到页面。 解决方法 使用re_path from django.urls imp...

计算机二级python学习教程(2) python语言基本语法元素

计算机二级python学习教程(2) python语言基本语法元素

上一篇:计算机二级Python学习笔记(一) 其实昨天Python并没有安装成功,打开就报错: 于是今天先解决这个问题,搜了一下api-ms-win-crt-process- 1-1-...

Django实战之用户认证(用户登录与注销)

Django实战之用户认证(用户登录与注销)

上一篇中,我们已经打开了Django自带的用户认证模块,并配置了数据库连接,创建了相应的表,本篇我们将在Django自带的用户认证的基础上,实现自己个性化的用户登录和注销模块。 首先,我...

Python中的with语句与上下文管理器学习总结

0、关于上下文管理器 上下文管理器是可以在with语句中使用,拥有__enter__和__exit__方法的对象。 with manager as var: do_somethi...

解决python3 HTMLTestRunner测试报告中文乱码的问题

使用HTMLTestRunner输出的测试报告中,标题和错误说明的中文乱码。 环境: python v3.6 HTMLTestRunner v0.8.2 定位问题 刚开始以为是pytho...