python学习笔记(一)
Part 1.前言
刚开始接触python,所以难免在运行过程会遇到种种的小问题,这里就理一理自己遇到的一些小坎:
1.关于依赖库的缺失而造成的错误
python拥有丰富的库来提供给使用者们调用,但在使用前,你需要首先将库部署好,一般性操作步骤即简单的"缺什么装什么"。当你在cmd中运行你的.py文件时,你可能会遇到类似下面的错误提醒
这时候你所需要做的是
- 打开一个全新的cmd窗口;
- 在窗口中执行 pip install x 的命令 //这里的“x”即是你所要安装的库名
这里再贴上关于pip的使用说明,如图所示:(pip + "")
- install 安装包
- download 下载包
- uninstall 卸载包
- list 输出已安装包的列表
2.关于cmd交互式命令行模式下的注意点
在交互式命令行下执行循环语句时,回车后会出现,此时容易犯的问题如下
>>> for i in range(array):
... s=s+i;
File "<stdin>", line 2
s=s+i;
^
IndentationError: expected an indented block #错误指出你循环没有缩进块
'''
正确的做法如下
for i in range(array):
... s=s+i
^^^ #键入空格以显示缩进
'''
Part 2.学习小细节摘要
1.关于input()
python中提供输入input()给用户输入字符串并存放到一个变量中。因为输入的是字符串,所以当你当你想要其他的类型时你需要将其转换。
# -*- coding: utf-8 -*-
n = int(input()) # 字符串转int类型
n = double(input()) #字符串转double类型
需要注意的是,这里的布尔类型不再像C、C++中那样接收"0"和"1",这里要么是"True"要么是"False"。
2.谈谈字符编码
常用的ASCII码占用的存储空间为1个字节,但他不支持其他语言的输入,所以有了Unicode编码来整合,但2个字节的Unicode使得存储空间大大增加,原本编码中常用的英文字母仅1个字节不得不占位成2个,这样显然不利于传输与存储,所以又有了可变长度的UTF-8编码的出现。传统的ASCII中内容保持1个字节的占位,其他则以1-6字节存储。
所以一句话总结:在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。(详细了解可参见廖雪峰关于字符编码的详细说明)
3.关于几种数据类型的记录
1.list 列表
- list用[]标识、定义
- list.append(value) #末尾加入一个元素
- list.count(value) #返回value该元素出现的次数
- list.clear() #清空列表
- list.extend(list_2) #可迭代入列表2
- list.insert(position,value) #指定位置加入一个元素
- list.index(value) #返回value该元素第一次出现的位置
- list.pop(position) #返回position该位置的元素并把它删除
- list.reverse() #内部元素反转
- list.remove(value) #删除value该元素的第一次出现
- list.sort() #内部元素排序
- sorted(list) #返回排序好的列表但是不改变原来list的内部
2.tuple 元组
- tuple用()标识、定义
- tuple.count(value) #返回value该元素出现的次数
- tuple.index(value) #返回value该元素第一次出现的位置
- tuple和list非常类似,但是tuple一旦初始化就不能修改内部的value
3.dict 字典
- dict用{}标识、定义
- dictionary={'key':value} #dict使用键'key'来访问值value 例如:dictionary['key'] -> value
- 字典内的key不重复,若一个key出现两个value与其匹配,则以最后出现的value为准
- dict.clear() #清空字典
- dict.copy() #返回一个dict的复制
- dict.pop('key2') #删除字典中的key2及其携带的值,并返回其对应的值value
- dict.get('key',flag) #返回字典中key对应的value值,不存在的话返回flag的值(默认返回None,跳过处理)
- dict.items() #返回一个可遍历的以(key, value) 元组形式为元素的数组 例如:([(key1,value1),(key2,value2)])
- dict.keys() #返回一个可遍历的以('key') 元组形式为元素的数组 例如:(['key1','key2'])
- dict.values() #返回一个可遍历的以('value') 元组形式为元素的数组 例如:(['value1','value2'])
- dict.update(dict2) #将dict2更新加入到dict中
- dict['key2']=value2 #往字典dict中加入key2且其携带值value2
- del(dict['key2']) #删除字典中的key2及其携带的值
4.set 集合
- set和dict类似,也是一组key的集合,但不存储value,且key同样不能重复。
- set用set([key])定义
- set.add(key2) #集合内加入一项key2
- set.update([keys,...]) #集合内加入n个新项keys
- set.remove(key) #集合内删除一项key2
5.str 字符串
- str用''标识、定义
- str.count(s) ##返回s该字符或字符串出现的次数
- str.find(sign,start,end) #返回s该字符或字符串在(start,end)区间内中首次出现的位置,若忽略区间的设置,则默认从头找到尾,未找到返回-1
- str.index(sign,start,end) #功能与find基本一致,但未找到时直接报错
- "s".join(list[]) #返回一个将list列表中各元素通过指定字符's'分隔开的新字符串
- str.replace(old,new,count) #将str中的old字符或字符串替换为new的字符或字符串,count为替换的次数,默认值为全部
- str.split('s') #将字符串以's'切割后,存放到并返回一个list
4.循环要点
- 形式一:以 for x in array: 的形式,循环把数组array中的每个元素代入变量x中,然后执行缩进块的语句
- 形式二:以 for i in range(len(array)): 的形式,通过i的更新,依次访问数组元素array[i]并执行缩进块的语句
(注意:range(n)函数从0开始访问到n-1,最后一个元素不访问)
以上就是我本此初步基础学习的总结,小豪的程序员之路还在进行中,有不足的地方还希望大家指出,谢谢!