此文为《Python核心编程》的读书笔记记录。


Python是一门解释性语言,所有的语句用解释器(interpreter)来直接解释,但它同时是High Level的语言,这样的组成能够在编写代码时得到直接与机器交互的体验。非常棒

 >>> print "Hello World!"

在解释器上直接输入,屏幕上直接就会显示Hello World!. >>>符号是提示符,是解释器提示输入等待标志。输入两种东西是可以得到回应的,一个是语句一个是表达式。语句是用关键词组成命令,比如说Print "Hello World!"。而表达式是没有关键字的,比如说一个函数或者一个数学式子。

Python的print语句和C语言一样可以和字符串操作符(%)一起使用,实现字符串替代功能。如:

 >>> print "%s is number %d!" % ("Programming",1)
Progamming is number 1!

这里的%是一个字符替换,后面的字母代表替换格式。常用的是%s %d %f。C语言的printf()语句表达上述写法是
printf("%s is number %d","Programming",1);
有略微的语法差别。

>>> num = int(raw_input("Please input an integer: "))

raw_input是一个文本输入函数,用于从标准输入读取一个字符串然后删除串尾的换行符。输入的内容会存储成字符串类型,然后使用int()将内容转换成整型

注释

>>> # one comment
... print 'Hello World!' # another comment

Python使用#作为单行注释符。#后的内容作为注释
另外Python有文档字符串的特别注释,在模块、类或者函数起始添加一个字符串,该字符串是在线文档的作用,如:

>>> def foo():
"This is a doc string"
retrun True

"This is a doc string"这一句等同注释。不过与普通注释不同,文档字符串可以在运行时,可以用来自动生成文档(?)

+ - * / // % **
加 减 乘 除 取余 幂
其中//是浮点除法(对结果进行四舍五入)

关于变量,Python作为动态类型语言,不用预先申明变量类型,变量的类型和值在赋值那一刻被初始化。赋值号是 =
Python里不支持C中的自增和自减。对n的自增1和自减1写成

n += 1
n -= 1

关于类型,Python有五种基本数字类型,有符号整型,长整型,布尔型,浮点型和复数型
Python的长整型和C的长整型不同,长整型的大小取决于用户虚拟内存总数,类似于Java的BigInteger。复数类型适合进行科学运算

字符串,支持使用成对的单引号或双引号,三引号用以包含特殊字符。索引操作符[]和切片操作符[:]可以得到子字符串。字符串索引中,第一个索引是0,最后一个是-1.
+可以用于字符串的连接,*可以用于字符串的重复

列表和元组,这是Python有的数据组织结构,可以看成普通的“数组”。保存任意数量和任意类型的Python对象。也是从0开始索引元素。但是列表和元组都可以存储不同类型的对象。
列表元素用中括号[]包裹,元素的个数和值都可以改变。元组元素用小括号()包裹,不可以更改(但他们的内容可以更改)。元组可以看成只读的列表,通过切片运算([]和[:])可以得到子集。
列表:

>>> 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

字典,是由键——值(key-value)构成。几乎所有的Python对象都可以作键,以数字和字符串最常用。
值可以是任意类型的Python对下那个,字典用大括号({})包裹。如下:

>>> 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

代码块通过缩进表达逻辑。不使用括号。可读性上的确更简洁。但是可能更多要求对代码层次的掌握。个人暂时仍不适应这种方式。但习惯它的方法。

2015/8/10 Python基本使用(1)的更多相关文章

  1. 2015/9/10 Python基础(11):错误和异常

    程序在执行的过程中会产生异常,出现错误在以前的一个时期是致命的,后来随着程序的发展,使得一些错误的处理方式是柔和的,发生错误会产生一些错误的诊断信息和一些模糊的提示.帮助我们来处理异常.今天将学习Py ...

  2. 2015年10个最佳Web开发JavaScript库

    2015年10个最佳Web开发JavaScript库 现在的互联网可谓是无所不有,有大量的JavaScript项目开发工具充斥于网络中.我们可以参考网上的指导来获取构建代码项目的各种必要信息.如果你是 ...

  3. http://browniefed.com/blog/2015/09/10/the-shapes-of-react-native/

    http://browniefed.com/blog/2015/09/10/the-shapes-of-react-native/

  4. 2015/9/9 Python基础(10):文件和输入输出

    文件对象文件对象不仅可以用来访问普通的磁盘文件,而且也可以访问其它任何类型抽象层面上的“文件”.一旦设置了合适的“钩子”,你就可以访问文件类型接口的其它对象,就好像访问的是普通文件一样.文件对象的处理 ...

  5. 10.python中的序列

    本来说完字符串.数字.布尔值之后,应该要继续讲元祖.列表之类的.但是元祖和列表都属于序列,所以有必要先讲讲python的序列是什么. 首先,序列是是Python中最基本的数据结构.序列中的每个元素都分 ...

  6. 在Windows 10 + Python 3.6.5 中用 pip 安装最新版 TensorFlow v1.8 for GPU

    声明 什么cuDNN之类的安装,应该是毫无难度的,按照官网的教程来即可,除非...像我一样踩了狗屎运.咳咳,这些问题不是本文的关键. 本文的关键是解决pip安装tensorflow gpu版的问题. ...

  7. #10 Python字符串

    前言 通过上一节可知,Python6个序列的内置类型中,最常见的是列表和元组,但在Python中,最常用的数据类型却不是列表和元组,而是字符串.要想深入了解字符串,必须先掌握字符编码问题.因此本篇博文 ...

  8. 10 python 封装----@property的用法

    1.基本概念 在python中用双下划线开头的方式将属性隐藏起来(设置成私有的) #其实这仅仅这是一种变形操作 #类中所有双下划线开头的名称如__x都会自动变形成:_类名__x的形式: class A ...

  9. 2015/9/29 Python基础(20):类的授权

    类的授权 1.包装包装在Python编程世界中时经常会被提到的一个术语.它是一个通用的名字,意思是对一个已存在的对象进行包装,不管它是数据类型,还是一段代码,可以是对一个已存在的对象,增加新的,删除不 ...

随机推荐

  1. VUE中组件的使用

    关于vue组件引用 使用Nodejs的方法 被引用的组件要暴露 module.exports={}; 引用时 用 var abc= require("组件的路径") 然后 就可以用 ...

  2. Alphabetic Removals(模拟水题)

    You are given a string ss consisting of nn lowercase Latin letters. Polycarp wants to remove exactly ...

  3. asp.net .net4.0使用异步编程

    "; Action<object> ac = (object obj) => { Debug.WriteLine("睡眠开始:" + DateTime. ...

  4. [贪心经典算法]Kruskal算法

    Kruskal算法的高效实现需要一种称作并查集的结构.我们在这里不介绍并查集,只介绍Kruskal算法的基本思想和证明,实现留在以后讨论. Kruskal算法的过程: (1) 将全部边按照权值由小到大 ...

  5. YaoLingJump开发者日志(七)

      LGame用起来真是各种蛋疼,插背景都可以显示不出来.在屏幕结束后释放资源,重载该屏幕时再setbackground也不行,直接用Lpaper当background更不行,会把tilemap上的东 ...

  6. Java-通过比较throw与throws来阐述抛出异常

    转自:http://www.cnblogs.com/Miracle-Maker/p/6239346.html 浅谈Java异常 以前虽然知道一些异常的处理,也用过一些,但是对throw和throws区 ...

  7. 在windows搭建react

    1.安装必须的软件 1.Python 2    注意勾选 Add python.exe to Path,选项,这样就可以在安装完成后,不用手动去添加环境变量    安装完,打开cmd.exe,输入py ...

  8. React & `event.persist()`

    React & event.persist() event.persist() https://reactjs.org/docs/events.html#event-pooling Tabs ...

  9. hdu2121-Ice_cream’s world II

    给出一个有向图,求最小树形图和它的最小的根. 分析 这个题又写了一晚上-我之前的朱刘算法写法是我乱想的,只有那道题可以过--所以去找了一份代码来看,发现我的写法超级麻烦啊,所以就学习了一下那种写法,非 ...

  10. 【bzoj4229】选择 离线+LCT

    题目描述 现在,我想知道自己是否还有选择. 给定n个点m条边的无向图以及顺序发生的q个事件. 每个事件都属于下面两种之一: 1.删除某一条图上仍存在的边 2.询问是否存在两条边不相交的路径可以从点u出 ...