01 Python基本语法(一)

优秀的技术博客:
基础模块:https://www.cnblogs.com/yuanchenqi/articles/5732581.html
python基础:https://www.cnblogs.com/linhaifeng/p/7278389.html

0 python 文件的编译说明

运行方式

// 方法一:
python hello.py 

// 方法二:
./hello.py

1 基本运算符

1.1 算术运算符

+ 
-
 *
 /  传统除法 求模
 // 浮点除法(对结果进行四舍五入)
 % 求余
 ** 乘方

代码:
>>> print -2 * 4 + 3 ** 2
1

1.2 比较运算符

<     <=     >     >=     ==     !=     <>
试一试,看看这些比较运算会得到什么结果:
     >>> 2 < 4
True
    >>> 2 == 4
    False
    >>> 2 > 4
    False
     >>> 6.2 <= 6
     False
     >>> 6.2 <= 6.2
     True
     >>> 6.2 <= 6.20001
    True
Python 目前支持两种“不等于”比较运算符, != 和 <> , 分别是 C 风格和 ABC/Pascal 风格。后者慢慢地被淘汰了, 所以推荐使用前者。

1.3 逻辑运算符

 and(与)       or(或)     not(非)
  使用逻辑运算符可以将任意表达式连接在一起,并得到一个布尔值:
  >>> 2 < 4 and 2 == 4
False
>>> 2 > 4 or 2 < 4
True
>>> not 6.2 <= 6
True
>>> 3 < 4 < 5      // 3 < 4 and 4 < 5
True

1.4 身份操作符

is
is not

2 变量和赋值

(1)标识符的组成:数字,字母, 或下划线。
        第一个字符必须是字母或下划线(_);
        剩下的字符可以是字母和数字或下划线;                
        Python 变量名是大小写敏感的, 也就是说变量 "cAsE" 与 "CaSe" 是两个不同的变量。

专用下划线标识符:
        _xxx 不用'from module import *'导入  
       __xxx__系统定义名字
       __xxx 类中的私有变量名
(2)Python 是动态类型语言, 不需要预先声明变量的类型。 变量的类型和值在赋值 那一刻被初始化,变量只有被创建和赋值后才能被使用。变量赋值通过等号来执行。

代码:
 >>> counter = 0            //整数赋值
    >>> miles = 1000.0    //浮点数赋值
    >>> name = 'Bob'      // 字符串赋值
    >>> counter = counter + 1    // 整数增 1
    >>> kilometers = 1.609 * miles    // 浮点乘法赋值
    >>> print '%f miles is the same as %f km' % (miles, kilometers)
    1000.000000 miles is the same as 1609.000000 km

(3)增量赋值,也就是运算符和等号合并在一起
n *= 10        // n = n * 10

(4)Python 的赋值语句不会返回值。类似下面的语句在 Python 中是 非法的:
    >>> x = 1
    >>> y = (x = x + 1)     # assignments not expressions! File "<stdin>", line 1
    y = (x = x + 1)
    ^
    SyntaxError: invalid syntax

  链式赋值没问题:
    >>> y = x = x + 1
    >>> x, y
    (2, 2)

(5)Python 不支持类似 x++ 或 --x 这样的前置/后置自增/自减运算。

(6)多重赋值
     >>> x = y = z = 1
     >>> x
     1
     >>> y
     1 >>> z 1

(7)“多元”赋值
    >>> x, y, z = 1, 2, 'a string'
    >>> x
    1
    >>> y
    2
    >>> z
    'a string'
通常元组需要用圆括号(小括号)括起来,尽管它们是可选的。建议总是加上 圆括号以使得代码有更高的可读性。
    >>> (x, y, z) = (1, 2, 'a string')

(8)数据交换
Python 的多元赋值方式可以实现无需中间变量交换两个变量的值。
    # swapping variables in Python
    >>> x, y = 1, 2
    >>> x
    1
    >>> y
    2
    >>> x, y = y, x
    >>> x
    2
    >>> y
    1
显然, Python 在赋值之前已经事先对 x 和 y 的新值做了计算。

3 数字

Python 支持五种基本数字类型,其中有三种是整数类型。
  int (有符号整数)
  long (长整数) 
  bool (布尔值)
  float (浮点值) 
  complex (复数)

Python 长整数仅受限于用户计算机的虚拟内存总数,类似 于 Java 中的 BigInteger 类型。
举例: 

3 字符串

(1) Python 中字符串被定义为单引号、双引号、三引号之间的字符集合。
(2) Python 支持使用成对的单引号或双引号, 三引号(三个连续的单引号或者双引号)可以用来包含特殊字符。
(3) 使用索引运算符 [i] 和切 片运算符( [i :j ] )可以得到子字符串,扩展切片:[i:j:stride]
(4) 字符串有其特有的索引规则:第一个字符的索引是 0, 最后一个字符的索引是 -1
(5) 加号( + )用于字符串连接运算,星号( * )则用于字符串重复。
(6)使用Unicode编码,字符串前要用u标注
(7)支持的运算:索引、切片、min()、max()、len()以及对象最有的方法
代码举例:
    >>> pystr = 'Python'
    >>> iscool = 'is cool!'
    >>> pystr[0]
    'P'
    >>> pystr[2:5]
    'tho'
    >>> iscool[:2]
    'is'
    >>> iscool[3:]
    'cool!'
    >>> iscool[-1]
    '!'
    >>> pystr + iscool
    'Pythonis cool!'
    >>> pystr + ' ' + iscool
    'Python is cool!'
    >>> pystr * 2
    'PythonPython'
    >>> '-' * 20
'--------------------'
     >>> pystr = '''python
     ... is cool'''
     >>> pystr
     'python\nis cool'
    >>> print pystr
    python
    is cool
    >>>

4 列表和元组

(1) 可以将列表和元组当成普通的“数组”,它能保存任意数量任意类型的 Python 对象。
(2) 和数组一样,通过从 0 开始的数字索引访问元素,但是列表和元组可以存储不同类型的对象。
(3) 列表和元组的区别:
  a) 列表元素用中括号 [ ]包裹,元素的个数及元素的值可以改变; 元组元素用小括号( )包裹,不可以更改(尽管他们的内容可以)。
  b) 元组可以看成是 只读的列表。
  c) 通过切片运算 [ ] 和 [ : ] 可以得到子集,这一点与字符串的使用方法一样。

代码:
>>> aList = [1, 2, 3, 4]
 >>> aList
    [1, 2, 3, 4]
 >>> aList[0]
1
>>> aList[2:]
[3, 4]
>>> aList[:3]
[1, 2, 3]
>>> aList[1] = 5
>>> aList
[1, 5, 3, 4]

元组也可以进行切片运算,得到的结果也是元组(不能被修改):
    >>> aTuple = ('robots', 77, 93, 'try')
     >>> aTuple
     ('robots', 77, 93, 'try')
     >>> aTuple[:3]
     ('robots', 77, 93)
    >>> aTuple[1] = 5
    Traceback (innermost last):
    File "<stdin>", line 1, in ?
    TypeError: object doesn't support item assignment

(4)列表的常用内置函数
list.append(obj) :向列表中添加一个对象 obj
list.count(obj) :返回一个对象 obj 在列表中出现的次数
list.extend(q): 把序列 q 的内容添加到列表中
 list.index(obj, i=0, j=len(list)):返回 list[k] == obj 的 k 值,并且 k 的范围在 i<=k<j;否则 引发 ValueError 异常
list.insert(index, obj) :在索引量为 index 的位置插入对象 obj
list.pop(index=-1):删除并返回指定位置的对象,默认是最后一个对象
list.remove(obj):从列表中删除对象 obj

5 字典

(1)字典是 Python 中的映射数据类型,由键- 值(key-value)对构成。
(2)几乎所有类型的 Python 对象都可以用作键,不过一般还是以数字或者 字符串最为常用。
(3)值可以是任意类型的 Python 对象,字典元素用大括号{ }包裹。
(4)字典是可变对象
(5)元组、列表、字符串都是由大小的,可以用len()查看

>>> aDict = {'host': 'earth'}     # create dict
 >>> aDict['port'] = 80     # add to dict
    >>> aDict
    {'host': 'earth', 'port': 80}
    >>> aDict.keys()
    ['host', 'port']
    >>> aDict['host']
    'earth'
>>> for key in aDict:
... print key, aDict[key] ...
host earth
port 80

(6) 字典类型的方法

6 Python 语句基本规则和特殊字符

  (1)  井号(#)表示之后的字符为 Python 注释

  (2)换行 (\n) 是标准的行分隔符(通常一个语句一行)

  (3)反斜线 ( \ ) 继续上一行

  (4)分号 ( ; )将两个语句连接在一行中
        分号( ; )允许你将多个语句写在同一行上,语句之间用分号隔开,而这些语句也不能在这 行开始一个新的代码块。例子:
        import sys; x = 'foo'; sys.stdout.write(x + '\n')
        同一行上书写多个语句会大大降低代码的可读性,Python 虽然允许但不 提倡你这么做。

 (5)冒号 ( : ) 将代码块的头和体分开

  (6)语句(代码块)用缩进块的方式体现:
        缩进四个空格宽度,避免使用制表符Tab ;
        随着缩进深度的增加,代码块的层次也在加深,没有缩进的代码块是最高层次的,别称做 脚本的“main”部分。

  (7) 不同的缩进深度分隔不同的代码块

  (8)  Python文件以模块的形式组织
        模块可以包含直接运行的代码块、类定义、 函数定义或这几者的组合。

7 Python 关键字

查看Python关键字

>>> import keyword
>>> keyword.kwlist
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,718评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,683评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,207评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,755评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,862评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,050评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,136评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,882评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,330评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,651评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,789评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,477评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,135评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,864评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,099评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,598评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,697评论 2 351

推荐阅读更多精彩内容