1 输出你好
#打开新窗口,输入:
#! /usr/bin/python
# -*- coding: utf8 -*-
s1=input("Input your name:")
print("你好,%s" % s1)
'''
知识点:
* input("某字符串")函数:显示"某字符串",并等待用户输入.
* print()函数:如何打印.
* 如何应用中文
* 如何用多行注释
'''
2 输出字符串和数字
但有趣的是,在javascript里我们会理想当然的将字符串和数字连接,因为是动态语言嘛.但在Python里有点诡异,如下:
#! /usr/bin/python
a=2
b="test"
c=a+b
运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数进行转换
#! /usr/bin/python
#运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数进行转换
a=2
b="test"
c=str(a)+b
d="1111"
e=a+int(d)
#How to print multiply values
print ("c is %s,e is %i" % (c,e))
'''
知识点:
* 用int和str函数将字符串和数字进行转换
* 打印以#开头,而不是习惯的//
* 打印多个参数的方式
'''
3 列表
#! /usr/bin/python
# -*- coding: utf8 -*-
#列表类似Javascript的数组,方便易用
#定义元组
word=['a','b','c','d','e','f','g']
#如何通过索引访问元组里的元素
a=word[2]
print ("a is: "+a)
b=word[1:3]
print ("b is: ")
print (b) # index 1 and 2 elements of word.
c=word[:2]
print ("c is: ")
print (c) # index 0 and 1 elements of word.
d=word[0:]
print ("d is: ")
print (d) # All elements of word.
#元组可以合并
e=word[:2]+word[2:]
print ("e is: ")
print (e) # All elements of word.
f=word[-1]
print ("f is: ")
print (f) # The last elements of word.
g=word[-4:-2]
print ("g is: ")
print (g) # index 3 and 4 elements of word.
h=word[-2:]
print ("h is: ")
print (h) # The last two elements.
i=word[:-2]
print ("i is: ")
print (i) # Everything except the last two characters l=len(word)
print ("Length of word is: "+ str(l))
print ("Adds new element")
word.append('h')
print (word)
#删除元素
del word[0]
print (word)
del word[1:3]
print (word)
'''
知识点:
* 列表长度是动态的,可任意添加删除元素.
* 用索引可以很方便访问元素,甚至返回一个子列表
* 更多方法请参考Python的文档
'''
4 字典
#! /usr/bin/python
x={'a':'aaa','b':'bbb','c':12}
print (x['a'])
print (x['b'])
print (x['c'])
for key in x:
print ("Key is %s and value is %s" % (key,x[key]))
'''
知识点:
* 将他当Java的Map来用即可.
'''
5 字符串
比起C/C++,Python处理字符串的方式实在太让人感动了.把字符串当列表来用吧. #! /usr/bin/python
word="abcdefg"
a=word[2]
print ("a is: "+a)
b=word[1:3]
print ("b is: "+b) # index 1 and 2 elements of word.
c=word[:2]
print ("c is: "+c) # index 0 and 1 elements of word.
d=word[0:]
print ("d is: "+d) # All elements of word.
e=word[:2]+word[2:]
print ("e is: "+e) # All elements of word.
f=word[-1]
print ("f is: "+f) # The last elements of word.
g=word[-4:-2]
print ("g is: "+g) # index 3 and 4 elements of word.
h=word[-2:]
print ("h is: "+h) # The last two elements.
i=word[:-2]
print ("i is: "+i) # Everything except the last two characters
l=len(word)
print ("Length of word is: "+ str(l))
中文和英文的字符串长度是否一样?
#! /usr/bin/python
# -*- coding: utf8 -*-
s=input("输入你的中文名,按回车继续");
print ("你的名字是 : " +s)
l=len(s)
print ("你中文名字的长度是:"+str(l))
知识点:
类似Java,在python3里所有字符串都是unicode,所以长度一致.
6 条件和循环语句
#! /usr/bin/python
#条件和循环语句
x=int(input("Please enter an integer:"))
if x<0:
x=0
print ("Negative changed to zero")
elif x==0:
print ("Zero")
else:
print ("More")
# Loops List
a = ['cat', 'window', 'defenestrate']
for x in a:
print (x, len(x))
#知识点:
# * 条件和循环语句
# * 如何得到控制台输入
7 函数
#! /usr/bin/python
# -*- coding: utf8 -*-
def sum(a,b):
return a+b
func = sum
r = func(5,6)
print (r)
# 提供默认值
def add(a,b=2):
return a+b
r=add(1)
print (r)
r=add(1,5)
print (r)
一个好用的函数
#! /usr/bin/python
# -*- coding: utf8 -*-
# The range() function
a =range (1,10)
for i in a:
print (i)
a = range(-2,-11,-3) # The 3rd parameter stands for step
for i in a:
print (i)
知识点:
?Python 不用{}来控制程序结构,他强迫你用缩进来写程序,使代码清晰.
?定义函数方便简单
?方便好用的range函数
8 异常处理
#! /usr/bin/python
s=input("Input your age:")
if s =="":
raise Exception("Input must no be empty.")
try:
i=int(s)
except Exception as err:
print(err)
finally: # Clean up action
print("Goodbye!")
9 文件处理
对比Java,python的文本处理再次让人感动
#! /usr/bin/python
spath="D:/download/baa.txt"
f=open(spath,"w") # Opens file for writing.Creates this file doesn't exist.
f.write("First line 1.\n")
f.writelines("First line 2.")
f.close()
f=open(spath,"r") # Opens file for reading
for line in f:
print("每一行的数据是:%s"%line)
f.close()
知识点:
?open的参数:r表示读,w写数据,在写之前先清空文件内容,a打开并附加内容.
?打开文件之后记得关闭
10 类和继承
class Base:
def__init__(self):
self.data = []
def add(self, x):
self.data.append(x)
def addtwice(self, x):
self.add(x)
self.add(x)
# Child extends Base
class Child(Base):
def plus(self,a,b):
return a+b
oChild =Child()
oChild.add("str1")
print (oChild.data)
print (oChild.plus(2,3))
'''
知识点:
* self:类似Java的this参数
'''
11 包机制
每一个.py文件称为一个module,module之间可以互相导入.请参看以下例子:
# a.py
def add_func(a,b):
return a+b
# b.py
from a import add_func # Also can be : import a
print ("Import add_func from module a")
print ("Result of 1 plus 2 is: ")
print (add_func(1,2)) # If using "import a" , then here should be "a.add_func" module可以定义在包里面.Python定义包的方式稍微有点古怪,假设我们有一个parent
文件夹,该文件夹有一个child子文件夹.child中有一个module a.py . 如何让Python 知道这个文件层次结构?很简单,每个目录都放一个名为_init_.py 的文件.该文件内容可以为空.这个层次结构如下所示:
parent
--__init_.py
--child
-- __init_.py
--a.py
b.py
那么Python如何找到我们定义的module?在标准包sys中,path属性记录了Python 的包路径.你可以将之打印出来:
import sys
print(sys.path)
通常我们可以将module的包路径放到环境变量PYTHONPATH中,该环境变量会自动添加到sys.path属性.另一种方便的方法是编程中直接指定我们的module路径到
sys.path 中:
import sys
import os
sys.path.append(os.getcwd()+'\\parent\\child')
print(sys.path)
from a import add_func
print (sys.path)
print ("Import add_func from module a")
print ("Result of 1 plus 2 is: ")
print (add_func(1,2))
知识点:
?如何定义模块和包
?如何将模块路径添加到系统路径,以便python找到它们
?如何得到当前路径
12 内建帮助手册
对比C++,Java的突出进步是内建Javadoc机制,程序员可以通过阅读Javadoc了解函数用法.Python也内建了一些方便函数以便程序员参考.
?dir函数: 查看某个类/对象的方法. 如果有某个方法想不起来,请敲dir. 在idle里,试试 dir(list)
?help函数: 详细的类/对象介绍. 在idle里, 试试 help(list)
1 遍历文件夹和文件
import os
import os.path
# os,os.path里包含大多数文件访问的函数,所以要先引入它们.
#请按照你的实际情况修改这个路径
rootdir = "d:/download"
for parent, dirnames, filenames in os.walk(rootdir):
#case 1:
for dirname in dirnames:
print ( "parent is:" + parent)
print ( "dirname is:" + dirname)
#case 2
for filename in filenames:
print ( "parent is:" + parent)
print ( "filename with full path :" + os.path.join(parent, filename))
'''知识点:
* os.walk返回一个三元组.其中dirnames是所有文件夹名字(不包含路径),filenames是所有文件的名字(不包含路径).parent表示父目录.
* case1 演示了如何遍历所有目录.
* case2 演示了如何遍历所有文件.
* os.path.join(dirname,filename) : 将形如"/a/b/c"和"d.java"变成/a/b/c/d.java". '''
2 分割路径和文件名
import os.path
#常用函数有三种:分隔路径,找出文件名.找出盘符(windows系统),找出文件的扩展名.
#根据你机器的实际情况修改下面参数.
spath = "D:/download/repository.7z"
# case 1:
p,f = os.path.split(spath);
print ( "dir is:" + p)
print ( "file is:" + f)
# case 2:
drv,left = os.path.splitdrive(spath);
print ( "driver is:" + drv)
print ( "left is:" + left)
# case 3:
f,ext = os.path.splitext(spath);
print ( "f is:" + f)
print ( "ext is:" + ext)
'''
知识点: 这三个函数都返回二元组.
* case1 分隔目录和文件名
* case2 分隔盘符和文件名
* case3 分隔文件和扩展名
'''
总结:5个函数
?os.walk(spath)
?os.path.split(spath)
?os.path.splitdrive(spath)
?os.path.splitext(spath)
?os.path.join(path1,path2)
3 复制文件
import shutil
import os
import os.path
src = "d:\\download\\test\\myfile1.txt"
dst = "d:\\download\\test\\myfile2.txt"
dst2 = "d:/download/test/测试文件夹.txt"
dir1 = os.path.dirname(src)
print ( "dir1 %s" % dir1)
if (os.path.exists(src) == False):
os.makedirs(dir1)
f1 = open(src, "w" )
f1.write( "line a\n" )
f1.write( "line b\n" )
f1.close()
shutil.copyfile(src, dst)
shutil.copyfile(src, dst2)
f2 = open(dst, "r" )
for line in f2:
print (line)
f2.close()
#测试复制文件夹树
try :
srcDir = "d:/download/test"
dstDir = "d:/download/test2"
#如果dstDir已经存在,那么shutil.copytree方法会报错!
#这也意味着你不能直接用d:作为目标路径.
shutil.copytree(srcDir, dstDir)
except Exception as err:
print (err)
'''
知识点:
* shutil.copyfile:如何复制文件
* os.path.exists:如何判断文件夹是否存在
* shutil.copytree:如何复制目录树
'''
总结:4个函数
?os.path.dirname(path)
?os.path.exists(path)
?shutil.copyfile(src, dst)
shutil.copytree(srcDir, dstDir)
本文基于《byteofpython》电子书及网络材料而写,电子书本身已很精简,因此不必长篇累牍,旨在抛砖引玉。“【】”内表示补充说明。 python与脚本语言 首先我们知道,脚本与脚本解释器这两个概念是统一的、密不可分的。 脚本本质上就是文本文件(如用ASCII码所写的),这种文本文件用文本编辑器打开与普通的文本文件没有区别,只不过扩展名不是“.txt”,python脚本的扩展名通常是“.py”。什么样的文本文件是脚本呢?答案是:针对特定脚本解释器的语法规则所编写的,供脚本解释器来使用的文本文件。计算机仅有脚本还是不能工作(它只是文本文件),我们需要一种工具软件,用来把脚本中的代码解释成计算机指令,同时让计算机立即执行这些指令,这种工具就是脚本解释器。很显然,使用不同语法规则编写的脚本应使用不同的解释器来解释执行,因为每种脚本实际上是专为其解释器而写的,是按照解释器能识别的语法规则而写的。如果你想通过脚本使计算机工作,就要在系统中安装一种脚本解释器,然后根据这种解释器规定的语法规则编写脚本,最后启动解释器来执行这个脚本。python是众多“脚本解释器+语法规则”的一种,类似还有bash、perl、javascript等等。 比较C与python 1.代码层面看C与python 所谓不同编程语言,在代码层面来看,主要不同之处在于它们的语法规则,掌握了一种编程语言的语法规则,你就可以写出一种代码。我们写C语言代码,就是按照C语言规定的语法规则来定义变量、函数、数据结构等。同样地,遵照python的语法规则就可以编写python代码,这与写C代码没什么不同。 2.代码的存在形式 C语言中有源文件、目标文件、可执行文件这些概念,python中只有脚本及解释器。所谓的脚本、程序或者软件都是指保存代码的文本文件(虽然为了加快python模块导入时的速度,解释器会生成一种扩展名为”.pyc”的文件,它们只是用来保存中间状态的)。由于脚本既是可运行程序又是代码,可读性强、修改程序方便(不必编译,修改即可执行)是脚本的两大优点。 3.从代码到执行 C语言写好之后,我们根据目标CPU指令集来选择特定的工具链(如编译、链接工具),用它将C代码最终编译为目标CPU可直接执行的二进制文件,然后将这个二进制文件装载到内存中,执行时再将内存中程序入口地址传递给CPU,进而逐条执行程序中的指令。这是使用C语言编码,到最终计算机执行指令的过程。 使用python语言编码之后的步骤与此不同:python代码不需要被编译为可执行文件,它需要通过python解释器来控制计算机工作。就是说,系统中必须事先安装好了python解释器,
竭诚为您提供优质文档/双击可除 python学习心得 篇一:python学习经验分享 数据类型 print 输出,可以多个输出,用逗号分隔a=20printa,type(a) 20 type() 内置函数type(),用来查询变量的类型 a=20printtype(a) 基本数据类型? ? ? ?a=10int整数a=1.3float浮点数a=True真值 (True/False)a=hello!字符串 注:对于字符串来说,也可以用双引号 补充
计算结果为布尔类型 输出 补充 计算结果为浮点型 输出 序列 包括以下两种 ? ?tuple(定值表;也有翻译为元组)list(表) tuple和list的主要区别在于,一旦建立,tuple的各个元素不可再变更,而list的各个元素可以再变更一个序列作为另一个序列的元素 空序列 元素的引用 序列元素的下标从0开始 由于list的元素可变更,可以对list的某个元素赋值如果对tuple做赋值操作,会出错 范围引用 基本样式[下限:上限:步长] 在范围引用的时候,如果写明上限,那么这个上限本身不包括在内 尾部元素引用
如果s1[0:-1],那么最后一个元素不会被引用(再一次,不包括上限元素本身) 输出 字符串是元组 字符串是一种特殊的元素,因此可以执行元组的相关操作 输出 tuple中元素不可变,list中元素可变,但是如果tuple 中包含一个list,那么此list中的元素是可变的 输出 步进-1 表示分片将会从右至左进行而不是通常的从左至右 分片s以反转的顺序获取元素,即结果是偏移为4,3,2的元素 篇二:python学习报告 1、python学习报告学习目标 1.了解python的特性及用处。 2.熟悉python的基本语法。 3.能编写简单的python程序。 2、python的简单介绍 1.与perl一样,python也是一种解释语言,它完全采用面向对象的方式,语言结构介于c语言和perl语言之间。
Python总结 目录 Python总结 (1) 前言 (2) (一)如何学习Python (2) (二)一些Python免费课程推荐 (4) (三)Python爬虫需要哪些知识? (5) (四)Python爬虫进阶 (8) (五)Python爬虫面试指南 (11) (六)推荐一些不错的Python博客 (13) (七)Python如何进阶 (14) (八)Python爬虫入门 (16) (九)Python开发微信公众号 (20) (十)Python面试概念和代码 (24) (十一)Python书籍 (34)
前言 知乎:路人甲 微博:玩数据的路人甲 微信公众号:一个程序员的日常 在知乎分享已经有一年多了,之前一直有朋友说我的回答能整理成书籍了,一直偷懒没做,最近有空仔细整理了知乎上的回答和文章另外也添加了一些新的内容,完成了几本小小的电子书,这一本是有关于Python方面的。 还有另外几本包括我的一些数据分析方面的读书笔记、增长黑客的读书笔记、机器学习十大算法等等内容。将会在我的微信公众号:一个程序员的日常进行更新,同时也可以关注我的知乎账号:路人甲及时关注我的最新分享用数据讲故事。(一)如何学习Python 学习Python大致可以分为以下几个阶段: 1.刚上手的时候肯定是先过一遍Python最基本的知识,比如说:变量、数据结构、语法等,基础过的很快,基本上1~2周时间就能过完了,我当时是在这儿看的基础:Python 简介| 菜鸟教程
2.看完基础后,就是做一些小项目巩固基础,比方说:做一个终端计算器,如果实在找不到什么练手项目,可以在Codecademy - learn to code, interactively, for free上面进行练习。 3. 如果时间充裕的话可以买一本讲Python基础的书籍比如《Python编程》,阅读这些书籍,在巩固一遍基础的同时你会发现自己诸多没有学习到的边边角角,这一步是对自己基础知识的补充。 4.Python库是Python的精华所在,可以说Python库组成并且造就了Python,Python库是Python开发者的利器,所以学习Python库就显得尤为重要:The Python Standard Library,Python库很多,如果你没有时间全部看完,不妨学习一遍常用的Python库:Python常用库整理- 知乎专栏 5.Python库是开发者利器,用这些库你可以做很多很多东西,最常见的网络爬虫、自然语言处理、图像识别等等,这些领域都有很强大的Python库做支持,所以当你学了Python库之后,一定要第一时间进行练习。如何寻找自己需要的Python库呢?推荐我之前的一个回答:如何找到适合需求的Python 库?
引言 提到面向对象,总是离不开几个重要的术语:多态(Polymorphism),继承(Inheritance)和封装(Encapsulation)。Python也是一种支持OOP的动态语言,本文将简单阐述Python 对面向对象的支持。 在讨论Python的OOP之前,先看几个OOP术语的定义: ?类:对具有相同数据和方法的一组对象的描述或定义。 ?对象:对象是一个类的实例。 ?实例(instance):一个对象的实例化实现。 ?标识(identity):每个对象的实例都需要一个可以唯一标识这个实例的标记。 ?实例属性(instance attribute):一个对象就是一组属性的集合。 ?实例方法(instance method):所有存取或者更新对象某个实例一条或者多条属性的函数的集合。 ?类属性(classattribute):属于一个类中所有对象的属性,不会只在某个实例上发生变化 ?类方法(classmethod):那些无须特定的对性实例就能够工作的从属于类的函数。 1.Python中的类与对象 Python中定义类的方式比较简单: class类名: 类变量 def __init__(self,paramers): def函数(self,...) 其中直接定义在类体中的变量叫类变量,而在类的方法中定义的变量叫实例变量。类的属性包括成员变量和方法,其中方法的定义和普通函数的定义非常类似,但方法必须以self 作为第一个参数。 举例: class MyFirstTestClass: classSpec="itis a test class" def__init__(self,word): print"say "+word defhello(self,name): print"hello "+name 在Python类中定义的方法通常有三种:实例方法,类方法以及静态方法。这三者之间的区别是实例方法一般都以self作为第一个参数,必须和具体的对象实例进行绑定才能访问,而类方法以cls作为第一个参数,cls表示类本身,定义时使用@classmethod;而静态方法不需要默认的任何参数,跟一般的普通函数类似.定义的时候使用@staticmethod。 class MethodTest(): count= 0
如何快速学会Python_心得体会 一、什么是Python Python是一种计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。 二、Python的职位发展有哪些 Python全栈开发工程师(10k-20K)Python运维开发工程师(15k-20K)Python高级开发工程师(15k-30K)Python大数据工程师(15K-30K)Python机器学习工程师(15k-30K)Python架构师(20k-40k) 目前应用最多的:全栈开发、数据分析、运维开发,今天我们就以这三个重点的岗位来做一下自学Python的规划,希望你在学之前就能有结果的来走得更远。 三、该如何学好Python 1、明确目标 其实很多人在学习Python之前很少想这个,因为很多人说:现在Python很火呀,所以我才需要学。这个其实跟你自己没有什么关系,例如:你曾经想做一个网站不会开发,现在可以做了,现在Python很火并且你也要学来找工作,未来Python很火,我具备了Python 的技能会不错。 所以我们首先要明确自己的目标,确定学习的决心,坚持自己的选择。 2、明确学习规划 ①.目前市场需求主流的岗位里,你得选择一个其中你目前看来可以学,并且最敢兴趣学习的方向; ②.在方向选择好后,对照招聘网站:拉勾、智联、Boss直聘等网站的岗位要求,进行学习内容的统计与大概的记录; ③.分模块的计划你学习这个模块的时间和完成的大概目标; ④.列出你可能出现的学习误差与为之准备的应对方案; 其实任何学习重要的不是有什么资料,核心是如何学,学多久,有没有时间限制,最关键的一点是在起步阶段,开始属于激情期,激情在前面释放越多,后面的持续力就很弱,好了这就是关于学习计划。 废话不多说,那我们来看看一个普适性的学习Python的流程; 1天——下载并安装好学习环境:到网站上下载一个python3.0以上的版本。我建议初学者,不要下载具有IDE功能的集成开发环境,比如Eclipse插件等。 1周——下载一些python的学习文档,比如《简明Python教程》,《笨办法学Python》等等。通过学习语法,掌握python中的关键字语法,函数语法,数学表达式、变量、数据结构、语法等等等 1. 了解Python是什么,都能做些什么? 2. 知道什么是变量、算法、解释器 3. Python基本数据类型 4. 列表和元组的操作方法 5. 字符串操作方法 6. 基本的字典操作方法 7.任何知识它的基础知识都是有些枯燥的,现在我们就可以动手来做一些逻辑层面的东西了。掌握if、else、elif、while、for、continue、break和列表推导式等这些语句的使用,还有程序中的异常处理。 2周——看完基础后,就是做一些小项目巩固基础,python具备很好的交
0、命令行常用命令 命令行(Windows下叫“命令提示符”,Mac下叫“终端”)里的常用命令。打开命令行,我们会看到每行前面都有诸如 C:\Documents and Settings\Crossin> 或者 MyMacBook:~ crossin$ 之类的。 这个提示符表示了当前命令行所在目录。 第一个常用的命令是: dir (windows环境下) ls (mac环境下) dir和ls的作用差不多,都是显示出当前目录下的文件和文件夹。 第二个常用命令是: cd 目录名 通过dir或ls了解当前目录的结构之后,可以通过“cd 目录名”的方式,进入到当前目录下的子目录里。 如果要跳回到上级目录,可以用命令: cd .. 另外,Windows下如果要写换盘符,需要输入 盘符: 比如从c盘切换到d盘C:\Documents and Settings\Crossin>d: 有了以上两个命令,就可以在文件目录的迷宫里游荡了。虽然没可视化的目录下的操作那么直观,但是会显得你更像个程序员。。。 于是乎,再说个高阶玩法:现在你可以不用idle那套东西了,随便找个顺手的文本软件,把你的代码写好,保存好,最好是保存成py文件。然后在命令行下进入到py文件保存的目录,使用命令:python 程序保存的文件名 就可以运行你写的程序了。 一、关于分号“;” 在C、Java等语言的语法中规定,必须以分号作为语句结束的标识。Python也支持分号,同样用于一条语句的结束标识。但在Python中分号的作用已经不像C、Java中那么重要了,Python中的分号可以省略,主要通过换行来识别语句的结束。 例如,以下两行代码是等价的:
一、变量 方法UPPer()将字符串全部大写 方法IOWer()将字符串全部小写 方法rstrip()删除字符串末尾空白 方法IStriP()剔除字符串开头空白 方法StriP()剔除字符串两端空白 方法str()转换成字符串类型 二、列表 1、列表是有序集合,索引从0 开始,倒序从-1 开始,用[]来表示,用逗号分隔其中的元素。 2、append()方法在列表末尾增加元素 3、insert()方法可在列表的任意位置添加新元素,需要制定新元素的索引和值例如: mm=[ ‘11 ,'22','33'] Mm.insert(0, '00') 输出mm :[‘00 ,'11 ,'2 2 ,'3 3 '] 4、使用deI 语句删除元素知道元素位置,通过del mm[0] 删除第一个元素 5、使用pop()方法删除列表末尾的元素,并可以接着使用他的值 例如:ss=mm.pop() 输出mm:[‘11,'22'] Ss=00 6、使用pop()方法也可以删除列表任何位置的元素,需要在()中指定要删除的元素索引即可。例如:ss=mm.pop(0) 输出mm:[‘11,'22'] Ss=00 7、根据值删除元素,使用方法remove() 例如:ss=mm.remove( ‘33') 输出mm:[‘11,'22'] Ss=33 &方法sort()对列表进行永久性排序--按字母顺序排序 9、方法sort()传递参数reverse=True,即sort(reverse=True)对列表进行永久性排序--按字母相反顺序排序 10、使用函数SOrted()对列表进行临时排序,不影响原始排列顺序 11、方法SOrted()传递参数reverse=True, 即卩sort(reverse=True)对列表进行临时排序-按字母相反顺序排序 12、倒着打印列表,可使用方法reverse(),反转列表元素的排列顺序(不是按字母相反顺序 排列) 13、函数len()可快速获悉列表长度 三、创建数字列表 1、使用函数range()可以轻松的生成一系列数字例如:for value in rang(1,5): Print(value) 输出的是 1 2 3 4
目录 Python总结......................................... 错误!未定义书签。 前言............................................ 错误!未定义书签。 (一)如何学习Python............................ 错误!未定义书签。 (二)一些Python免费课程推荐................... 错误!未定义书签。 (三)Python爬虫需要哪些知识?.................. 错误!未定义书签。 (四)Python爬虫进阶............................ 错误!未定义书签。 (五)Python爬虫面试指南........................ 错误!未定义书签。 (六)推荐一些不错的Python博客................. 错误!未定义书签。 (七)Python如何进阶............................ 错误!未定义书签。 (八)Python爬虫入门............................ 错误!未定义书签。 (九)Python开发微信公众号...................... 错误!未定义书签。 (十)Python面试概念和代码...................... 错误!未定义书签。 (十一)Python书籍.............................. 错误!未定义书签。
前言 知乎:路人甲 微博:玩数据的路人甲 微信公众号:一个程序员的日常 在知乎分享已经有一年多了,之前一直有朋友说我的回答能整理成书籍了,一直偷懒没做,最近有空仔细整理了知乎上的回答和文章另外也添加了一些新的内 容,完成了几本小小的电子书,这一本是有关于Python方面的。 还有另外几本包括我的一些数据分析方面的读书笔记、增长黑客的读书笔记、机器学习十大算法等等内容。将会在我的微信公众号:一个程序员的日常进行更新,同时也可以关注我的知乎账号:路人甲及时关注我的最新分享用数据讲故事。 (一)如何学习Python 学习Python大致可以分为以下几个阶段: 1.刚上手的时候肯定是先过一遍Python最基本的知识,比如说:变量、数据结构、语法等,基础过的很快,基本上1~2周时间就能过完了,我当时是在这儿看 的基础:Python 简介 | 菜鸟教程 2.看完基础后,就是做一些小项目巩固基础,比方说:做一个终端计算器,如果 实在找不到什么练手项目,可以在Codecademy - learn to code, interactively, for free上面进行练习。 3. 如果时间充裕的话可以买一本讲Python基础的书籍比如《Python编程》,阅读这些书籍,在巩固一遍基础的同时你会发现自己诸多没有学习到的边边角 角,这一步是对自己基础知识的补充。 库是Python的精华所在,可以说Python库组成并且造就了Python,Python库是Python开发者的利器,所以学习Python库就显得尤为重要:The Python Standard Library,Python库很多,如果你没有时间全部看完,不妨学习一遍 常用的Python库:Python常用库整理 - 知乎专栏
0、命令行常用命令 命令行( Windows 下叫“命令提示符”,Mac 下叫“终端”)里的常用命令。打开命令行,我们 会看到每行前面都有诸如 C:\Documents and Settings\Crossin> 或者 MyMacBook:~ crossin$ 之类的。 这个提示符表示了当前命令行所在目录。 第一个常用的命令是: dir ( windows 环境下) ls ( mac 环境下) dir 和 ls 的作用差不多,都是显示出当前目录下的文件和文件夹。 第二个常用命令是: cd 目录名 通过 dir 或 ls 了解当前目录的结构之后,可以通过“cd目录名”的方式,进入 到当前目录下的子目录里。 如果要跳回到上级目录,可以用命令: cd .. 另外, Windows 下如果要写换盘符,需要输入 盘符 : 比如从 c 盘切换到 d 盘 C:\Documents and Settings\Crossin>d: 有了以上两个命令,就可以在文件目录的迷宫里游荡了。虽然没可视化的目录下 的操作那么直观,但是会显得你更像个程序员。。。 于是乎,再说个高阶玩法:现在你可以不用 idle 那套东西了,随便找个顺手的文 本软件,把你的代码写好,保存好,最好是保存成 py 文件。然后在命令行下进入 到 py 文件保存的目录,使用命令: python 程序保存的文件名 就可以运行你写的程序了。 一、关于分号“;” 在 C、Java 等语言的语法中规定,必须以分号作为语句结束的标识。 样用于一条语句的结束标识。但在Python 中分号的作用已经不像 Python 也支持分号,同C、Java 中那么重 要了, Python 中的分号可以省略,主要通过换行来识别语句的结束。
python学习报告 Python 1、 Python 学习报告 学习目标 1. 了解python的特性及用处。 2. 熟悉python的基本语法。 3. 能编写简单的python程序。 2、 Python的简单介绍 1. 与 Perl 一样, Python 也是一种解释语言,它完全采用面向对象的方式,语言结构介于 C 语 言和 Perl 语言之间。虽然它被视作一种高极语言,但它的内置解释器的功能却非常基本,仅有几种功能、操作符和关键词便构成了整个程序语言。它的优势可不仅如此,它还能通过一系列的模块进行扩充。它既比 Perl 和 VB 语句更快更好,又比 C 和 C++ 语言更有扩充性。 3、 python环境的搭建 1. python安装 1 由于python3.x与python2.x是不兼容。而目前的使用主流还是phthon。所以我学习使用的是python 2.4.3版本。该版本
已经有Centos系统自带。 2 如没有安装python,可以自行下载安装。下载地址://https://www.wendangku.net/doc/3517636295.html,/getit/。 2. Python编辑器安装:yum install python-tools。 3. 安装完idle后,直接在终端输入idle即可运行。 熟悉python 1. python的数学计算 1 打开终端,并输入idle打开python编辑器 2 python的特点之一是支持数学运算,只要输入正确的算式,就能得到答案。 3 python的变量无须声明,可以直接使用。例1) >>> 1*5 5 例2) >>> a = 5 >>> b=3 >>> a-b 2 2. hello word 的编写 1 编写一个简单的hello word程序 2 输出字符串可以用print,同时要给字符串加上单引号或者双引号。例1) >>> print \ hello word 1 4、 Python 例2) >>> print 'ok' ok
Python初步学习总结 【Help】- 【InstallNewSoftware】。 在弹出的对话框中,点击Add按钮,添加新的安装源。 在Location处填写安装源的网址(https://www.wendangku.net/doc/3517636295.html,/updates),并为之取一个名字填写在Name处,比如我这里写的是PyDev。 确定后可以看到一个Pending过程,然后得到如下图所示的插件:勾选后,点击Next进行安装。 不过,由于网络的原因,这种方法安装PyDev极有可能失败,提示网络连接错误等。 离线安装在解决方法是直接将下载的离线包解压,得到plugins和features文件夹,放到Eclipse的dropins目录下。 重启Eclipse,PyDev插件即可安装成功。 4.PyDev插件配置安装好PyDev插件后,还并不能正常使用,还需要配置Python的解释器。 打开Eclipse,选择 【Window】- 【Preferences】,找到 【PyDev】,选择其中的 【Interpreter–Python】。 点击[new],然后找到安装的python目录,然后选择python.就行,剩下的就会自动帮你加载完成。
如果对于需要开发MonkeyRunner的就需要按照下面的步骤去对于Jython的解释器进行配置。 通过上面的工具安装完成之后就能够进行开发了。 2.语法学习1.可以通过下面的这个网站进行学习:2.还可以在其官网上面看原始的资料进行学习https://https://www.wendangku.net/doc/3517636295.html,/doc/ 3.开发体验1.在开发MonkeyRunner的时候,需要额外的添加一些lib库。 添加步骤如下:2.在开发MonkeyRunner的过程中需要对于所使用的jar包熟悉。 所以通过反编译工具对于jar包包含的类和方法进行查看。 工具:方法:1.解压这个工具2.执行jd-gui.3.添加 【File】---》 【Openfile】添加你要查看的jar包就行。 3.开发工程需要对于页面的控件ID进行查询,可以使用androidsdk中的monitor.bat工具。 1.将手机连接PC,adb端口可用,有的机器查看需要root权限。 2.点击这个工具,双击执行,然后将连接的手机调整到需要查看的界面下。 3.打开之后就是如下的界面,按照下面的步骤进行操作。 4.其中这个工具还可以看到其他的关于界面的一些布局信息。
一、变量 方法upper()将字符串全部大写 方法lower()将字符串全部小写 方法rstrip()删除字符串末尾空白 方法lstrip()剔除字符串开头空白 方法strip()剔除字符串两端空白 方法str()转换成字符串类型 二、列表 1、列表是有序集合,索引从0开始,倒序从-1开始,用[]来表示,用逗号分隔其中的元素。 2、append()方法在列表末尾增加元素 3、insert()方法可在列表的任意位置添加新元素,需要制定新元素的索引和值 例如:mm=[‘11’,’22’,’33’] Mm.insert(0,’00’) 输出mm:[‘00’,’11’,’22’,’33’] 4、使用del语句删除元素 知道元素位置,通过del mm[0]删除第一个元素 5、使用pop()方法删除列表末尾的元素,并可以接着使用他的值 例如:ss=mm.pop() 输出mm:[‘11’,’22’] Ss=00 6、使用pop()方法也可以删除列表任何位置的元素,需要在()中指定要删除的元素索引即可。例如:ss=mm.pop(0) 输出mm:[‘11’,’22’] Ss=00 7、根据值删除元素,使用方法remove() 例如:ss=mm.remove(‘33’) 输出mm:[‘11’,’22’] Ss=33 8、方法sort()对列表进行永久性排序--按字母顺序排序 9、方法sort()传递参数reverse=True,即sort(reverse=True)对列表进行永久性排序--按字母相反顺序排序 10、使用函数sorted()对列表进行临时排序,不影响原始排列顺序 11、方法sorted()传递参数reverse=True,即sort(reverse=True)对列表进行临时排序--按字母相反顺序排序 12、倒着打印列表,可使用方法reverse(),反转列表元素的排列顺序(不是按字母相反顺序排列) 13、函数len()可快速获悉列表长度 三、创建数字列表 1、使用函数range()可以轻松的生成一系列数字 例如:for value in rang(1,5): Print(value) 输出的是1 2 3 4
目录 目录 1 Python学习自勉 2 1、 pygame篇章 2 1、窗口 2 1、创建窗口 2 2、退出窗口 2 3、颜色的选择 3 Python学习自勉每天一小步,前进一大步! 坚持!加油!
1、pygame篇章 1、窗口 1、创建窗口 screen=pygame.display.set_mode([640,480]) #定义窗口大小为640*480 pygame.display.set_caption('hello world')#定义窗口的标题为'hello world' screen.fill([255,255,255])#用白色填充窗口 2、退出窗口 while True: for event in pygame.event.get(): if event.type==pygame.QUIT: sys.exit() 3、颜色的选择 pygame使用的是RGB系统。纯绿色用[0,255,0],纯蓝色用[0,0,255],纯红色用[255,0,0]。如果不使用RGB记法,pygame还提供了一个命名颜色列表,也可以直接使用这些命名颜色。定义好的颜色句有600多个,可以在colordict.py文件中查看具体名称。使用命名列表时,首先要在程序最前面导入THECOLORS from pygame.color import THECOLORS 然后使用某个命名颜色: pygame.draw.circle(screen,THECOLORS["red"],[100,100],30,0)
2、画圆 pygame.draw.circle()用来画圆形,具体包括五个参数: (1) 画圆的表面,在本例中用screen创建了一个窗口,所以是画在screen 表面上。 (2) 用什么颜色来画,如用红色[255,0,0]。 (3) 在什么位置画,[top,left]。 (4) 半径。 (5)线宽,其中0表示完成填充。 pygame.draw.circle(screen,[255,0,0],[100,100],30,0) 3、画矩形 pygame.draw.rect()用来创建一个矩形。Rect(left,top,width,height)用来定义位置和宽高,具体代码如下: pygame.draw.rect(screen,[255,0,0],[250,150,300,200],0) 备注:以上定义各种数字时,可以使用变量来代替定义 banjing=random.randint(0,100) width=random.randint(0,250) height=random.randint(0,100) top=random.randint(0,400) left=random.randint(0,500) pygame.draw.circle(screen,THECOLORS['red'],[left,top],banjing,1)
1.获得节点X的坐标 例:>>> a=mdb.models['Model-1'].parts['Part-1'].nodes[33].coordinates >>> a (5.0, 16.25, 14.0) #---# (x,y,z) 2. mdb.models[‘Model-1’].ConstrainedSketch(name=’__profile__’,sheetSize=0.3 s= mdb.models[‘Model-1’].ConstrainedSketch(name=’__profile__’,sheetSize=0.3 s.sketchOptions.setValues(decimalPlaces=3,viewStyle=AXISYM) s.setPrimaryObject(option=STANDALONE) s.ConstructionLine(point1=90.0,-100.0),piont2=(0.0,100.0)) 3.加力 例: a = mdb.models['Model-1'].rootAssembly session.viewports['Viewport: 1'].setValues(displayedObject=a) session.viewports['Viewport: 1'].assemblyDisplay.setValues(loads=ON, bcs=ON, predefinedFields=ON, connectors=ON) #---给一个面加压力 a = mdb.models['Model-1'].rootAssembly s1 = a.instances['Part-1-1'].faces side1Faces1 = s1.getSequenceFromMask(mask=('[#4 ]', ), ) #--------点选面 region = regionToolset.Region(side1Faces=side1Faces1) mdb.models['Model-1'].Pressure(name='Load-1', createStepName='Step-1', region=region, distributionType=UNIFORM, field='', magnitude=99.0, amplitude=UNSET) 另例:先设定的’Surf-1’ a = mdb.models['Model-1'].rootAssembly region = a.instances['Part-1-1'].surfaces['Surf-1'] mdb.models['Model-1'].Pressure(name='Load-3', createStepName='Step-1', region=region, distributionType=UNIFORM, field='', magnitude=888.0, amplitude=UNSET)(加粉的可去掉,有时报错!)
1.工具安装 1. 对于工具的安卓包括eclipse+java jdk这个不用多讲。 2. 在这个网站上面将https://https://www.wendangku.net/doc/3517636295.html,/downloads/下载,安装,然后配置python 下载的环境变量。 3. 按照介绍下载python for eclipse。具体步骤如下: 在线安装 在线安装PyDev的方法极有可能失败,请谨慎选择。 打开Eclipse,选择【Help】-【Install New Software】。 在弹出的对话框中,点击Add按钮,添加新的安装源。 在Location处填写安装源的网址(https://www.wendangku.net/doc/3517636295.html,/updates),并为之取一个名字填写在Name处,比如我这里写的是PyDev。 确定后可以看到一个Pending过程,然后得到如下图所示的插件:
勾选后,点击Next进行安装。 不过,由于网络的原因,这种方法安装PyDev极有可能失败,提示网络连接错误等。 离线安装 在https://https://www.wendangku.net/doc/3517636295.html,/projects/pydev/网站下面,下载你需要的pydev的版本。下载压缩包然后进行解压。 解决方法是直接将下载的离线包解压,得到plugins和features文件夹,放到Eclipse的dropins目录下。重启Eclipse,PyDev插件即可安装成功。 4.PyDev插件配置 安装好PyDev插件后,还并不能正常使用,还需要配置Python的解释器。 打开Eclipse,选择【Window】-【Preferences】,找到【PyDev】,选择其中的【Interpreter – Python】。点击[new],然后找到安装的python目录,然后选择python.exe就行,剩下的就会自动帮你加载完成。 如果对于需要开发MonkeyRunner的就需要按照下面的步骤去对于Jython的解释器进行配置。 https://www.wendangku.net/doc/3517636295.html,/hello0370/article/details/41285041?utm_source=tuicool MonkeyRunner On Eclipse.docx 通过上面的工具安装完成之后就能够进行开发了。 2.语法学习 1.可以通过下面的这个网站进行学习: https://www.wendangku.net/doc/3517636295.html,/wiki/0014316089557264a6b348958f449949df42a6d3a2e5 42c000/00143186362353505516c5d4e38456fb225c18cc5b54ffb000 2. 还可以在其官网上面看原始的资料进行学习 https://https://www.wendangku.net/doc/3517636295.html,/doc/ 3.开发体验 1.在开发MonkeyRunner的时候,需要额外的添加一些lib库。添加步骤如下:
Python 学习问题总结 遇到问题 1.执行如果遇到报编码问题,py文件第1行要加#coding=utf-8 2. 单行注释使用# 多行注释使用’‘ ‘ 内容 ’‘ ‘ 3. 一般在:后下一行要对代码缩进,一般是4个空格,比如定义类,方法时 defprintSql(self): print("name is "+https://www.wendangku.net/doc/3517636295.html,) 4. 在python3中,print(value)方法只能放进字符,如果是其他类型的值,要用str()方法包一下 如 print(" score is "+str(self.core)) 5.自定义类的构造方法def __init__(self,score,name): 在init前后都是2个下划线,否则构造函数就无法使用 6. 在python3中,使用MethodType能把方法动态的绑定到一个类的实例上取,但不能绑定到类上 maxS = StudentMax(11,"toss") defsetAge(self,age): self.age =age maxS.setAge = MethodType(setAge,maxS) maxS.setAge(26) 要把方法绑定到类上,使用 StudentMax.setAge = setAge 7.__slots__ 限制class的属性,如果只在子类中加属性限制,不会生效,必须在父类和子类中都加 8.在使用 @property 和 @setter给自定义类设置get,set方法时,注意 @property defbirs(self): return self._birs
@birs.setter defbirs(self,birs): self._birs=birs 表示类的属性self._XXX 这里有个下划线,如果不加,运行时候会这样的错误: self.birs=birs RuntimeError: maximum recursion depth exceeded 根据字面意思很难找出错误原因 9. 在对类做定制时, __str__,__call__,__next__,__iter__,__getitem__,__getattr_ _ 这些方法都是前后都带2个下划线 10. 将对象转换为dict fromdjango.forms.models import model_to_dict di = model_to_dict(user, exclude=['is_active', 'is_stuff']) 源码:defmodel_to_dict(instance, fields=None, exclude=None): 参数instance是对象实例,fields是指定需要哪些字段,exclude是指定排除哪些字段,exclude比fields优先级高。
Python 学习报告 1、学习目标 1.了解python的特性及用处。 2.熟悉python的基本语法。 3.能编写简单的python程序。 2、Python的简单介绍 1.与 Perl 一样, Python 也是一种解释语言,它完全采用面向对象的方式,语言结构介于 C 语 言和 Perl 语言之间。虽然它被视作一种高极语言,但它的内置解释器的功能却非常基本,仅有 几种功能、操作符和关键词便构成了整个程序语言。它的优势可不仅如此,它还能通过一系列的 模块进行扩充。它既比 Perl 和 VB 语句更快更好,又比 C 和 C++ 语言更有扩充性。 3、python环境的搭建 1.python安装 1由于python3.x与python2.x是不兼容。而目前的使用主流还是phthon。所以我学习使用的是python 2.4.3版本。该版本已经有Centos系统自带。 2如没有安装python,可以自行下载安装。下载地址 https://www.wendangku.net/doc/3517636295.html,/getit/。 2.Python编辑器安装:yum install python-tools。 3.安装完idle后,直接在终端输入idle即可运行。 4、熟悉python 1.python的数学计算 1打开终端,并输入idle打开python编辑器 2python的特点之一是支持数学运算,只要输入正确的算式,就能得到答案。 3python的变量无须声明,可以直接使用。 例1)>>> 1*5 5 例2)>>> a = 5 >>> b=3 >>> a-b 2 2.hello word 的编写 1编写一个简单的hello word程序 2输出字符串可以用print,同时要给字符串加上单引号或者双引号。 例1)>>> print "hello word" hello word