`

【转】python入门

阅读更多

转自:http://wenku.baidu.com/view/34b9601d59eef8c75fbfb3d9.html

 

内容比较全,例子比较简单,不失为学习的一份好资料。

 

 

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))
'''
知识点:

    * 
intstr函数将字符串和数字进行转换
    * 
打印以#开头,而不是习惯的//
    * 
打印多个参数的方式
    '''

 

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]))
    
'''
知识点:

    * 
将他当JavaMap来用即可.

'''

 

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
:类似Javathis参数
    
'''

 

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)

 

4 实战:文件备份小程序

 

import  os
import  shutil
import  datetime

'''
作用:将目录备份到其他路径。
实际效果:
假设给定目录"/media/data/programmer/project/python" 
备份路径"/home/diegoyun/backup/“ 
则会将python目录备份到备份路径下,形如:
/home/diegoyun/backup/yyyymmddHHMMSS/python/xxx/yyy/zzz
..

用法:更改这两个参数.
backdir:
备份目的地.
copydirs:
想要备份的文件夹.
'''



def  mainLogic():
    
# add dirs you want to copy
    backdir = " d:\\test "
    
print (backdir)

    copydirs
= []
    copydirs.append(
" d:\\temp " );
    
# copydirs.append("d:\\test");
    
    

    
print ( " Copying files  =================== " )
    start
= datetime.datetime.now()

    
# gen a data folder for backup
    backdir = os.path.join(backdir,start.strftime( " %Y-%m-%d " ))
    
# print("backdir is:"+backdir)

    
    kc
= 0
    
for  d  in  copydirs:
        kc
= kc + copyFiles(d,backdir)

    end
= datetime.datetime.now()
    
print ( " Finished! =================== " )
    
print ( " Total files :  "   +  str(kc) )
    
print ( " Elapsed time :  "   +  str((end - start).seconds) + "  seconds " )

def  copyFiles(copydir,backdir):
    prefix
= getPathPrefix(copydir)
    
# print("prefix is:"+prefix )   

    i
= 0
    
for  dirpath,dirnames,filenames  in  os.walk(copydir):
        
for  name  in  filenames:
            oldpath
= os.path.join(dirpath,name)
            newpath
= omitPrefix(dirpath,prefix)
            
print ( " backdir is: " + backdir )           
            newpath
= os.path.join(backdir,newpath)
            
print ( " newpath is: " + newpath)

            
if  os.path.exists(newpath) != True:
                os.makedirs(newpath)  
            newpath
= os.path.join(newpath,name)
            
print ( " From: " + oldpath + "  to: " + newpath)
            shutil.copyfile(oldpath,newpath)
            i
= i + 1
    
return  i    

def  getPathPrefix(fullpath):
    
# Giving /media/data/programmer/project/ , get the prefix
     # /media/data/programmer/
    l = fullpath.split(os.path.sep)
    
# print(str(l[-1]=="")    
     if  l[ - 1 ] == "" :
        tmp
= l[ - 2 ]
    
else :
        tmp
= l[ - 1 ]
    
return  fullpath[0:len(fullpath) - len(tmp) - 1 ]

def  omitPrefix(fullpath,prefix):
    
# Giving /media/data/programmer/project/python/tutotial/file/test.py ,
     # and prefix is Giving /media/data/programmer/project/,
     # return path as python/tutotial/file/test.py
     return  fullpath[len(prefix) + 1 :]

mainLogic()

 

5 资源:方法详解

你可以在这里看到更多的api解释,感谢该作者: http://www.cnpython.org/docs/200/p_119.html

分享到:
评论

相关推荐

    python入门奶牛问题

    python入门奶牛问题python入门奶牛问题python入门奶牛问题python入门奶牛问题python入门奶牛问题python入门奶牛问题python入门奶牛问题python入门奶牛问题python入门奶牛问题python入门奶牛问题python入门奶牛问题...

    Python入门经典.pdf

    Python入门经典.pdf 本资源为Python入门教材,涵盖了Python编程语言的基础知识和实践应用。下面是从该资源中生成的知识点: 1. 脚本语言的特点:脚本语言不需要编译,能够快速地开发和完成一些简单的任务。Python...

    小学生python入门-极度舒适的全套Python入门教程,小学生看了也能学会.pdf

    【Python入门基础知识】 Python是一种广泛使用的编程语言,尤其适合初学者和小学生学习。它以其简洁易懂的语法和丰富的库支持而备受青睐。在“小学生python入门-极度舒适的全套Python入门教程”中,主要介绍了以下...

    【python入门必背】python入门基础知识点合集、python基础知识背记手册

    【python入门必背】python入门基础知识点合集、python基础知识背记手册 主要内容概要: 第1章 走进 Python. 第2章 Python语言基础 第3章 运算符与表达式 第4章 流程控制语句 第5章 列表与元组 第6章 字典与集合 第...

    人工智能实战,从 Python 入门到机器学习.zip

    人工智能实战,从 Python 入门到机器学习 人工智能实战,从 Python 入门到机器学习 人工智能实战,从 Python 入门到机器学习 人工智能实战,从 Python 入门到机器学习 人工智能实战,从 Python 入门到机器...

    python入门教程(非常详细),从零基础入门到精通,看完这一篇就够了.pdf

    Python 入门教程详细知识点总结 本文档提供了 Python 编程语言的详细入门教程,从零基础到精通,涵盖了 Python 的各个方面,包括语法、数据类型、函数、模块、面向对象、异常处理、网络编程和并发编程等。 第一章...

    python入门教程大全.pdf 精心整理

    【Python入门教程】系列涵盖了多个基础到进阶的Python知识点,包括了数据导入、网络爬虫、基础语法、错误处理、面试准备、模板库、服务器配置、数据结构、类型操作、异常处理、字符串处理、爬虫开发、应用场景、编码...

    Python入门基础教程全套.PPT

    Python入门基础教程全套.PPT,Python入门基础教程全套.PPT,Python入门基础教程全套.PPT,Python入门基础教程全套.PPT,Python入门基础教程全套.PPT,Python入门基础教程全套.PPT,Python入门基础教程全套.PPT,...

    Python入门经典(英文版)中文书签

    1. "Python入门经典(英文版)中文书签"说明了此文件与Python编程语言的学习有关,并且存在中文版的书签来辅助学习。"Python入门经典"这部分告诉我们这本书是一本适合初学者的入门级教程。"英文版"表明原书为英文版...

    python入门配套教程百度云分享.pdf

    千锋教育 Python 视频教程 www.qfedu.com/video 做真实的自己-用良心做教育 python 入门配套教程百度云分享 Python 由于其简单,快速,库丰富的特点在国内使用的越来越广泛。最 近几年它出现了爆发式的增长,而且与...

    Python入门基础教程0基础!!!易懂!!!

    Python入门基础教程Python入门基础教程Python入门基础教程Python入门基础教程Python入门基础教程Python入门基础教程Python入门基础教程Python入门基础教程Python入门基础教程Python入门基础教程Python入门基础教程...

    Python基础教程,Python入门教程(非常详细).pdf

    Python以其简洁易学的特点闻名,对于初学者而言,它是入门编程的理想选择。相比Java等语言,Python的代码更简洁,例如,同样的功能,Java可能需要100行代码,而Python可能只需20行。Python的易学性在于它无需关注...

    人工智能实战——从Python入门到机器学习资料大全.zip

    人工智能实战——从Python入门到机器学习资料大全。包含:Python 基础教程、10个编程技巧、Python高级编程、优化算法、实例学习Numpy与Matplotlib、实例学习pandas、机器学习、深度学习、梯度下降、实验等等等等人工...

    python入门教程(PPT39页).pptx

    Python的设计理念强调代码的可读性和简洁的语法,使得它非常适合初学者入门。在1999年,Guido向DARPA介绍了Python的特点,包括它的简单性、直观性、强大功能以及开源性质,这些都使得Python成为了一门适用于日常短期...

    Python入门.pdf

    Python入门.pdf 本文档主要针对Python语言的入门知识,涵盖了Python的特点、适合领域、实际应用、与其他语言的比较、变量和数据类型等方面的知识点。 Python语言的特点是优雅、明确、简单,使用Python应该尽量写...

    Python 入门指南 Python 入门指南

    python入门 Python 入门指南

    Python入门基础教程全套.ppt下载

    Python 入门基础教程全套 Python 是一种广泛应用的高级编程语言,开发环境的配置、程序执行原理是初学者必须掌握的知识点。本教程将带领读者了解 Python 的发展历程、特点、应用领域,并指导读者掌握 PyCharm 编写...

    Python零基础入门到精通基Python100个源码实例.zip

    Python零基础入门到精通Python零基础入门到精通学习教程--Python零基础入门到精通Python零基础入门到精通学习教程--Python零基础入门到精通Python零基础入门到精通学习教程--Python零基础入门到精通Python零基础入门...

    python入门和简介

    ### Python入门与简介知识点梳理 #### 一、Python概述 - **定义与特点**:Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。它由Guido van Rossum在1989年圣诞节期间构思,第一个公开发行版本发布于...

    编程小白的第一本 Python 入门书_Python入门教程_python_

    在Python入门教程中,首先会介绍编程的基本概念,包括变量、数据类型(如整型、浮点型、字符串、布尔型)以及运算符的使用。你会了解如何声明并操作这些基本数据类型,进行算术运算和逻辑判断。接着,会深入讲解控制...

Global site tag (gtag.js) - Google Analytics