python deque索引超出范围_Python基础知识梳理

2d7238e17d162a088e7d7aa7fef5b68c.png

因为有C语言的基础,学习Python基础知识的过程轻松了不少,这也鼓励我坚持学习,付出的点滴都不会被辜负。现在将这一部分内容进行简单梳理。

一.变量

(一)命名规则

1.只能包含字母、数字和下划线;

2.不能以数字打头;

3.不能包含空格;

4.Python关键字和函数名不可用作变量名;

5.变量名最好既简短又具有描述性;

6.慎用小写字母l和大写字母O,可能将其错看成数字1和0。

(二)定义变量

语法:变量名 = 变量值

favorite_fruit='banana' 
print(favorite_fruit)

banana

二.四个关键点:数据,函数,条件判断,循环

(一)数据

1.字符串

1)使用方法修改字符串的大小写

# 以首字母大写的方式显示 
hobby = 'running' 
print (hobby.title()) 
# 将字符串改为全部大写 
print (hobby.upper()) 
# 将字符串改为全部小写 
hobby = 'Running' 
print (hobby.lower()) 

Running 
RUNNING 
running

2)合并字符串

str1 = 'I like' 
str2 = 'Python' 
print (str1 + " " + str2 + ".") 

I like Python.

3)删除字符串前后的空白

# 使用 strip 删除字符串两端的空白 
str = ' Python ' print (str) 
# 使用 lstrip 删除字符串前面的空白 
str = ' Python ' print (str) 
# 使用 rstrip 删除字符串后面的空白 
str = 'Python ' print (str) 

Python 
Python 
 Python

2.数字

# 整数 a
ge = 47 
# 浮点数 
weight = 50.37 
print (age, weight) 

47 50.37

3.容器

1)列表:由一系列按特定顺序排列的元素组成,用 [ ] 来表示

# 查询列表元素 
my_family = ['father', 'mother', 'sister', 'brother'] 
print (my_family[0]) 
# 修改列表元素,即给某个元素重新赋值 
my_family[0] = 'grandma' 
print (my_family) 
# 添加列表元素,有两种方法: 
# 1.使用 append() 在列表末尾增加一个元素 
my_family[0] = 'father' 
my_family.append('grandma') 
print (my_family) 
# 2.使用 insert(索引号,元素名) 在列表任意位置插入元素 
my_family.insert(1, 'grandpa') 
print (my_family) 
# 删除列表元素,有三种方法: 
# 1.使用 del 语句 
del my_family[0] print (my_family) 
# 2.使用方法 pop() (从后往前依次删除元素) 
popped_family = my_family.pop() 
print (popped_family) 
print (my_family) 
# 3.根据值删除元素,使用 remove() (当不知道索引号而知道元素名时使用) 
my_family.remove('brother') 
print(my_family) 
# 确定列表长度 
len(my_family) 

father 
['grandma', 'mother', 'sister', 'brother'] 
['father', 'mother', 'sister', 'brother', 'grandma'] 
['father', 'grandpa', 'mother', 'sister', 'brother', 'grandma'] 
['grandpa', 'mother', 'sister', 'brother', 'grandma'] 
grandma 
['grandpa', 'mother', 'sister', 'brother'] 
['grandpa', 'mother', 'sister'] 
3

2)元组:不可变的列表,元素值不可重复,用 ( ) 来表示

如果需要存储的一组值在整个程序生命周期内都不变,可使用元组。

3)集合:无序性;互异性

# 增加集合元素
# 定义一个空集合
stockSets = set()
# 使用 update() 增加元素
stockSets.update(['blue', 'orange','red'])
print (stockSets)
# 删除集合元素
stockSets.discard('blue')
print (stockSets)
# 查询集合元素
txBool = 'blue' in stockSets
print (txBool)
# 修改集合元素,先删除再增加
stockSets.discard('orange')
stockSets.update(['orange'])
print (stockSets)

{'red', 'blue', 'orange'}
{'red', 'orange'}
False
{'red', 'orange'}

4)字典:一系列键-值对。每个键都与一个值相关联,可以使用键来访问与之相关联的值。

# 访问字典中的值 
alien = {'color':'green'} 
print (alien['color']) 
# 添加键-值对 
alien['x_position'] = 0 
alien['y_position'] = 25 
print (alien) 
# 修改字典中的值 
alien['color'] = 'blue' 
print (alien) 
# 删除键-值对 
del alien['color'] 
print (alien) 

green 
{'color': 'green', 'x_position': 0, 'y_position': 25} 
{'color': 'blue', 'x_position': 0, 'y_position': 25} 
{'x_position': 0, 'y_position': 25}

4.布尔值:用于逻辑判断,True或False

5.None:空值

(二)函数

函数是带名字的代码块,调用它可以更容易、更高效地完成特定的任务。

1.三个要素:1)功能;2)输入;3)输出

2.自定义函数:把握好三个要素

29a77e4043c13d215f95c57bc83e42ef.png

3.使用函数的过程,即是传递参数的过程。

  • 函数参数: (现在不理解,在以后的练习中着重理解)

1)可变数据类型(字符串、数字、元组)传递的只是该数据类型的值(相当于复制一份);

2)不可变数据类型,传递的是该变量的引用地址。

(三)条件判断

1.一般格式

65f57ba64e83d71d04641d83195c8bf1.png

2.多条件判断

ce1bda1b812e769efe72243a697fd8cf.png

(四)循环

循环用于批量处理数据,即把容器中的每一个数据都按照特定的规则进行重复处理。

5945432b99b505ec50682281f3a6bb73.png

对字典进行循环

# 定义字典,描述我的家人的性格 
my_family = {'father':'strict', 'mother':'tender', 'sister':'smart', 'brother':'humor'} 
# 用循环输出信息 
for family, personality in my_family.items(): 
    print (family.title() + ' is' + " " + personality + '.') 

Father is strict. 
Mother is tender. 
Sister is smart. 
Brother is humor.

continue 用于跳出当前循环;break 用于退出整个循环。

  1. 模块
# Python内置模块 
# 第1步:引入模块 
import sys 
# 第2步:使用模块中的函数,属性 
pathList=sys.path 
print ('Python 路径为:n', pathList) 

Python 路径为: ['', 'C:installPythonPython27', 'C:installPythonPython27Lib', 'C:installPythonPython27Scripts', 'C:installAnaconda3python36.zip', 'C:installAnaconda3DLLs', 'C:installAnaconda3lib', 'C:installAnaconda3', 'C:installAnaconda3libsite-packages', 'C:installAnaconda3libsite-packagesBabel-2.5.0-py3.6.egg', 'C:installAnaconda3libsite-packageswin32', 'C:installAnaconda3libsite-packageswin32lib', 'C:installAnaconda3libsite-packagesPythonwin', 'C:installAnaconda3libsite-packagesIPythonextensions', 'C:Usersyang.ipython'] # 使用第三方模块:pandas # pandas是数据分析工具 #引入模块 import pandas as pd #导入excel文件 # 文件路径 # x这里会报错,把 "" 改为 "/" 或 ""即可 fileNameStr = 'C:/xiayuqing代码示范练习病历数据.xlsx'

模块使用总结:

1.import 包名称

2.import 包名称 as 别名

3.from 包名称 import 函数名 (只导入模块中的某个函数)

四.数据结构

双向链表queue:队列、栈;排序字典OrderedDic;计数器Counter

  1. 队列(queue):队列就像排队,新来的人在队列尾部加入,叫做入队;从队列首部离开队列,叫做出队。
#导入collections包
from collections import deque
#定义队列:排队人的编号
queue = deque(['001','002','003','04','005'])
#入队:在队列尾部插入元素
queue.append('006')
print (queue)
#出队:在队列头部删除元素
queue.popleft()
popped = queue.popleft()
print (popped)
print (queue)

deque(['001', '002', '003', '04', '005', '006'])
002
deque(['003', '04', '005', '006'])

2.栈(stack):栈就像搭积木,后来的永远在最上面。

#定义栈:浏览我个人知乎主页的顺序
stack = deque(['知乎动态','知乎回答','知乎文章'])
#入栈:在栈顶加入元素
stack.appendleft('知乎专栏')
print(stack)
stack.pop()
print(stack)

deque(['知乎专栏', '知乎动态', '知乎回答', '知乎文章'])
deque(['知乎专栏', '知乎动态', '知乎回答'])

3.排序字典OrderedDict

# 按照插入key的顺序,对字典排序
from collections import OrderedDict
#定义有序字典
gafataOdDict = OrderedDict({'father':'strict','mother':'tender','sister':'smart',
            'brother':':humor'})
gafataOdDict

OrderedDict([('father', 'strict'),
             ('mother', 'tender'),
             ('sister', 'smart'),
             ('brother', ':humor')])

4.计数器Counter

from collections import Counter
cDict = Counter('有一种鸟是永远也关不住的,因为他们的羽毛太光亮了。羽毛太光亮')
# "亮" 出现了多少次 
print (cDict['亮'])
# 每个字各出现了多少次
print (cDict)
# 出现次数最多的3个词
cDict.most_common(3)

2
Counter({'的': 2, '羽': 2, '毛': 2, '太': 2, '光': 2, '亮': 2, '有': 1, '一': 1, '种': 1, '鸟': 1, '是': 1, '永': 1, '远': 1, '也': 1, '关': 1, '不': 1, '住': 1, ',': 1, '因': 1, '为': 1, '他': 1, '们': 1, '了': 1, '。': 1})
[('的', 2), ('羽', 2), ('毛', 2)]

我知道,我的学习才刚刚开了个头,以后还会遇到无数的艰难险阻,可能会无数次想要放弃。我能做的,就是坚实走好当下的每一步,牢记一万小时定律,大量、反复地练习,尝试自己去解决一个又一个问题。我想,未来是由每一个当下组成的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值