Python基础知识总结
看了一个礼拜Python的书,断断续续的看了一大半。今天刚好没有课,想着也没什么事情干,就把这几天Python总结一下,都是一些基础知识
变量和对象的引用
在python中一切都是对象,不像C,java那样,还有基本数据类型(话说其实也是对象),但是他们基本类型的变量的值是放在栈里面的,Python就不同了,他没定义一个变量必须进行三步,首先在堆里面建立一个对象,然后声明一个变量,最后将这个变量指向这个对象。所有的变量定义都必须经历 “=”操着符,当然 你要定义一个glabal变量,是没有必要这样的:eg: global a = "",而且这样还会报错。其他的变量声明必须用 “=”,由于变量的数据的值是存放在堆里面的,所以我们进行这样的操作,实质上是改变了引用而已==>a = 3;b = a; b =1; a == 3 // True,b == 1//True;
del语句,删除一个对象,释放资源;a = 3; del a ; print(a) //异常, a已经不存在
Python的数据类型:
数字类型:int,float , complex(复数),bool(0/1)
complex(ai+bj)
序列:str,bytes(字节串),bytearray(字节数组),list(列表),tuple(元组)
映射:dict(字典 )
集合:set,frozenset(不可变集合)
str定义:
可以用,单引号'',双引号"",和三引号'''''',其中三引号支持多行字符串,包括换行符。
运算符:+,+=,in,not in,*,[],[:]
值得注意的是in :包括 “as” in “asd” //True
*: as*2 ==> "asas"
[]:a = "asd",a[0] =="a" //True,支持下标为负值 ,a[-1] == d //True
[:]:a = "asd" , a [1:2] == "sd"//True
方法:
ord(单个字符) :返回编码值;
ord('A') == 65
chr(int) :返回字符:
chr(65) == 'A'
encode("字符集"):返回一个字节串;用指定的字符集编码
a = "asd" ; a.encode("GBK")
decode("字符集"):返回一个字节串;用指定的字符集解码
en(order):order为序列,查看序列长度,返回一个数字,
a=“asd”, len(a) == 3;
max(order):order为序列,返回一个数字,表示order里面的最大值
zip(order1[,order2][,].....):返回一个迭代器:item型如 ==》(order1[i],order2[i]....)
eg: a = [1,2,3]
for c in zip(a):
print(c) ===>(1,),(2,),(3,)
enuemrate(order):类似于zip(),返回一个迭代器 。item型如 ==》(下标,数值)
eg:a = [1,2,3]
emuerate(a) == > (0,1),(1,2)(2,3)
str.lower():转化为小写;
str。upper()转换为大写
str.join(order);将序列转换为字符串:把order用str连接
eg:a = [1,1,3]
"".join(a) == 》 “113”
字节串:
字节串为二进制数据,值得范围是0~255,具有不可变性,数据以B/b开头
eg:b’\xff\x2‘
运算符:
值得注意的是:
/:/运算符的到的结果是浮点数
//:运算符的到的是整数
**:幂运算符,eg:2**3 == 8
<,>,<=,>=,=,可以连用,eg:a>b and b >c 可以表示为 a>b>c,但是很用以混淆逻辑,由于优先级的问题,建议使用and or 连接
python的最多有效位数是15位 ,过了15个有效数字会有问题:
eg:1 < 1 + e-16 不成立
eval(字符串[,映射])方法:
将字符串转换为数字:可以进行复杂的运算
a = {'X':3,'Y':5}
eval("X*X+Y*Y",a) == 34
函数的定义:
关键字:def;
定义格式:
def <函数名>(参数列表):
<函数体>
eg:
def add(a,b):
return a+ b;
add(1,2) == >3
函数的参数的默认值:
def add(a,b=2):
return a+b
add(1) == > 3
序列:
序列的特性:可以用过下表访问:
eg:a = list(“asd”),a[0] == "a"
值比较可以用:<,>,=<+,>=,比较方法是字典序;
eg:"a" < "b"//true;"ab" < "b"//true;
可以进行切片操作:
eg:list1 = list(["我爱你Python"])
list1[2:3] == ['P'] //True list1[1:3] == ['爱' ,‘你’, 'P']
list[::2] == ['我', '你', 'y', 'h', 'n'] //True ,每隔一个,娶一个
llist 是其中的一个序列;
list相关的函数:
list.remove("需要移除的字符串") , list.pop(下标)
eg: list1 = list("123") , list1.remove("1") ,list1 == ['2' , '3'] //True
list1 = list("123") list1.pop(1)//list ==['2' ,'3'] 弹出一个下标的值 返回弹出的值
可以进行 in not in +=,+,操作
元组:
元组的定义:
a = (a, b ,c .....) 由()括起来的一个类似数组的对象
元组是不可变对象,可以作字典的建。
创建一个元组:
a = ("123","456")
元组的表现形式为(a,...);这样是创建不了一个元组的;a = (1),这里的a是一个int类型,要这样创建a = (1,);
关于python对象的复制:
python对象的复制,浅复制,不保护二级对象,及以二级下对象
这里展示浅复制
eg:a = ['a',‘b’]
b = [1,2,3,a] a[0]在这里对于b来说是二级对象,不保护
c = b
c[0] = 0
c[3][0] = 0
print(a) ==>[0,‘b’]
要想对二级对象,及二级以下对象进行保护,需要进行深复制
需要引用copy模块
里面有一个deepcopy()方法
字典:
字典的形式如:{"键":"值",.....}的形式
字典的创建:
1:d1 = {};//创建一个空字典
2:d1 = {"a":1,“b”:2,“c”:3}
3:用dict(元组)创建一个字典;
eg:
dict(([“a”,1],['b',2]))
==》{‘a’:1,‘b’:2}
4:用{}.fromkeys(key序列,默认值)
eg:
{}.fromkeys([‘a’,‘b’,‘c’],0)
==》{‘a’:0,‘b’:0,‘c’:0}
访问字典的值:dict[‘key’]
dic = {‘a’:1,‘b’:2}
dic[‘a’] == 》1
但是这个访问方式在键不存在的时候肯可能会异常
遍历字典的键值访问,dict.keys()返回一个迭代器
可以 for c in dict.keys()
dict[c]
Python基础知识总结的更多相关文章
- Python开发【第二篇】:Python基础知识
Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...
- python基础知识(二)
以下内容,作为python基础知识的补充,主要涉及基础数据类型的创建及特性,以及新数据类型Bytes类型的引入介绍
- python 基础知识(一)
python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本 ...
- python基础知识讲解——@classmethod和@staticmethod的作用
python基础知识讲解——@classmethod和@staticmethod的作用 在类的成员函数中,可以添加@classmethod和@staticmethod修饰符,这两者有一定的差异,简单来 ...
- python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。
本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...
- python 爬虫与数据可视化--python基础知识
摘要:偶然机会接触到python语音,感觉语法简单.功能强大,刚好朋友分享了一个网课<python 爬虫与数据可视化>,于是在工作与闲暇时间学习起来,并做如下课程笔记整理,整体大概分为4个 ...
- python基础知识小结-运维笔记
接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...
- Python基础知识(五)
# -*- coding: utf-8 -*-# @Time : 2018-12-25 19:31# @Author : 三斤春药# @Email : zhou_wanchun@qq.com# @Fi ...
- Python基础知识(Basic knowledge)
Python基础知识(Basic knowledge) 1.认识Python&基础环境搭建 2.Python基础(上) 3.Python基础(中) 4.Python基础(下) 5.Python ...
- Python 基础知识(一)
1.Python简介 1.1.Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时 ...
随机推荐
- C# 逆变与协变
该文章中使用了较多的 委托delegate和Lambda表达式,如果你并不熟悉这些,请查看我的文章<委托与匿名委托>.<匿名委托与Lambda表达式>以便帮你建立完整的知识体系 ...
- 003-0.6632是float/Float/double/Double中的哪个?
应该是float,最后两个是包装类,这里应该安装基本类型去看待. 而java的浮点型默认是double型,如果希望生成一个float型的浮点数则需要在这个值的后面紧跟f和F.
- C语言:freopen函数
当我们求解acm题目时,通常在设计好算法和程序后,要在调试环境(例如VC等)中运行程序,输入测试数据,当能得到正确运行结果后,才将程序提交到oj中.但由于调试往往不能一次成功,每次运行时,都要重新输入 ...
- MariaDB体验1----数据库安装
之前一直都是使用的微软Sql Server数据库,现在在学习数据分析,要用到mysql.刚好公司在进行云架构升级,数据库选型为MariaDB,就顺势安装体验了一把MariaDB.这里记录一下学习过程. ...
- wcf 上传文件报413,404和发布错误
上传文件错误: 其实要修改所有的服务,不管是服务端还是客户端,Binding那边增加一个没有设置名字的默认配置就OK了: <binding closeTimeout="00:10 ...
- POI处理Excel中的日期数据类型
在POI处理Excel中的日期类型的单元格时,如果仅仅是判断它是否为日期类型的话,最终会以NUMERIC类型来处理. 正确的处理方法是先判断单元格 的类型是否则NUMERIC类型, 然后再判断单元格是 ...
- python 数据驱动(ddt)
DDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据),file_data(可以从json或者yaml中获取测试数据) 实例代码: import ddt import unittest ...
- Linux和win7(win10)双系统时间错误问题 时间相差8小时
转载自 http://m.2cto.com/os/201204/126212.html 有修改 前一段时间刚装了centos 5.4和win7的双系统.发现win7的系统时间不对,机子没上网,每天开机 ...
- javascript中=,==,与===的区别;以及特殊值NaN的讲解
1.在js中"="是作为赋值.var a; a=3:给a赋值为3. 2."=="称作相等,"==="被称作严格相等.当使用"== ...
- html5中的video标签和audio标签
不管是否承认,flash早已不像过往那样如日中天了.亚马逊全面放弃flash.苹果放弃flash.安卓也放弃了移动端的flash支持.事实上flash已经不太适合web开发了,因为HTML5中的vid ...