Python初学总结
下边的总结都是在python3上
一。基础
1.输出与输入:
输出:print(变量/字符串)
输入:input() 返回的是字符串
price=input()
print(price)
2.python风格
(1)注释 #
(2)一般情况是一行结束该句结束,但是如果想要续行,在行的结尾加上 \
(3)无需换行符也可以换行的符号:'''
(4)一行可以有多条语句,
3.标识符
基本和java类似,同时也区分大小写
关键字:
4.表达式
(1)根据值确定类型
(2)以”引用“的方式实现赋值
(3)增量操作符:+= -= *= /= %= ** = <<= >>= &= ^= |=
5.python数据类型
(1)(长)整型:整型和长整型并不严格区分,整型值后加“ L”即为长整型
(2)布尔型:仅有2个值:True、 False,本质上是用整型的1、 0分别存储的
(3)浮点数:即数学中的实数,可以类似科学计数法表示
(4)复数型:实数+虚数 就是复数,虚数部分必须有j
复数可以分离实数部分和虚数部分:复数.real 复数.imag
复数的共轭:复数.conjugate()
(5)字符串:单引号、双引号、三引号内的都是字符串,不可变类型
(6)列表:强大的类型,用方括号 [] 界别,可变类型
(7)元组:与列表相似,用小括号 () 界别,不可变类型
(8)映射类型 字典:用大括号 {} 界别,类似于哈希表的键值对
6 运算符
乘方**、正负号+ -、乘除* /、整除//、 取余%、加减+ -
整型除法返回浮点数,要得到整型结果使用//
7.比较运算
数值的比较:按值比大小
字符串的比较:按ASCII码值大小
不等于只用“ !=”表示,不支持“ <>”
8.逻辑运算:
逻辑运算符优先级:not、 and、 or
9.字符运算符:
原始字符串操作符 (r / R):– 用于一些不希望转义字符起作用的地方
Unicode 字符串操作符( u / U ):– 转换成Unicode字符串
f = open(r'c:\python\test.py','w') #不会报错
f = open('c:\python\test.py','w') #会报错
10 内建函数
内建函数不需要import就可以使用,而非内建函数则需要import
from math import *
print(floor(-35.4))
Python通常用“ import 模块”的方式将现成模块中的函数、类等重用到其他代码块中
import math
print(math.pi)
导入多个模块
import ModuleName1, ModuleName2, …
模块里导入指定的模块属性,也就是把指定名称导入到当前作用域
from Module1 import ModuleElement
11 包
一个有层次的文件目录结构,定义了一个由模块和子包组成的 Python 应用程序执行环境
#方式一
import AAA.CCC.c1
AAA.CCC.c1.func1(123)
#方式二
from AAA.CCC.c1 import func1
func1(123)
12库
库是一组具有相关功能的模块的集合
二。面面观
(1)range用来生成一个真是的列表
range (start, end, step=1)
range (start, end)
range (end)
(2)for循环
①iterator_object 可以是String List Tuple Dictionary File
for i in iterator_object:
print(i)
②法二
for count in range(0,5):
print(count)
(3)自定义函数的创建
函数名加上函数运算符, 一对小括号
– 括号之间是所有可选的参数
– 即使没有参数, 小括号也不能省略
def addMe2Me(x):
return (x+x)
函数的参数可以有一个默认值, 如果提供有默认值,在函数定义中,默认参数以赋值语句的形式提供,并且默认参数的值可以改变,默认参数一般都放在参数列表的最后,
函数可以像参数一样传递给另外一个函数
def f(y,x = True):
if x:
print 'x is a correct word'
print 'OK'
>>> f (68)
68 x is a correct word
OK
>>> f(68,False)
OK
>>> f(x=True,y=16) #允许改变参数列表中的参数顺序
匿名函数
>>> r = lambda x : x + x
>>> r(5)
10
(4)全局变量和局部变量
全局变量是声明在函数外边的变量,局部变量是声明在函数体内部的变量。
全局变量和局部变量可以使用相同的名字
在函数体内部可以使用global语句来强调全局变量
三。本地文件获取
(1)文件操作
对文件的操作也就那么几种,打开文件,对文件进行读或者写,然后关闭文件
首先打开文件
file_obj = open(filename, mode='r', buffering=-1)
#mode为可选参数,默认值为r
#buffering也为可选参数,默认值为-1(0代表不缓冲,1或大于1的值表示缓冲一行或指定缓冲区大小)
– f.read(), f.write(), f.readline(), f.readlines(), f.writelines()
– f.close()
– f.seek()
file_obj.read(size)− 从文件中至多读出size字节数据,返回一个字符串
file_obj.read()− 读文件直到文件结束,返回一个字符串
demo:把一个文件的内容读到另一个文件
f1= open(r'companies.txt')
cNames = f1.readlines()
for i in range(0,len(cNames)):
cNames[i] = str(i+1) + ' ' + cNames[i]
f1.close()
f2 = open(r'scompanies.txt','w')
f2.writelines(cNames)
f2.close()
file_obj.seek(offset , whence=0)
− 在文件中移动文件指针,从whence(0表示文件头部,1表示当前位置,2表示文件尾部)偏移offset个字节
- whence参数可选,默认值为0
(2)获取网络数据
import urllib.request
import re
dBytes = urllib.request.urlopen('https://hk.finance.yahoo.com/q/cp?s=%5EDJI').read()
dStr = dBytes.decode() #在python3中urllib.read()返回bytes对象而非str,语句功能是将dStr转换成str
m = re.findall('<tr><td class="yfnc_tabledata1"><b><a href=".*?">(.*?)</a></b></td><td class="yfnc_tabledata1">(.*?)</td>.*?<b>(.*?)</b>.*?</tr>', dStr)
if m:
print(m)
print ('\n')
print (len(m))
else:
print ('not match')
#re系列:
#re.match 尝试从字符串的开始匹配一个模式,如果匹配成功,则返回一个Match,否则返回一个None;
#re.search函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回,如果字符串没有匹配,则返回None。
#re.sub用于替换字符串中的匹配项
#re.split来分割字符串,如:re.split(r'\s+', text);将字符串按空格分割成一个单词列表
#re.findall可以获取字符串中所有匹配的字符串。如:re.findall(r'\w*oo\w*', text);获取字符串中,包含'oo'的所有单词。
#re.compile可以把正则表达式编译成一个正则表达式对象。可以把那些经常使用的正则表达式编译成正则表达式对象,这样可以提高一定的效率。
import re text = "JGood is a handsome boy, he is cool, clever, and so on..."
regex = re.compile(r'\w*oo\w*')
print regex.findall(text) #查找所有包含'oo'的单词
print regex.sub(lambda m: '[' + m.group(0) + ']', text) #将字符串中含有'oo'的单词用[]括起来。
import re text = "JGood is a handsome boy, he is cool, clever, and so on..."
regex = re.compile(r'\w*oo\w*') print regex.findall(text) #查找所有包含'oo'的单词 print regex.sub(lambda m: '[' + m.group(0) + ']', text) #将字符串中含有'oo'的单词用[]括起来。
(3)序列
序列包括字符串(Strings),元组(Lists),列表(Tuples)
str = 'Hello, World!'
aList = [2, 3, 5, 7, 11]
aTuple = ('Sunday', 'happy' )
pList = [('AXP', 'American Express Company', '86.40'),('BA', 'The Boeing Company', '122.64'),('CAT', 'Caterpillar Inc.', '99.44'),
('CSCO', 'Cisco Systems, Inc.', '23.78')('CVX', 'Chevron Corporation', '115.91')]
序列的访问模式
元素从0开始通过下标偏移量访问
一次可访问一个或多个元素
序列相关操作
标准类型运算符:值比较(<,>,<=,>=,==,!=),对象身份比较(is,is not),布尔运算(not,and,or)
>>> 'apple' < 'banana'
True
>>> [1,3,5] != [2,4,6]
True
>>> aTuple = ('BA', 'The Boeing Company', '122.64')
>>> bTuple = aTuple
>>> bTuple is not aTuple
False
>>> ('86.40' < '122.64') and ('apple' > 'banana')
False
序列类型运算符:获取,重复,连接,判断
x in s,x not in s,s + t,s * n, n * s,s[i],s[i:j],s[i:j:k]
>>> week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
>>> print week[1], week[-2], '\n', week[1:4], '\n', week[:6], '\n', week[::-1]
Tuesday Saturday
['Tuesday', 'Wednesday', 'Thursday']
['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
['Sunday', 'Saturday', 'Friday', 'Thursday', 'Wednesday', 'Tuesday', 'Monday']
>>> 'apple' * 3
'appleappleapple'
>>> 'pine' + 'apple'
'pineapple'
>>> 'BA' in ('BA', 'The Boeing Company', '122.64')
True
内建函数:序列类型转换工厂函数(list() str() basestring() tuple()),序列类型可用内建函数(enumerate() reversed() len() sorted() max() sum() min() zip())
>>> list('Hello, World!')
['H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!']
>>> tuple("Hello, World!")
('H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!')
>>> aStr = 'Hello, World!'
>>> len(aStr)
13
>>> sorted(aStr)
[' ', '!', ',', 'H', 'W', 'd', 'e', 'l', 'l', 'l', 'o', 'o', 'r']
(4)字符串
首先是字符串的遍历
# Filename: puncount.py
aStr = "Hello, World!"
bStr = aStr[:7] + "Python!"
count = 0
for ch in bStr[:]:
if ch in ',.!?':
count += 1
print('There are %d punctuation marks. ' % (count))
判断一个字符串是不是回文
sStr = "acdhdca"
if (sStr == ''.join(reversed(sStr))):
print('Yes')
else:
print ('No')
字符串的方法
(5)列表
列表可以包含可扩展的容器的对象
>>> aList = list('Hello.')
>>> aList
['H', 'e', 'l', 'l', 'o', '.']
>>> aList = list('hello.')
>>> aList
['h', 'e', 'l', 'l', 'o', '.']
>>> aList[0] = 'H'
>>> aList
['H', 'e', 'l', 'l', 'o', '.']
可以包含不同类型的对象
>>> bList = [1,2,'a',3.5]
列表中的函数
#demo1
jScores = [9, 9, 8.5, 10, 7, 8, 8, 9, 8, 10]
aScore = 9
jScores.sort() //列表排序
jScores.pop() //去掉列表的最高分和最低分
jScores.pop(0) //去掉列表的最低分
jScores.append(aScore) //列表后边追加元素
aveScore = sum(jScores)/len(jScores) //求列表中元素的平均值
print aveScore #demo2
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
weekend = ['Saturday', 'Sunday']
week.extend(weekend)
for i,j in enumerate(week):
print i+1, j Output:
1 Monday
2 Tuesday
3 Wednesday
4 Thursday
5 Friday
6 Saturday
7 Sunday
列表中的方法:
append() count() extend() index() insert() pop() remove() reverse() sort()
列表解析,动态创建列表
>>> [x for x in range(10)]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> [x ** 2 for x in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> [x ** 2 for x in range(10) if x ** 2 < 50]
[0, 1, 4, 9, 16, 25, 36, 49]
>>> [(x+1,y+1) for x in range(2) for y in range(2)]
[(1, 1), (1, 2), (2, 1), (2, 2)]
(6)元组
列表元素可以改变,元组元素不可以改变
>>> aList = ['AXP', 'BA', 'CAT']
>>> aTuple = ('AXP', 'BA', 'CAT')
>>> aList[1] = 'Alibaba'
>>> print aList
>>> aTuple1[1]= 'Alibaba'
>>> print aTuple ['AXP', 'Alibaba', 'CAT']
aTuple[1]='Alibaba'
TypeError: 'tuple' object does not support item assignment
元组用在什么地方:
在映射类型中当作键值使用,函数的特殊类型参数,作为很多内建函数的返回值
元组作为函数的形式参数:
>>> def func(args1, *argst):
print args1
print argst
>>> func('Hello,','Wangdachui','Niuyun','Linling')
Hello,
('Wangdachui', 'Niuyun', 'Linling')
元组作为函数的常见返回类型:
Python初学总结的更多相关文章
- 孤荷凌寒自学python第四十五天Python初学基础基本结束的下阶段预安装准备
孤荷凌寒自学python第四十五天Python初学基础基本结束的下阶段预安装准备 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天本来应当继续学习Python的数据库操作,但根据过去我自 ...
- Python初学笔记之字符串
一.字符串的定义 字符串是就一堆字符,可以使用""(双引号).''(单引号)来创建. 1 one_str = "定义字符串" 字符串内容中包含引号时,可以使用转 ...
- Python初学的易犯错误
当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂.这里列出了常见的的一些让你程序 crash 的运行时错误. 1)忘记在 if , elif , else , for , ...
- Python初学
经同学推荐,学习了下Python语言,看Python的介绍,它本身是一个面向对象的解释型脚本语言,我初看到这句话的时候就在想,一个脚本语言还搞成面向对象?有这个必要么?原谅我肤浅了一把. 它还被俗称为 ...
- python 初学笔记 (一)
初学python第一天,希望自己真正了解计算机语言,并且做出成效. 写下学习笔记,记录学习进度,娱乐学习,不断成长. python详细介绍: python是什么?运用到哪里?有哪些在使用它? pyth ...
- Python初学(1)
最近在学习python,以后想编写一些工作中用的到的脚本.python的入门我选择了<python从初学到入门>,这篇文章我会跟进我的学习进度.算是一个笔记吧. 我本身是熟悉C语言的,看p ...
- python初学心得之一
昨天开始接触并学习python,对python有了初步印象. 一.python主要应用方向 二.python语言类型 三.python2和3的主要区别 四.常见字符编码 五.Python语法初学 一 ...
- python初学杂记
python常用命令: 1.python 或者 python3 打开交互式python解释器 2.python hello.py 通过命令提示符运行python脚本 交互式python解释器常用 ...
- Mac下python初学之Image库(PIL)
Mac下python 使用Image库 安装PIL,下载http://www.pythonware.com/products/pil/ 解压PIL源码包,阅读README知道需要使用python se ...
- python初学day01
1.执行Python脚本时打印的字符有颜色 1. print "\033[32;1mhello\033[0m" #打印绿色 2. print "\033[31;1mhel ...
随机推荐
- 起来吧!不要做奴隶的ITproject师们!
本文转自林忠信的博客: http://davylin.blog.163.com/blog/static/8138791201441465328380/ 起来吧! 不要做奴隶的ITproject师们! ...
- 关于使用samba用户的权限设置
首先要保证你的samba安装并配置好,关于安装和配置samba请参考此文章http://blog.csdn.net/linglongwunv/archive/2010/01/19/5212875.as ...
- SpringBoot配置成Liunx服务
spring boot 可以打包成可执行的脚本来启动,其原理是在打成包时,将shell脚本注入到jar包中 #参考:https://docs.spring.io/spring-boot/docs/1. ...
- Jackson2.1.4 序列化对象时对属性的过滤
//对field(所有字段)进行过滤 //对get方法进行过滤 //对isBoolean这样的方法进行过滤 //里面的具体配置有 ANY,DEFAULT,NON_PRIVATE,NONE,PROTEC ...
- CentOS下安装Gitlab
环境 Requirements 软件 版本 CentOS 6.6 Python 2.6 Ruby 2.1.5 Git 1.7.10+ Redis 2.0+ MySQL GitLab 7-8-sta ...
- yarn是什么?为什么会产生yarn,它解决了什么问题?以及yarn的执行流程
yarn是什么?为什么会产生yarn,它解决了什么问题? 答:yarn是作业调度和集群资源管理的一个框架. 首先对之前的Hadoop 和 MRv1 简单介绍如下: Hadoop 集群可从单一节点 ...
- 多线程中的synchronized小结
1.synchronized是Java中的关键字,是一种同步锁.它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个 ...
- Hive Tunning(二)优化存储
接着上一章我们讲的hive的连接策略,现在我们讲一下hive的数据存储. 下面是hive支持的数据存储格式,有我们常见的文本,JSON,XML,这里我们主要讲一下ORCFile. Built-in F ...
- spring 优点
spring 的优点?1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 2.可以使用容易提供的众多服务,如事务管理,消息服务等 3.容器提供单例模式支持 4.容器提供了AOP技术,利用它很容易实 ...
- adb调试功能
参考: http://www.cnblogs.com/meil/archive/2012/05/24/2516055.html http://www.biemmeitalia.net/blog/and ...