1. Python语言简介

Python是一种面向对象的解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。
Python是纯粹的自由软件,它的源代码和解释器CPython遵循 GPL(GNU General Public License)协议。
Python和C语言不一样,它是一种脚本语言。C语言在写完源代码后是需要编译成二级制代码才能够执行的;Python则不用,它在生产环境中出现仍旧是源代码的.py文件形式,在执行的瞬间才由Python解释器将源代码转换为字节码,然后再由Python解释器来执行这些字节码。
这种形式的好处是不用考虑平台系统的问题,可以和Java语言一样“一次编写到处执行”。缺点也是显而易见的,就是每次进行字节码转换和字节码执行没有直接执行二进制的效率高。好在对于执行效率苛刻的场合毕竟较少,另外随着计算机硬件能力的提升,执行效率的矛盾也变得不明显了。
和其他计算机语言一样,Python语言也有自己的一套语法基础。有顺序、分支、循环、调用的程序组织结构,以及数字、字符串、列表、元组、集合等多种数据类型。

2.  Hello World
Python的Hello World与别的计算机语言没什么区别,而且更加简洁,可以直接在交互式编程环境中写:

print ("Hello, Python!");

3. 行与缩进
Python脚本文件和普通的文本文件没有太大区别,一般写成.py作为后缀的方式。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名:test.pyif True:print "True"
else:
print "False"

其中#为注释标记,如果在一行中使用#,那么#后的内容是不会被解释执行的。
下面的if和else是分支型语句,当if后的内容为True(真实),则执行if所辖的部分,否则执行else所辖的部分。
注意Python语言中是不用begin/end或{}来表示执行段落的起止的,这里的if和else需要左侧对齐,用缩进来表示段落所辖范围界限。

4.  变量类型
Python语言中标准的数据类型有这样几种:
Numbers(数字)、String(字符串)、List(列表)、Tuple(元组)、Dictionary(字典)。

#!/usr/bin/python
# -*- coding: UTF-8 -*-counter = 100 # 赋值整型变量
miles = 1000.0 # 浮点型
name = "John" # 字符串print counter
print miles
print name

这段代码演示了,整数型数字、浮点型数字以及字符串类型的赋值和打印操作。

#!/usr/bin/python
# -*- coding: UTF-8 -*-counter = 100 # 赋值整型变量
miles = 1000.0 # 浮点型
name = "John" # 字符串print counter
print miles
print name

这段代码演示的是列表类型的操作,列表很像Java语言中的数组,只不过列表允许不同类型的数据放在同一个列表中,而数组不可以——它只能要求所有的元素类型一致。

#!/usr/bin/python
# -*- coding: UTF-8 -*-tuple = ( 'abcd', 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 # 打印组合的元组

这段代码演示的是元组类型的操作。操作方法和列表很像,但是Python语法不允许对元组中的元素进行二次赋值。它相当于是只读类型的列表。

#!/usr/bin/python
# -*- coding: UTF-8 -*-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() # 输出所有值

这段代码演示的是字典类型的操作。字典类型有些像Java中的HashMap,是通过主键Key来访问对于的Value值,而不是靠下标来访问。

5.  循环语句

#!/usr/bin/pythoncount = 0
while (count < 9):print 'The count is:', countcount = count + 1print "Good bye!"

这段代码演示的是while循环,while循环后面的条件表示在满足条件的时候执行while所辖的程序段。在这段程序中表示count<9的情况下,执行下面的两行语句,不包括:
print "Good bye!"这一行。

#!/usr/bin/python
# -*- coding: UTF-8 -*-for num in range(10,20):  # 迭代 10 到 20 之间的数字for i in range(2,num): # 根据因子迭代if num%i == 0:      # 确定第一个因子j=num/i          # 计算第二个因子print '%d 等于 %d * %d' % (num,i,j)break            # 跳出当前循环else:                  # 循环的 else 部分print num, '是一个质数'

上面这段程序略显繁琐,不过内容仍然很简单。

这是循环的另一种写法——for循环,for循环也是一种循环,后面写出的是一个循环范围。这里是一个二重循环,也就是两个循环发生了嵌套——在一个循环的执行中有另一个循环。外层循环是让num在10和20之间做循环,内层循环是i在2和num之间做循环。

6.  函数

#!/usr/bin/python
# -*- coding: UTF-8 -*-# 定义函数
def printme( str ):"打印任何传入的字符串"print str;return;# 调用函数
printme("我要调用用户自定义函数!");
printme("再次调用同一函数");

函数是一种最小单位的代码段封装。关键字是def,def后面的printme是函数名,str是参数名称。这个函数的内容就是直接打印传入的变量值。

下面最后两句是对函数的调用。

7.  模块

#!/usr/bin/python
# -*- coding: UTF-8 -*-# 导入模块
import support# 现在可以调用模块里包含的函数了
support.print_func("Zara")

模块是一种大单位的代码段集合,例如有一个support.py的文件中有多个函数定义,其中一个叫做print_func函数。在我不对support.py这个模块进行引用的时候是不能调用print_func函数的。上面这段代码中,import support是导入support.py模块,下面的support.print_func("Zara")是调用support中的print函数,并传入变量"Zara"作为参数。
from fib import Fibonacci
这是导入模块的另一种写法,区别是它能够导入一个模块的一部分而非全部模块代码。示例中是指从fib这个模块中只导入Fibonacci这个函数。

8.  小结

以上就是Python语言中所涉及到的最基本的语法,有兴趣可以再找一些专业介绍Python的资料来学习,尤其是下面常用库:

1)numpy

NumPy系统是python的一种开源的数值计算扩展库。它提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。

2)matplotlib

一个专业的绘图工具库,官方网址在:http://matplotlib.org/,调用简单,使用非常方便,在配合python进行数据挖掘和报表制作的过程中是一种利器。

3)scipy

SciPy是一款方便、易于使用、专为科学和工程设计的python工具包,提供的内容很丰富,文件输入输出、特殊函数、线性代数运算、快速傅里叶变换、统计与随机、微分和积分、图像处理等诸多封装内容。官方网址在:http://www.scipy.org/。

4)Scikit-learn

Scikit-learn是最著名的python机器学习库之一,官方网址在:http://scikit-learn.org/stable/。

这四个库大致理解下,numpy可用于数值处理,在其上,就是scipy具体函数计算(基于数值),再其上,就是scikit-learn机器学习库(要用到numpy和scipy),matplotlib则是视图展示。学习路径上,以scikit-learn机器学习算法为主,可以一并用到其他三个库,其他三个库是基础。

【Python学习系列六】Python语言基本语法相关推荐

  1. Python学习系列 -- 改善 Python 程序的 91 个建议

    转载自:https://zhuanlan.zhihu.com/p/32817459 自己写Python也有四五年了,一直是用自己的"强迫症"在维持自己代码的质量,除了Google的 ...

  2. Python学习笔记(六)Python基础_数据类型——字符串

    文章目录 字符串 字符串输入 字符串拼接 字符串操作 字符串格式化 访问字符串中的值 字符串切片 字符串遍历 常用的字符串方法 字符串 字符串是 Python 中最常用的数据类型:一般以使用引号' ' ...

  3. Python学习系列(六)(模块)

    Python学习系列(六)(模块) Python学习系列(五)(文件操作及其字典) 一,模块的基本介绍 1,import引入其他标准模块 标准库:Python标准安装包里的模块. 引入模块的几种方式: ...

  4. Python学习系列(五)(文件操作及其字典)

    Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件      在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出 ...

  5. Python学习第六课-列表

    Python学习第六课-列表 一.序列 1.1 概念 1.2分类 二.列表 2.1 概念 2.2 练习 三.切片 3.1 可切片对象的索引方式 3.2切片操作 3.3 练习 四.通用操作 4.1 序列 ...

  6. Python学习笔记六——画小猪佩奇

    目录 Python学习笔记六--画小猪佩奇 画布 画笔 属性设置 操纵命令 运动命令 画笔控制命令 全局控制命令 其他命令 Python学习笔记六--画小猪佩奇 使用Python的turtle库可以绘 ...

  7. Python 学习第六讲作业2020-12-28

    Python 学习第六讲作业 lis1 =["name", "author", "introduce"] lis2 =["NOWE ...

  8. Python: 学习系列之七:模块、PIPY及Anaconda

    系列 Python: 学习系列之一:Python能做什么 Python: 学习系列之二:基础介绍(int/float/string/range/list/tuple/dict/set) Python: ...

  9. Python学习教程:Python爬虫抓取技术的门道

    Python学习教程:Python爬虫抓取技术的门道 web是一个开放的平台,这也奠定了web从90年代初诞生直至今日将近30年来蓬勃的发展.然而,正所谓成也萧何败也萧何,开放的特性.搜索引擎以及简单 ...

最新文章

  1. vin端口是什么意思_端口有无开启
  2. c#退出窗口跳转_关于winform如何如在关闭一个窗口时打开另外一个窗口
  3. wxHtml 示例:帮助浏览器
  4. 在11g中alter system set recyclebin = off 报错 recyclebin 参数在11g和10g中的区别
  5. mysql引擎innodb与ndb比较_mysql存储引擎InnoDB 1.1、NDB 7.5对比
  6. 与时俱进的治疗策略不断提高RA无药缓解机会[EULAR2015_SAT0058]
  7. 分布式多副本一致性协议:paxos
  8. jquery click()方法模拟点击事件对a标签不生效的解决办法
  9. Android Testing学习02 HelloTesting 项目建立与执行
  10. 捕获input 文本框内容改变的事件(onchange,onblur,onPropertyChange比较)
  11. 随笔 2016-1-4
  12. 【带权并查集经典例题】银河英雄传说【同POJ 1988 cube stacking】
  13. 进制转换—任意进制乘法表
  14. Linux Command diff 文件比较
  15. 网盘密码提取工具,专治各种套路作者!盘哥对不住您了
  16. 哈希函数 英语单词_使用Hash表实现英文单词表并实现单词查询操作
  17. 金多多简述调整浪的特征十分明显
  18. 《计算机的硬件系统》教案,计算机硬件系统的组成教案
  19. errno和perror
  20. 美国历任总统竞选演讲稿

热门文章

  1. Zabbix的snmp监控
  2. eve模拟器华为镜像_EVE-NG简单入门介绍
  3. iis、apache与nginx禁止目录执行asp、php脚本的实现方法
  4. python用户注册(基于django)
  5. 浅谈JavaScript 函数作用域当中的“提升”现象
  6. storm流式大数据处理流行吗
  7. TF-IDF(term frequency–inverse document frequency)
  8. 在 asp.net core \ vs2015 update2 情况况下创建 asp.net core web application 的问题
  9. adb connect 出现timeout的处理方式
  10. 20131005第四章,第五章内容整理与归纳。