【书山有路】Python基础教程 第1章

来源:互联网 发布:淘宝模特米雪儿 编辑:程序博客网 时间:2024/05/19 09:16

为了完成最近的项目,没办法了,Python学起来。我选择的是《Python基础教程》的第2版。我浏览了一下目录,准备只学习第1章、第2章、第3章的部分内容、第4章、第5章的部分内容、第6章、第7章、第9章、第10章的部分内容以及第16章。

这一章的标题叫做“基础知识”,所以内容有些零碎,只记录一下我需要注意的地方吧。

安装环境

Python版本选了3.5.3,下载地址:https://www.python.org/ftp/python/3.5.3/python-3.5.3-amd64.exe

IDE选了PyCharm 2016.2

观点

  • 算法不过是程序或者食谱的另外一种说法——详细描述如何做某事。
  • 语句和表达式之间的区别:表达式是某事,语句是做某事。语句特性的一般定义是“它们改变了事物”
  • 程序员应该确保注释说的都是重要的事情,不要重复代码中显而易见的内容。无用的、多余的注释还不如没有。

要点

实现整除

使用//来实现整除

输入下面的命令到控制台:

1 // 21.0 // 2.0

输出的结果是:

00.0

小数的余数

输入下面的命令到控制台:

2.75 % 0.5

输出的结果是:

0.25

这个倒是很神奇

乘方运算

Python中的乘方运算符不是^(这个是按位异或),而是**

输入下面的命令到控制台:

2**3-3**2

输出的结果是:

8-9

这是因为幂运算符优先级比取反优先级高的原因。

或者也可以用pow()函数。

输入:

pow(2,3)

输出:

8

长整数

Python对长整数的支持很好,一般不需要关心是否超出数据的范围问题。

读取用户输入数据

可以使用input函数来读取用户的输入:

代码:

x = input("x: ")

输入:100

查看x的值:

x

输出:

'100'

说明读入了一个字符串。

使用模块中的函数

使用下面的语句来导入一个模块:

import math

然后用下面的语句来使用模块中的函数:

math.floor(32.9)

使用模块中函数的语法是:模块.函数

也可以用下面的语句导入函数,然后就可以不用每次写明模块的名称:

from math import floor

单双引号和转义

Python中,单引号'和双引号"是没有区别的,它们可以相互的包含在对方中,说明引号的意思。如:

"Hello 'Tom'"'Hello "Tom"'

这样编译器就会明白Tom前后有个引号。反之,如果不混合使用就会给编译器造成困扰,如:

'Hello 'Tom''

此时,需要添加\进行转义。

'Hello \'Tom\''

str和repr的区别

这一部分来自http://blog.csdn.net/yyt8yyt8/article/details/7030416

内建函数str()和repr() (representation,表达,表示)或反引号操作符可以方便地以字符串的方式获取对象的内容、类型、数值属性等信息。

str()函数得到的字符串可读性好(故被print调用),而repr()函数得到的字符串通常可以用来重新获得该对象,通常情况下 obj==eval(repr(obj)) 这个等式是成立的。这两个函数接受一个对象作为其参数,返回适当的字符串。

事实上repr()和“做一样的事情,返回一个对象的“官方”字符串表示。其结果绝大多数情况下(不是所有)可以通过求值运算(内建函数eval())重新得到该对象。

str()则不同,它生成一个对象的可读性好的字符串表示,结果通常无法用eval()求值,但适合print输出。

如下例:

>>> class D(object):...     def __str__(self):...         return "a __str__"...     def __repr__(self):...         return "a __repr__"...>>> dr = D()>>> print dra __str__>>> dra __repr__>>> "%s" % dr'a __str__'>>> "%r" % dr'a __repr__'

为什么有了repr()还需要“?

Python中,有的操作符和函数是做同样的事情,原因是某些场合下函数会比操作符更适合使用,比如函数对象可作为参数传递。双星号(**)乘方运算和pow()内建函数都返回x的y次方.

Python3中已经不用反引号啦

再来看一个例子:

>>> temp = 42>>> print("The temperature is " + temp)Traceback (most recent call last):  File "<stdin>", line 1, in <module>TypeError: Can't convert 'int' object to str implicitly>>> print("The temperature is " + repr(temp))The temperature is 42

长字符串

如果需要写一个非常长的字符串,需要跨越多行,那么可以使用三个引号,如:

'''    This is a long story.    Something happend.'''

也可以用三个双引号

原始字符串

我们知道,\n这样的特殊字符会进行转义,变成换行符。

输入:

print('Hello,\nworld!')

输出:

Hello,world!

有时候我们需要输入这样的路径C:\nowhere,就会被进行转义。此时可以用\本身对自己进行转义。

输入:

print('C:\\nowhere')

输出:

C:\nowhere

看起来不错,但如果要输入一个很长的路径,比如:C:\VS2015\Common7\Packages\Debugger\X64就非常麻烦了。

可以用原始字符串来解决这个问题:

输入:

print(r'C:\VS2015\Common7\Packages\Debugger\X64')

输出:

C:\VS2015\Common7\Packages\Debugger\X64

不能在原始字符串的结尾输入\,除非你对\进行转义

Unicode

Python3中所有的字符串都是Unicode编码的。

0 0
原创粉丝点击