python 基础知识(一)

一、python发展介绍
Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为程序的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。Python 已经成为最受欢迎的程序设计语言之一。2011年1月,它被TIOBE编程语言排行榜评为2010年度语言。自从2004年以后,python的使用率是呈线性增长
二、python的风格
Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。Python的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。其中很重要的一项就是Python的缩进规则。
一个和其他大多数语言(如C)的区别就是,一个模块的界限,完全是由每行的首字符在这一行的位置来决定的(而C语言是用一对花括号{}来明确的定出模块的边界的,与字符的位置毫无关系)。这一点曾经引起过争议。因为自从C这类的语言诞生后,语言的语法含义与字符的排列方式分离开来,曾经被认为是一种程序语言的进步。不过不可否认的是,通过强制程序员们缩进(包括if,for和函数定义等所有需要使用模块的地方),Python确实使得程序更加清晰和美观。
三、python程序的定位
Python的设计哲学是“优雅”、“明确”、“简单”。由于这种设计观念的差异,Python源代码通常具备更好的可读性,并且能够支撑大规模的软件开发。
Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符和动态类型。
Python本身被设计为可扩充的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C语言、C++、Cython来编写扩充模块。Python编译器本身也可以被集成到其它需要脚本语言的程序内。
四、python程序的执行
Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code(python虚拟机主要有cpython、jpython、IronPython、PyPy)。基于C的Python编译出的字节码文件,通常是.pyc格式。
除此之外,Python还可以以交互模式运行,比如主流操作系统Unix/Linux、Mac、Windows都可以直接在命令模式下直接运行Python交互环境。直接下达操作指令即可实现交互操作。
五、python的基本语法
1.缩进
Python开发者有意让违反了缩进规则的程序不能通过编译,以此来强制程序员养成良好的编程习惯。并且Python语言利用缩进表示语句块的开始和退出(Off-side规则),而非使用花括号或者某种关键字。缩进成为了语法的一部分。官方建议使用4个空格来表示每级缩进,在实际编写中可以自定义空格数。使用Tab字符和其它数目的空格虽然都可以编译通过,但不符合编码规范。支持Tab字符和其它数目的空格仅仅是为兼容很旧的的Python程序和某些有问题的编辑程序。
2.控制语句
if语句,当条件成立时运行语句块。经常与else, elif(相当于else if) 配合使用。
if True:
    exception1
elif:
    exception2
.....
.....   
else:
    exception3

for语句,遍历列表、字符串、字典、集合等迭代器,依次处理迭代器中的每个元素。
for i in range(1,100,2):
    print(i)
while语句,当条件为真时,循环运行语句块
while True:
    exception
try语句。与except,finally配合使用处理在程序运行中出现的异常情况。
try:
    exception
except Error,e:
    exception
else:
###############################################
>>>try:
    exception
>>>finally:
    exception

raise语句。制造一个错误。   
try:
    ...
except exception:
    ...
else:
    ...
finally:
...
raise exception   
   
class语句。用于定义类型。
>>>def classname():
    exception
   
def语句。用于定义函数和类型的方法。
>>>def funcname():
    exception
   
pass语句。表示此行为空,不运行任何操作。
>>> if True:
        pass
assert语句。用于程序调适阶段时测试运行条件是否满足。
with语句。Python2.6以后定义的语法,在一个场景中运行语句块。比如,运行语句块前加密,然后在语句块运行退出后解密。
yield语句。在迭代器函数内使用,用于返回一个元素。自从Python 2.5版本以后。这个语句变成一个运算符。

import语句。导入一个模块或包,用逗号分割模块名称就可以同时导入多个模块
>>>import sys
>>>import os as system
from import语句。从包导入模块或从模块导入某个对象。
>>>from socket import gethostname, socket
>>>from socket import *   # 载入所有对象到当前名字空间
import as语句。将导入的对象赋值给一个变量。
>>>import socket as net, thread as threads

in语句。判断一个对象是否在一个字符串/列表/元组里。
>>> num=[1,2,3,4]
>>> 1 in num
True

3.表达式
主要的算术运算符与C/C++类似。+, -, *, /, //, **, ~,%
>>> 3+2 加法或者取正
5
>>> 3-2 减法或者取负
1
>>> 3*2 乘法
6
>>> 3**2 取幂
9
>>> 3/2 除法
1.5
>>> 3//2 地板除
1
>>> a=3 按位取反
>>> ~3
-4
>>> 3%2 取模
1
>> 二进位向左移位运算符。左操作数的值左移由右操作数指定的位数
>>> a << 2
12
<<表示右移和左移,二进位向右移位运算符。左操作数的值是由右操作数指定的位数向右移动。
>>> a >>2
0

& 二进制的AND(与)
| 二进制的OR(或)
^ 二进制的XOR(非)
Python使用and, or, not表示逻辑运算。

> 大于
< 小于
== 等于
!= 不等于
<= 小于等于
>= 大于等于
在这些运算符里面,~, |, ^, &, <<, >>必须应用于整数。

is, is not用于比较两个变量是否是同一个对象。
>>> a=123
>>> b=1234
>>> a is b
False
>>> b=123
>>> a is b
True

in, not in用于判断一个对象是否属于另外一个对象。
>>> num=[1,2,3,4]
>>> 1 in num
True
>>> num=[1,2,3,4]
>>> 5 not in num
True

Python支持“列表推导式“,比如计算0-9的平方和:
>>> sum(x * x for x in range(10))
285

python 基础知识(一)的更多相关文章

  1. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  2. python基础知识(二)

    以下内容,作为python基础知识的补充,主要涉及基础数据类型的创建及特性,以及新数据类型Bytes类型的引入介绍

  3. python基础知识讲解——@classmethod和@staticmethod的作用

    python基础知识讲解——@classmethod和@staticmethod的作用 在类的成员函数中,可以添加@classmethod和@staticmethod修饰符,这两者有一定的差异,简单来 ...

  4. python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

    本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...

  5. python 爬虫与数据可视化--python基础知识

    摘要:偶然机会接触到python语音,感觉语法简单.功能强大,刚好朋友分享了一个网课<python 爬虫与数据可视化>,于是在工作与闲暇时间学习起来,并做如下课程笔记整理,整体大概分为4个 ...

  6. python基础知识小结-运维笔记

    接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...

  7. Python基础知识(五)

    # -*- coding: utf-8 -*-# @Time : 2018-12-25 19:31# @Author : 三斤春药# @Email : zhou_wanchun@qq.com# @Fi ...

  8. Python基础知识(Basic knowledge)

    Python基础知识(Basic knowledge) 1.认识Python&基础环境搭建 2.Python基础(上) 3.Python基础(中) 4.Python基础(下) 5.Python ...

  9. Python 基础知识(一)

    1.Python简介 1.1.Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时 ...

随机推荐

  1. event 关键字

    event(C# 参考) event 关键字用于在发行者类中声明事件.下面的示例演示如何声明和引发将 EventHandler 用作基础委托类型的事件. C# public class SampleE ...

  2. Learning Core Data 1

    What is Core Data? If you want to build anything beyond the most simplistic apps for iOS, you’ll nee ...

  3. HDU 1532 Drainage Ditches EK算法 flod算法

    题意:输入m n, m是边数,n是点数. 接下来m行: 起点,终点,容量.求以 1 为源点, n为汇点的最大流. #include<stdio.h> #include<string. ...

  4. [MySQL] 同步一张表、复制过滤设置

    一.缘由 据测试要求,需要把线上一张股票信息的表实时同步到测试环境,那么干吧,这次不复制库,单独复制表. 二.解决办法 可以按照同步(复制)库的方法来,在salve端设置 my.cnf,replica ...

  5. [MySQL] 字符集的选择

    1. Mysql支持的字符集 MySQL服务器可以支持多种字符集,不同的字段都可以使用不同的字符集. 查看所有可用字符集: show character set; select * from info ...

  6. vim 学习日志(2):set的使用方法

    一,打开或关闭行号(number) 如果希望每次进入vi 会话时都显示行号,那么在主目录中的.exrc 文件中添加 set number 行. 在命令模式下,使用如下命令 :set all      ...

  7. SteamVR Unity工具包(VRTK)之控制器交互

    可交互对象(VRTK_InteractableObject) 可交互对象脚本被添加到需要用(如控制器)来交互的任何游戏对象上.   可用脚本参数如下   Touch Interactions 触摸交互 ...

  8. 关于Switch结构利用

    三大流程结构,循环.分支.if ,循环与条件选择结构用的比较多,而swicth用的比较少,swicth可以用if代替,只不过麻烦,最终都能实现输入和输出的条件对应     Swicth利用       ...

  9. 适配6 、6P 来源互联网

    iPhone 6 6P出现后,如何将一份设计稿支持多个尺寸? 如何只出一套iOS平台设计稿?随着苹果发布两种新尺寸的大屏iPhone 6,下面三款iPhone尺寸和分辨率数据就知道屏幕有多杂了. 现在 ...

  10. 开发工具及服务年度大奖评选 I Bugtags 荣获最具成长潜力奖

    作为全球最大中文 IT 社区和服务平台.中国最大技术管理者平台的 CSDN 在中国北京总部举办了一场 2015 年开发工具及服务年度大奖评选活动,此次活动目的在于推动开发服务及工具质量的提升,提高行业 ...