Python系列-List和while

作者: 憨厚的老菜鸟 | 来源:发表于2017-02-20 11:01 被阅读92次

上一节:《Python系列-数字和字符串》

List

上一篇文章中,介绍了Python中的数字和字符串,这一节中,来介绍一下Python的集合——List,例如:

nums = [1,2,3,4,5]
names = ['小明','小李','小王']

上面的的例子就是list的定义,数据被包含在[](方括号)之间,内部每一项使用,(逗号)分隔。list内的数据,可以全部是数字或字符串,也可以是复合类型。例如:

compound = [1,'小明']

但是,通常我们定一个list的时候,里面的数据最好是同一个类型的。

list示例

list同strings一样,可以被索引和切片。例如:

>>>word = ['P','y','t','h','o','n']
>>>#索引方式
>>>word [0] #
'P'
>>>word [-1]
'n'
>>>#切片方式
>>>word [-2:]    
['o', 'n']
>>>word [-3:-1]    
['h', 'o']

切片的方式,我们可以理解为是区间式索引,可以取list中一段数据。看下面的例子,字符的左侧就是改字符的索引值,比如所P左侧的0,就是该字符的索引值,最右侧的的值代表着这个list的长度,所以说这个list的长度为6。

 +---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
 0   1   2   3   4   5   6
-6  -5  -4  -3  -2  -1

利用切片的方式,获取所有的数据内容,得到是一个全新的list。例如:

>>>word[:]
 ['P','y','t','h','o','n']

list也支持连接操作,例如:

>>>word+ ['G','o','o','d']
 ['P','y','t','h','o','n','G','o','o','d']

和strings不同的是,strings是不可变的,但是list是一个可变的。例如:

>>>fibo = [1,1,2,3,4,8,13] #斐波那契数列,这里面包含了一个错误
>>>fibo[4] = 5
>>>fibo
[1,1,2,3,5,8,13]

也可以向list内加入新的项,使用方法append()(后面的文章会介绍),例如:

>>>fibo.append(21)
>>>fibo
[1, 1, 2, 3, 5, 8, 13, 21]
>>>fibo.append(13 + 21)
>>>fibo
[1, 1, 2, 3, 5, 8, 13, 21, 34]

当然,我们也可以使用切片的方式来改变list,例如:

>>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> letters
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> # 将小写的c、d 、e 替换成大写的
>>> letters[2:5] = ['C', 'D', 'E']
>>> letters
['a', 'b', 'C', 'D', 'E', 'f', 'g']
>>> # 移除C、D、E
>>> letters[2:5] = []
>>> letters
['a', 'b', 'f', 'g']
>>> # 清空leterrs
>>> letters[:] = []
>>> letters
[]

len()也适用于list,例如:

>>>fibo = [1,1,2,3,5,8,13] #斐波那契数列
>>>len(fibo)
7

list内部也可以包含其他的list,例如:

>>> a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[0][1]
'b'

while

while是Python中的循环语句的一个,只要条件允许的情况下,会一直循环下去。看下面的例子:

while 1 : 
    print('while')
    

上面的例子,会一直输出while , 例子中 1是条件,当条件是true的时候,那么会执行循环内部的代码,如果是false,则不执行循环内部。在Python中,只有当整数值是0的时候是false,其他整数值都是true
在例子中,可以看到,while内部代码有缩进。缩进是Python分组分块的表示方法。也可以说一种从属关系吧。如print('while')是while语句内部的代码,所以需要缩进来表示。值得注意的是,同一种从属关系的代码,需要相同缩进。例如:

# 利用while实现斐波那契数列
a , b = 0 , 1
while b <10
    print(b)
    a , b = b , a+b
    

#结果输出
1
1
2
3
5
8

上面的例子中,包含了几个新特性:

  • 变量赋值 a , b = 0 , 1 ,这句里面,变量ab分别获得一个值01
  • while语句,条件是b<10,这个不难理解,就是b小于10。这里使用了标准的比较表达式。<符号是一个标准的比较运算符。
运算符 解释
< 小于
> 大于
<= 小于等于
>= 大于等于
== 等于
!= 不等于
  • print()输出语句,不同于在交互式环境下直接输出,print输出字符串的时候不带引号,例如:
>>> a='bcd'
>>> a
'bcd'
>>> print('a的值为:' , a)
a的值为: bcd

print()的关键字参数可以避免结束后输出换行符,或者输出不同的字符串,例如:

>>> a, b = 0, 1
>>> while b < 1000:
...     print(b, end=',')
...     a, b = b, a+b
...
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,

相关文章

  • Python系列-List和while

    上一节:《Python系列-数字和字符串》 List 上一篇文章中,介绍了Python中的数字和字符串,这一节中,...

  • 8、Python列表

    上集回顾: Python函数 while循环嵌套 Python列表(list)是一种有序的集合,是 Python ...

  • Python | 流程控制

    上一篇:《Python | list和while》 上篇文章中,介绍了while语句,这一章中,继续学习新的流程控...

  • 读书笔记 | Python学习之旅 Day5

    Python学习之旅 读书笔记系列 Day 5 《Python编程从入门到实践》 第7章 用户输入和While循环...

  • 我的python学习笔记-第十天

    循环语句 Python中的循环语句有 for 和 while。 while 循环 Python中while语句的一...

  • Python3 循环

    Python中的循环语句有 for 和 while。 while循环 Python中while语句的一般形式: 同...

  • Python3 & 循环语句

    Python 提供了 for 循环和 while 循环(在 Python 中没有 do..while 循环)。 W...

  • python循环执行

    python有两种循环,while循环和for循环。 python循环的流程图如下: while循环 python...

  • python之循环

    Python中的循环语句有 for 和 while。 while condition1:语句 while cond...

  • 5-Python3从入门到实战—基础之数据类型(列表-List)

    Python从入门到实战系列——目录 列表定义 list:列表(list)是Python内置的一种数据类型,lis...

网友评论

  • 奥特虾:感觉这篇的List部分有点难懂,索引和切片的那个案例不是很明白,不过还是感谢前辈分享
    憨厚的老菜鸟:list理解起来是挺难的,多尝试着使用,就会慢慢的理解。关于索引和切片这块,我又加了点内容,便于理解,你可以在看看。谢谢你提的宝贵意见!

本文标题:Python系列-List和while

本文链接:https://www.haomeiwen.com/subject/cwbswttx.html