Python基础

一.    简介

Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。豆瓣,Google、Yahoo等,甚至NASA(美国航空航天局)都大量地使用Python。

二.    优缺点

优点:优雅、明确、简单、跨平台。

缺点:运行速度慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时。不能加密,如果要发布你的Python程序,实际上就是发布源代码。

三.    应用领域

首选是网络应用,包括网站、后台服务等等;其次是许多日常需要的小工具,包括系统管理员需要的脚本任务等等;另外就是把其他语言开发的程序再包装起来,方便使用。

四.    安装

在Windows上安装Python,从Python的官方网站下载Python 3.7,特别要注意勾上Add Python 3.7 to PATH,然后点“Install Now”即可完成安装。安装成功后,打开命令提示符窗口,敲入python后,会出现两种情况:

1:你看到提示符>>>就表示我们已经在Python交互式环境中了,可以输入任何Python代码,回车后会立刻得到执行结果。现在,输入exit()并回车,就可以退出Python交互式环境(直接关掉命令行窗口也可以)。

a)        2. ‘python’ 不是内部或外部命令,也不是可运行的程序或批处理文件。这是因为Windows会根据一个Path的环境变量设定的路径去查找python.exe,如果没找到,就会报错。如果在安装时漏掉了勾选Add Python 3.7 to PATH,那就要手动把python.exe所在的路径添加到Path中。

文件格式:当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件

解释器:当我们从Python官方网站下载并安装好Python 3.x后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。

五.    基础语法

1:python         进入交互模式

2:exit()            退出交互模式

3:name=input('plase input') 输入

4:’hello’*3       得到hellohellohello

5:print(‘hello’) 打印字符串输出

6:字符串连接的几种方法

1:print('hello','world')    输出hello world

2:print('hello'+'world')   输出helloworld

3:print('hello''world')     输出helloworld

4:print('%s%s'%('hello','world'))  输出helloworld

str=123   print('%s%s'%('hello',str)  输出helloworld

5:list=['hello','world']     print(''.join(list))  输出helloworld

7:注释

# 单行注释

‘’’ 内容‘’’或者”””内容”””  多行注释,三个单引或者双引号

六.    数据类型

字符串str、布尔类型bool、整数int、浮点数float、数字、列表list、元组tuple、字典dict、日期datetime

字符串:

使用单引号,双引号,三引号(‘’’)

print('hello\'world')  转义单引号

print(r'hello\'world') 加r表示不转义

print('''hello

world''')  #换行

布尔类型:

True ,False,注意大小写

and、or和not运算

七.    空值

空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值

八.    数字类型转换

int(x [,base]) 将x转换为一个整数

float(x ) 将x转换到一个浮点数

str(x) 将对象x转换为字符串

repr(x) 将对象x转换为表达式字符串

eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象

tuple(s) 将序列s转换为一个元组

list(s) 将序列s转换为一个列表

chr(x) 将一个整数转换为一个字符

unichr(x) 将一个整数转换为Unicode字符

ord(x) 将一个字符转换为它的整数值

hex(x) 将一个整数转换为一个十六进制字符串

oct(x) 将一个整数转换为一个八进制字符串

九.    数字函数

abs(x)    返回数字的绝对值,如abs(-10) 返回 10

ceil(x)    返回数字的上入整数,如math.ceil(4.1) 返回 5

cmp(x, y) 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1

exp(x)    返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045

fabs(x)    返回数字的绝对值,如math.fabs(-10) 返回10.0

floor(x) 返回数字的下舍整数,如math.floor(4.9)返回 4

max(x1, x2,...)    返回给定参数的最大值,参数可以为序列。

min(x1, x2,...)    返回给定参数的最小值,参数可以为序列。

modf(x)    返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。

round(x [,n]) 返回浮点数x的四舍五入值

十.    列表

定义:list = ['Michael', 'Bob', 'Tracy']

长度:len(list)

倒转:list.reverse()

排序list.sort([func])

统计次数:list .count(obj)

找出某个值第一个匹配项的索引位置:list.index(obj)

找出某个值是否存在:obj in list  存在返回True,否则False

循环遍历:for x in list

查找元素:

list[0]     输出 'Michael'

list[-1]    输出 'Tracy'

插入元素:

list.insert(1, 'Jack')  索引号为1的位置插入

list. append ('Jack') 在列表末尾添加新的对象

删除元素:

list.pop()   删除末尾一个元素

list.pop(1)  删除索引为1的元素

del list[1]   删除索引为1的元素

list.remove(obj) 移除列表中某个值的第一个匹配项

替换元素:list[1] = 'Sarah' 替换索引为1的元素为Sarah

十一.         元组

元组与列表类似,不同之处在于元组的元素不能修改;元组使用小括号(),列表使用方括号[];

元组中只有一个元素时,需要在元素后面添加逗号,例如:tup1 = (50,);

元组与字符串类似,下标索引从0开始,可以进行截取,组合等。

定义:tup1 = ('physics', 'chemistry', 1997, 2000);

查找:tup1[2] 输出1997

找出某个值是否存在:obj in tup1  存在返回True,否则False

循环遍历:for x in tup1

个数:len(tup1)

连接:tup1+tup2

删除元组:del tup1  元组值不允许删除

返回元组中元素最大值max(tuple)

返回元组中元素最小值min(tuple)

将列表转换为元组tuple(seq)

十二.         字典

定义:dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'};

修改:dict["age"]=27

增加:dict["school"]="wutong"

删除:

del dict[‘age’] 删除字典元素

dict.clear() 清空

del dict 删除字典

方法:

len(dict) 计算字典元素个数,即键的总数。

str(dict) 输出字典可打印的字符串表示。

type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。

radiansdict.copy() 返回一个字典的浅复制

radiansdict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

radiansdict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值

radiansdict.has_key(key) 如果键在字典dict里返回true,否则返回false

radiansdict.items() 以列表返回可遍历的(键, 值) 元组数组

radiansdict.keys() 以列表返回一个字典所有的键

radiansdict.update(dict2) 把字典dict2的键/值对更新到dict里

radiansdict.values() 以列表返回字典中的所有值

十三.         日期和时间

获取时间: time.localtime(time.time())

oneday = datetime.timedelta(days=1)

#今天,2014-03-21

today = datetime.date.today()

#昨天,2014-03-20

yesterday = datetime.date.today() - oneday

#明天,2014-03-22

十四.         IF条件语句

age=input()

age=int(age)

if age<10:

print('小')

elif age<100:

print('中')

else:

print('大')

For循环语句

#range()函数,可以生成一个整数序列,再通过list()函数可以转换为list

list=list(range(5))

sum=0

for x in list:

sum+=x

print(sum) #10

十五.         while循环语句

sum=0

n=3

while n>0:

sum+=n

n-=1

print(sum)

小提示:break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环,并直接开始下一轮循环。通常都必须配合if语句使用。

Set去重:set([1, 1, 2, 2, 3, 3])  {1,2,3}

十六.         函数

定义:

一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。

空函数:

还没想好怎么写函数的代码,就可以先放一个pass来作为占位符。

Ex:

# import math语句表示导入math包,并允许后续代码引用math包里的函数。

import math

def mydef(x):

#pass #空函数

return math.ceil(x)

print(mydef(1.25))

十七.         切片截取

List[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引012,正好是3个元素。

十八.         迭代循环

默认情况下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同时迭代key和value,可以用for k, v in d.items()

enumerate函数可以把一个list变成索引-元素对

ex;for i, value in enumerate(['A', 'B', 'C']):

print(i, value)

十九.         判断数据类型

isinstance(data, (int, str, types.LongType, float))  True/False

type(obj)  返回数据类型

列表生成式

条件循环生成

s=[x*x for x in range(5) if x%2==0]

print(s)  #[0, 4, 16]

双重循环生成

s=[m+n for m in 'ABC' for n in 'XYZ']

print(s)  #['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

二十:高阶函数:

一个函数接收另一个函数作为参数,还可以把函数作为结果值返回

Ex: def add(x,y,f):

return f(x)+f(y)

print(add(1,-1,abs)) #2

map():传入的函数依次作用到序列的每个元素,结果作为新的Iterator返回。

print(list(map(str,[1,2,3]))) #将数组数字转化为字符串

reduce():把结果继续和序列的下一个元素做累积计算

from functools import reduce

def fn(x,y):

return x*10+y

print(reduce(fn,[1,2,3])) #将数组元素合并成123

filter() :用是从一个序列中筛出符合条件的元素,和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

def not_empty(s):

return s and s.strip() #去除空字符串

print(list(filter(not_empty,['1','',None]))) #['1']

sorted()函数就可以对list进行排序,参数分别是list,处理函数,反向排序

sorted(['bob', 'Zoo', 'Credit'], key=str.lower, reverse=True)

函数对象有一个__name__属性,可以拿到函数的名字

二十一:面向对象类和实例

类:

定义类是通过class关键字,class后面紧接着是类名,类名通常是大写字母的开头的单词,紧接着就是(object),表示该类是从哪个类继承下来的,通常如果没有合适的类,就是用object类,这是所有类最终都会继承的类。

Ex:class Student(object):

pass

实例:

定义好了Student类,就可以根据Student类创建出Student的实例,创建实例是通过类名+()实现的

Ex:bart=Student()

注意1:由于类起到模板的作用,因此可以在创建实例的时候,把一些我们认为必须要绑定的属性强制写进去,通过定义一个特殊的__init__方法,在创建实例的时候,就把namescore等属性绑上去

构建:class Student(object):

def  __init__(self,name,score):

self.name=name

self.score=score

def print_score(self):

print(‘%s: %s’ %(self.name: self.score))

访问:

Lisa=Student(‘lisa’ , ’88’)

Lisa.name //lisa

Lisa.print_score()

修改:

Lisa.score=’99’

print(Lisa.score) //99

注意2:注意到__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。

有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传,Python解释器自己会把实例变量传进去。

注意3:类是创建实例的模板,而实例则是一个个具体的对象,各个实例拥有的数据都互相独立,互不影响。方法就是与实例绑定的函数,和普通函数不同,方法可以直接访问实例的数据。对于两个实例变量,虽然它们都是同一个类的不同实例,但拥有的变量名称可能不同。

二十二:面向对象访问限制

如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问

Ex:class Student(object):

def __init__(self,name):

self.__name=name

python基础认识的更多相关文章

  1. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  2. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  3. Python小白的发展之路之Python基础(一)

    Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...

  4. Python之路3【第一篇】Python基础

    本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...

  5. 进击的Python【第三章】:Python基础(三)

    Python基础(三) 本章内容 集合的概念与操作 文件的操作 函数的特点与用法 参数与局部变量 return返回值的概念 递归的基本含义 函数式编程介绍 高阶函数的概念 一.集合的概念与操作 集合( ...

  6. 进击的Python【第二章】:Python基础(二)

    Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...

  7. Python之路【第一篇】python基础

    一.python开发 1.开发: 1)高级语言:python .Java .PHP. C#  Go ruby  c++  ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...

  8. python基础之day1

    Python 简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Python为我们提供了非常完善的基础代码库,覆盖了 ...

  9. python基础之文件读写

    python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到 ...

  10. python基础之编码问题

    python基础之编码问题 本节内容 字符串编码问题由来 字符串编码解决方案 1.字符串编码问题由来 由于字符串编码是从ascii--->unicode--->utf-8(utf-16和u ...

随机推荐

  1. java输入输出 -- java NIO之文件通道

    一.简介 通道是 Java NIO 的核心内容之一,在使用上,通道需和缓存类(ByteBuffer)配合完成读写等操作.与传统的流式 IO 中数据单向流动不同,通道中的数据可以双向流动.通道既可以读, ...

  2. Turn.js 实现翻书效果(自适应单双页)

    来源:https://www.cnblogs.com/hellman/p/10683492.html在上面的来源基础上增加页码显示,自适应单双页PC端效果: 移动端展示: 源码下载地址:http:// ...

  3. Python基础 第5章 条件、循环及其他语句(2)

    6. 简单推导 列表推导,是一种从其他列表创建列表的方式,其原理类似于for循环. list1 = [x * x for x in range(10)] print(list1) 结果: [0, 1, ...

  4. 《统计学习方法》极简笔记P4:朴素贝叶斯公式推导

    <统计学习方法>极简笔记P4:朴素贝叶斯公式推导 朴素贝叶斯基本方法 通过训练数据集 T={(x_1,y_1),(x_2,y_2),(x_N,y_N)...,(x_1,y_1)} 学习联合 ...

  5. PAT(B) 1018 锤子剪刀布(C:20分,Java:18分)

    题目链接:1018 锤子剪刀布 分析 用一个二维数组保存两人所有回合的手势 甲乙的胜,平,负的次数刚好相反,用3个变量表示就可以 手势单独保存在signs[3]中,注意顺序.题目原文:如果解不唯一,则 ...

  6. gdb调试命令总结

    常用命令: l 列出源代码 每次默认列10行 list 行号   列出从第几行开始的源代码 list函数名     列出某个函数的源代码 r    运行程序 next(或n)     执行下一行语句 ...

  7. java 用户线程和守护线程

    在Java中通常有两种线程:用户线程和守护线程(也被称为服务线程)通过Thread.setDaemon(false)设置为用户线程通过Thread.setDaemon(true)设置为守护线程线程属性 ...

  8. Angular系列-AngularJs1使用Ace编辑器

    Ace编辑器 Ace编辑器是一个嵌入web的代码编辑器,支持语法高亮,自动补全等功能,如果想在页面展示或编辑代码,使用该工具是很合适的. 参考项目地址:https://github.com/ajaxo ...

  9. MySQL 解决source 命令导入数据库 乱码

    在我把库.表.sql脚本的编码格式都设置为UTF-8后,任然有乱码,任然有报错: 于是按以下方式重新登录后,解决: mysql -u root -p --default-character-set=u ...

  10. (一)ORM基础

    一.ORM思想解析 要了解学习Hibernate框架,就不得不提到ORM思想,因为Hibernate就是基于ORM思想的一个产品. 1.1 介绍 广义上,ORM指的是面向对象的对象模型和关系型数据库的 ...