问题描述:

         Python基础篇

 

参考资料:

         (1)http://www.cnblogs.com/octobershiner/archive/2012/12/04/2801670.html

         (2)http://www.cnblogs.com/itech/archive/2010/06/20/1760345.html

例子:

        求解Fibonacci

glb_var.py

  1. gl_count=1

 

path.py

  1. # coding:utf-8
  2. '''
  3. Created on 2014-4-28
  4.  
  5. @author: Administrator
  6. '''
  7.  
  8. import os
  9.  
  10. def show_path():
  11. if __name__ == '__main__':
  12. # 输出路径
  13. print os.getcwd()
  14. else:
  15. print __name__

 

fibonacci.py

  1. # encoding:utf-8
  2. '''
  3. Created on 2014-4-28
  4.  
  5. @author: Administrator
  6. '''
  7.  
  8. import glb_var, sys
  9. from path import show_path
  10.  
  11. def fibonacci(n):
  12. a, b = 0, 1
  13. if(n == 1):
  14. print n;
  15. else:
  16. while(n > 0):
  17. print "%d : %d" % (glb_var.gl_count, a + b)
  18. b, a = a, a + b
  19. n = n - 1
  20. glb_var.gl_count += 1
  21.  
  22. value = input("please enter an integer:")
  23. fibonacci(value)
  24. show_path()
  25.  
  26. #输出path和modules
  27. print sys.path
  28. print sys.modules

 

以上例子中Python基本知识,包含:

(1)注释

(2)包、模块

(3)print输入与输出

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

(1)注释

       Python的注释包括单行注释、多行注释、特殊注释

  • 单行注释:采用 #开头
  • 多行注释:采用#来进行多行注释,代码间注释,不要刻意对齐注释,google编程规范

 

  • 特殊注释:用 “”"三个引号标识,第一行大写开头,作简要概述,句号结尾,空一行开始详细的描述。他的好处是 这些注释保存在方法的__doc__属性中,可以打印显示。这个其实和java 的doc也很相似

   

 

(2)包、模块

  • 模块(module)

         通常模块为一个文件,直接使用import导入就可以了,可以作为module的文件类型有“.py”、“.pyo”、“.pyc”、“.pyd”、“.so”、“.dll”

上例子中使用import __init__就可以将__init__文件作为模块导入,系统在导入模块时做了三件事:

          (1)为源代码中定义的对象创建一个名字空间,通过这个名字空间可以访问到模块中定义的函数和变量

          (2)在新建的名字空间中执行源代码文件

          (3)创建一个名为源代码文件的对象,该对象引用模块的名字空间,这样就可以通过这个对象访问模块中的函数和变量

用逗号分隔模块名称可以同时导入多个模块,import __init__ , os      

模块导入时可以使用as关键字改变模块引用对象的名字:

 

        使用from语句可以将模块中的对象直接导入到当前名字空间,from不创建一个模块名字空间的引用,而是把被导入模块的一个或多个对象

直接放入当前名字空间

from语句支持逗号分隔的对象,也可以使用星号(*)代表模块中除下划线以外的所有对象

如果一个模块中定义有列表__all__,则from module import  * 语句只能导入__all__列表中存在的对象

注:

       import 语句可以在程序的任何位置使用,你可以在程序中多次导入同一个模块,但模块中的代码仅仅在该模块被首次导入时执行。后面的import语句只是简单的创建一个到模块名字空间的引用而已。sys.modules字典中保存着所有被导入模块的模块名到模块对象的映射。这个字典用来决定是否需要使用import语句来导入一个模块的最新拷贝.

from module import * 语句只能用于一个模块的最顶层.特别注意:由于存在作用域冲突,不允许在函数中使用from 语句。

每个模块都拥有 __name__ 属性,它是一个内容为模块名字的字符串。最顶层的模块名称是 __main__ .命令行或是交互模式下程序都运行在__main__ 模块内部. 利用__name__属性,我们可以让同一个程序在不同的场合(单独执行或被导入)具有不同的行为,像下面这样做:

 

  • 包 (package)

           通常包总是一些目录,刻意使用import导入包,或者使用from+import导入包中的部分模块,包目录下为首的一个文件便是__init__.py

然后是一些模块文件和子目录,加入子目录中也有__init__.py,那么它就是这个包的子包

 

(3)print输出

  1. # coding:utf-8
  2. '''
  3. Created on 2014-4-28
  4.  
  5. @author: Administrator
  6. '''
  7. import math
  8.  
  9. # 整数的三种形式 十进制、八进制、十六进制
  10. def output_int():
  11. int_dec = 123
  12. int_hex = 0x12
  13. int_oct = 012
  14. print "int_dec=%d,int_hex=%d,int_oct=%d" % (int_dec, int_hex, int_oct)
  15.  
  16. # 字符串
  17. def output_string():
  18. string = "Hello World"
  19. print "string=%s,length=%d" % (string, len(string))
  20.  
  21. # 字符串也存在精度和度和
  22. def output_format():
  23. string = "hello morning!"
  24. print "%.3s" % string
  25. print "%10.3s" % string
  26.  
  27. # 浮点数
  28. def output_float():
  29. print "PI=%f" % math.pi
  30. print "PI=%10.3f" % math.pi # width=10,precise=3,align=right
  31. print "PI=%-10.3f" % math.pi # width=10,precise=3,align=left
  32. print "PI=%06d" % int(math.pi) # 填充字符
  33.  
  34. # print的两种形式:换行和不换行
  35. def output_line():
  36. print "line" #不添加逗号(,)换行
  37. print "hello", #添加逗号(,)不换行
  38. print "world"
  39.  
  40. output_int()
  41. output_string()
  42. output_format()
  43. output_float()
  44. output_line()

注:

      以上总结了print格式化输出的一些使用方法

 

关于Python中使用中文注释出现错误解决:

  1. SyntaxError: Non-ASCII character '\xe6'

(1)Python 默认的是ASCII  编码方式,如果出现中文会出现问题,所以必须在代码的第二行或第一行 显示的声明编码方式(以注释的方式,即"#"开始):

  1. 方法一:
  2.         #coding=utf-8
  3.         或者#coding:utf-8
  4. 方法二:
  5.        -*-coding=utf-8 -*-
  6. 方法三:
  7.      #this Python file uses the following encoding:utf-8
  8.  

【Python】一个简单的例子的更多相关文章

  1. appium +python 一个简单的例子

    appium 安装和python 安装好后. 1.      启动android模拟器--Genymotion-点击Start 2.      启动appium 3.     运行代码. # -*- ...

  2. 用一个简单的例子来理解python高阶函数

    ============================ 用一个简单的例子来理解python高阶函数 ============================ 最近在用mailx发送邮件, 写法大致如 ...

  3. 扩展Python模块系列(二)----一个简单的例子

    本节使用一个简单的例子引出Python C/C++ API的详细使用方法.针对的是CPython的解释器. 目标:创建一个Python内建模块test,提供一个功能函数distance, 计算空间中两 ...

  4. Spring-Context之一:一个简单的例子

    很久之前就想系统的学习和掌握Spring框架,但是拖了很久都没有行动.现在趁着在外出差杂事不多,就花时间来由浅入深的研究下Spring框架.Spring框架这几年来已经发展成为一个巨无霸产品.从最初的 ...

  5. 关于apriori算法的一个简单的例子

    apriori算法是关联规则挖掘中很基础也很经典的一个算法,我认为很多教程出现大堆的公式不是很适合一个初学者理解.因此,本文列举一个简单的例子来演示下apriori算法的整个步骤. 下面这个表格是代表 ...

  6. fitnesse - 一个简单的例子(slim)

    fitnesse - 一个简单的例子(slim) 2017-09-30 目录1 编写测试代码(Fixture code)2 编写wiki page并运行  2.1 新建wikiPage  2.2 运行 ...

  7. Struts2的配置和一个简单的例子

    Struts2的配置和一个简单的例子 笔记仓库:https://github.com/nnngu/LearningNotes 简介 这篇文章主要讲如何在 IntelliJ IDEA 中使用 Strut ...

  8. 一个简单的例子搞懂ES6之Promise

    ES5中实现异步的常见方式不外乎以下几种: 1. 回调函数 2. 事件驱动 2. 自定义事件(根本上原理同事件驱动相同) 而ES6中的Promise的出现就使得异步变得非常简单.promise中的异步 ...

  9. 一个简单的例子了解states

    在大规模的配置管理工作中,我们要编写大量的states.sls文件.top.sls是states系统的入口文件,它负责指定哪些设备调用哪些states.sls文件.statse的默认工作目录是在/sr ...

  10. 跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击

    跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击 一.总结 一句话总结:比如用户留言功能,用户留言中写的是网页可执行代码,例如js代码,然后这段代码在可看到这段留言的不同一户的显示上就会 ...

随机推荐

  1. 【FitNess】测试框架试用

    参考网友的博客http://blog.csdn.net/funi16/article/details/8985280 1.官网下载jar包fitnesse-standalone.jar后安装. 2.进 ...

  2. php下使用phpmailer发送邮件

    由于默认虚拟空间不支持mail()函数,客户需要留言发送邮件,找到phpmailer发送不成功,调试成功后记录一下. 最新的下载地址在github,https://github.com/Synchro ...

  3. Map(双列集合)

    出现的原因:现实生活中有些数据成对存在. 特点:键不可重复,值可以重复. ----------|Map                数据都是以键值对的形式存在,键唯一,值可重复. --------- ...

  4. Tomcat工作原理

    http://www.cnblogs.com/shootercheng/p/5838645.html

  5. 关于frameset中指定区域回退的实现

    指定区域(Frame)的回退,网上大都写的是用  window.parent.window.mainFrame.rightFrame.history.back();来进行回退,但是我这边就是不行,一直 ...

  6. Oracle 直方图实例测试

    --创建表 SQL> create table tab (a number, b number); Table created. --插入数据 SQL> begin .. loop ins ...

  7. linux下的mount命令的用法详解

    挂接命令(mount) 首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的. 命令格式:mount [-t vfstype] [-o option ...

  8. JTable的DefaultModel方法getValueAt(a,row)

    行和列都是从0开始索引的,而且不包括netbeans生成的表格头,而是从数据开始,否则就会报错

  9. c,c++函数返回多个值的方法

    最近遇到一个问题,需要通过一个函数返回多个值.无奈C,C++不能返回多个值.所以就想有什么方法可以解决. 网上方法比较杂乱,一般有两种替代做法: 1. 利用函数的副作用, 返回值在函数外定义, 在函数 ...

  10. arcgis中注记的高级处理

    在实际制图过程中,常遇到一个图层的多个要素展示,将标注转换为注记的之后,可以对注记进行移动调整位置等手动更改.这样为避免重复地移动注记位置.可以采用如下方案: 1.将图层标注转换为注记 2.将注记存储 ...