Python get started

简介

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。

  • Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。

  • Python 是交互式语言: 这意味着,您可以在一个Python提示符,直接互动执行写你的程序。

  • Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。

  • Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。

特点

  1. 易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。

  2. 易于阅读:Python代码定义的更清晰。

  3. 易于维护:Python的成功在于它的源代码是相当容易维护的。

  4. 一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。

  5. 互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。

  6. 可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。

  7. 可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。

  8. 数据库:Python提供所有主要的商业数据库的接口。

  9. GUI编程:Python支持GUI可以创建和移植到许多系统调用。

  10. 可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得”脚本化”的能力。

基础语法

  • 标识符,保留字同JS

  • 行和缩进

不使用大括号({})来控制类,函数以及其他逻辑判断。python最具特色的就是用缩进来写模块。

if True:
    print "True"
else:
  print "False"

  • 多行语句:一般以新行作为为语句的结束符。 但是我们可以使用斜杠( \)将一行的语句分为多行显示
total = item_one + \
        item_two + \
        item_three
#语句中包含[], {} 或 () 括号就不需要使用多行连接符
days = ['Monday', 'Tuesday', 'Wednesday',
        'Thursday', 'Friday']

  • 引号(三引号可以由多行组成,编写多行文本的快捷语法,常用语文档字符串,在文件的特定地点,被当做注释。)
word = 'word'
sentence = "这是一个句子。"
paragraph = """这是一个段落。
包含了多个语句"""
  • 注释(# 开头,三个单引号(‘’‘)或三个双引号(“””))

  • 空行:函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。

变量类型

变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。 因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。

赋值(不需要类型声明)

counter = 100 # 赋值整型变量
miles = 1000.0 # 浮点型
name = "John" # 字符串
 
print (counter);

print (miles);

print (name);

# 多个变量
a, b, c = 1, 2, "john"
a = b = c = 1

标准数据类型(五个,在内存中存储的数据可以有多种类型)

  • Numbers(数字)
  • String(字符串)
  • List(列表,Python 中使用最频繁的数据类型)
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
 
print (list)               # 输出完整列表
print (list[0]  )          # 输出列表的第一个元素
print (list[1:3])          # 输出第二个至第三个的元素 
print (list[2:])          # 输出从第三个开始至列表末尾的所有元素
print (tinylist* 2)       # 输出列表两次
print (list + tinylist)    # 打印组合的列表

  • Tuple(元组,另一个数据类型,类似于List(列表),用”()”标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表)
tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')
 
print (tuple)               # 输出完整列表
print (tuple[0]  )          # 输出列表的第一个元素
print (tuple[1:3])          # 输出第二个至第三个的元素 
print (tuple[2:])          # 输出从第三个开始至列表末尾的所有元素
print (tinytuple* 2)       # 输出列表两次
print (tuple + tinytuple)    # 打印组合的列表
  • Dictionary(字典,列表是有序的对象结合,字典是无序的对象集合。字典当中的元素是通过键来存取的,而不是通过偏移存取。字典用”{ }”标识。字典由索引(key)和它对应的值value组成。)
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
 
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
 
 
print (dict['one'])          # 输出键为'one' 的值
print (dict[2])              # 输出键为 2 的值
print (tinydict)             # 输出完整的字典
print (tinydict.keys())      # 输出所有键
print (tinydict.values())    # 输出所有值

数据类型转换:只需要将数据类型作为函数名即可

运算符

  • 算术运算符
  • 比较(关系)运算符
  • 赋值运算符
**=	幂赋值运算符	c **= a 等效于 c = c ** a
//=	取整除赋值运算符	c //= a 等效于 c = c // a
  • 逻辑运算符
    and not or 
    
  • 位运算符
  • 成员运算符(字符串,列表或元组。in/not in)
a = 10
b = 20
list = [1, 2, 3, 4, 5 ];

if ( a in list ):
   print ("1 - variable a in the list " )
else:
   print ("1 - variable a not in the  list ")

if ( b not in list ):
   print ("2 - variable b not in the  list ")
else:
   print ("2 - variable b in the list " )
# modify the value of a
a = 2
if ( a in list ):
   print ("3 - variable a in the list " )
else:
   print ("3 - variable a not in the  list ")
  • 身份运算符(比较两个对象的存储单元 is/is not)
a = 20
b = 20

if ( a is b ):
   print ("1 - a and b are  the same log")
else:
   print ("1 - a and b are not the same log")

if ( id(a) is not id(b) ):
   print ("2 - a and b are  the same log")
else:
   print ("2 - a and b are not the same log")

# modify the value of b
b = 30
if ( a is b ):
   print ("3 - a and b are  the same log")
else:
   print ("3 - a and b are not the same log")

if ( a is not b ):
   print ("4 - a and b are not the same log")
else:
   print ("4 - a and b are  the same log")
  • 运算符优先级

条件语句

if ( var  == 100 ) : print ("变量 var 的值为100" )

if condition:
    Execute the statement...
elseif:
    Execute the statement...
else:
Execute the statement...

循环语句(没有do-while循环)

while循环

for循环

嵌套循环

break语句

continue语句

pass语句(不做任何事情,一般用做占位语句)

for letter in 'Python':
   if letter == 'h':
      pass
      print ('This is the block of pass ')
   print ('The current letter is :', letter)

print ("Good bye!")

Number

Python 支持四种不同的数值类型:

  • 整型(Int) 通常被称为是整型或整数,是正或负整数,不带小数点。

  • 长整型(long integers)无限大小的整数,整数最后是一个大写或小写的L。

  • 浮点型(floating point real values)浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)

  • 复数( (complex numbers))复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

String

  • 访问字符串中的值
var1 = 'Hello World!'
var2 = "Python Runoob"

print ("var1[0]: ", var1[0])
print ("var2[1:5]: ", var2[1:5])

  • 更新
var1 = 'Hello World!'

print ("更新字符串 :- ", var1[:6] + 'Runoob!')
  • 字符串运算符
operatordescribeinstance
+字符串连接‘a + b’ HelloPython’
*重复输出字符串a * 2’HelloHello’
[]通过索引获取字符串中字符a[1]’e’
[:]截取字符串中的一部分a[1:4]’ell’
in成员运算符 - 如果字符串中包含给定的字符返回 True 
not in成员运算符 - 如果字符串中不包含给定的字符返回 True 
r/R原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母”r”(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 
%格式字符串print “My name is %s and weight is %d kg!” % (‘Zara’, 21)

日期和时间( time 和 calendar 模块)

import time;  # 引入time模块

ticks = time.time()
print (ticks)

时间元祖

listFieldvalue
0year2008
1month1-12
2day1-31
3hour0-23
4minutes0-59
5seconds0-59
6day of week0-6
7day of year1-366
8summer time-1, 0, 1, -1是决定是否为夏令时的旗帜

函数

def printme( str ):
   print (str)
   return

printme('hello')
printme('python')

模块

Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。 模块让你能够有逻辑地组织你的 Python 代码段。 把相关的代码分配到一个模块里能让你的代码更好用,更易懂。 模块能定义函数,类和变量,模块里也能包含可执行的代码。

import,from-import,from-import*

import module1[, module2[,... moduleN]
# 从模块中导入一个指定的部分到当前命名空间中
from modname import name1[, name2[, ... nameN]]
# 把一个模块的所有内容全都导入到当前的命名空间也是可行的
from modname import *

命名空间和作用域

变量是拥有匹配对象的名字(标识符)。命名空间是一个包含了变量名称们(键)和它们各自相应的对象们(值)的字典。 一个 Python 表达式可以访问局部命名空间和全局命名空间里的变量。如果一个局部变量和一个全局变量重名,则局部变量会覆盖全局变量。

dir()函数,排好序的字符串列表,内容是一个模块里定义过的名字。

globals() 和 locals() 函数

reload() 函数

文件I/O

file方法

异常处理

Leave a Comment

comments powered by Disqus