此文为《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. 【转】AMD 的 CommonJS wrapping

    其实本文的标题应该是「为什么我不推荐使用 AMD 的 Simplified CommonJS wrapping」,但太长了不好看,为了美观我只能砍掉一截. 它是什么? 为了复用已有的 CommonJS ...

  2. JS原型与面向对象总结

    ECMAScript有两种开发模式:1.函数式(过程化),2.面向对象(OOP).面向对象的语言有一个标志,那就是类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.但 是,ECMAScrip ...

  3. 某一线互联网公司前端面试题js部分总结

    js部分 1,使用严格模式的优点 - 消除Javascript语法的一些不合理.不严谨之处,减少一些怪异行为; - 消除代码运行的一些不安全之处,保证代码运行的安全: - 提高编译器效率,增加运行速度 ...

  4. c++ int 负数 补码 隐式类型转换

    unsigned y = ; ; cout << x + y << endl; 对于上述的结果为 这里面有一个负数的补码问题和不同类型之间的隐式类型转换问题 首先负数的表示方法 ...

  5. 2018 杭电多校1 - Chiaki Sequence Revisited

    题目链接 Problem Description Chiaki is interested in an infinite sequence $$$a_1,a_2,a_3,...,$$$ which i ...

  6. BZOJ 1996 合唱队(DP)

    考虑从最后的队形开始依次还原最初的队形. 对于当前的队形,要么选最左边的,要么选最右边的. 如果选了左边的,那么下次选择的一定是大于它的.右边的同理. 所以定义dp[mark][l][r]为区间[l, ...

  7. JS变量对象详解

    JS变量对象详解 开年之后工作热情一直不是很高,这几天一直处于消极怠工状态.早上不想起床,起床了不想上班.明明放假之前工作热情还一直很高,一直心心念念的想把小程序项目怼出来,结果休假回来之后画风完全不 ...

  8. CentOS 输入输出重定向

    标准输入重定向(STDIN,文件描述符为 0):默认从键盘输入,也可从其他文件或命令中输入.(文件描述符可以省略) 标准输出重定向(STDOUT,文件描述符为 1):默认输出到屏幕.(文件描述符可以省 ...

  9. c++【1】

    高考完了,重新做码农.要转c++. 按照粉书什么的.果然要告别p党了呢. 第一部分 语言篇 第一章:程序输入 主要是一些输入输出格式. #include<cstdio> 输出: print ...

  10. bzoj 1862: [Zjoi2006]GameZ游戏排名系统 & bzoj 1056: [HAOI2008]排名系统

    傻叉了一晚上,把t打成x,然后这题神奇在于输出一段数,不足的不用输出,一开始我的是直接找没有后面就退,然后这样会格式错误囧……然后最后zj的还卡了下空间,于是不用string就过了……string毁一 ...