《Python基础教程》第1章 基础知识
admin
2023-07-30 20:32:23
0

编程语言之间很多概念是互通的,对于和Java或者JavaScript已经重复的基础内容,不再笔记,只挑选比较常用和不同的地方予以记录。

本章目录

  • 安装Python
  • 交互式解释器
  • 算法是什么
  • 数字和表达式
  • 变量()
  • 语句()
  • 获取用户输入
  • 函数()
  • 模块
  • 保存并执行程序
  • 字符串
  • 小结()

安装Python

Mac OS上默认安装了Python,除非你需要安装新版本的可以参考 官方下载。[注:Terminal上输入python发现个人版本是2.7.8。到官网上查看发布历史,也是醉了,早些时候已经到了3.4.2,而最近的版本居然是2.7.9 ]

除了官方的发布版本外,还有很多Python的版本可供下载,每个版本侧重功能可能会有不同。因此如果听说某Python前面加个 i 或者 j 叫成 iPython 或者 jPython 八成就是其他发布版本,不要觉得新奇。

交互式解释器

在Terminal输入python即进入了交互式解释器,输入一些有意义的语句既可看到响应。

算法是什么

算法是我们为了达成目的,告诉计算机该要怎么做的一个步骤。

数字和表达式

使用交互式解释器可以做一些很基本的算术运算:

>>> 2 + 2
4
>>> 53672 + 235253
288925
>>> 1/2
0

如上的最后一个表达式,两个整数相除结果为整数,那么要让它不按照计算机语言处理方式,而只按照日常计算的方式有两种做法:

  • 用浮点数进行运算。只要有一个数为浮点数,结果就为浮点数:
>>> 1.0 / 2.0
0.5
>>> 1 / 2.0
0.5
>>> 1.0 / 2
0.5
  • 让Python改变除法的执行方式
>>> from __future__ import division
>>> 1 / 2
0.5

如上,从__future__中导入了division。这个时候要用整除就要使用双斜杆了。

>>> 1 // 2
0

还有一个取余运算符比较常用,注意的是取余运算符对浮点数也适用。

>>> 2.75 % 0.5
0.25

最后介绍一个幂(乘方)运算符:

>>> 3 ** 2
9
>>> -3 ** 2
-9
>>> (-3) ** 2
9
长整形数

受计算机存储单位的限制,所有整数不能大于某个数(也不能小于某个数),如果超出Python会自动转换为长整型数,当然你也可以自己定义的时候就加上L在后面,如下是定义和运算的例子:

>>> 1000000000000000000000
1000000000000000000000L
>>> 2987198739107239812 * 1239827389479283479283
3703610814563136332097919362350014814796L
十六进制和八进制
>>> 0xAF
175
>>> 010
8

获取用户输入

>>> x = input(\'x:\')
x:4
>>> y = input(\'y:\')
y:3
>>> print x*y
12

模块

可以把模块当作导入到Python中增强功能的扩展,有两种导入形式:

>>> import math
>>> int(math.floor(32.99))
32

>>> from math import sqrt
>>> sqrt(9)
3.0
cmatch和复数

cmatch被用来处理虚数、复数之类,几乎没机会用到的吧,略。

回到__furture__

一些在将来会成为Python语言特性的功能会被假如到模块__furture__中,在前面已经有接触到过这个 模块。

保存并执行程序

将程序片段保存在py为后缀的文件后,可以通过python file.py进行执行。如下介绍配置python文件为可执行文件的做法。

在文件的首行加上 #!usr/bin/env python,然后命令行给文件加上可执行属性 chmod a+x hello.py 就能执行命令行键入 ./hello.py 执行代码了。(注:个人PC上的Python版本是2.7.8,不同版本不同操作系统,需要添加的行首内容或执行命令可能会有不同)示例代码如下:

#!usr/bin/python

name = raw_input(\'What is your name ?\')
print \'Hello,\' + name + \'!\'

直接通过双击也是可以的,但是输入结果以后程序运行完毕后就直接关闭了,加入如下代码即可:

raw_input(\"Press \")

字符串

引号与转译
>>> \"Hello, World!\"
\'Hello, World!\'

如上,输入的时候是用的双引号,实际输出却是单引号,在Python中两者没有区别,那么为什么不统一用单或者双引号呢,看如下例子:

>>> \"Let\'s go!\"
\"Let\'s go!\"

在一些场合会需要输出单引号(或者双引号)的,除了单双引号交替以外,还可以使用\\将引号进行转译,比如:

>>> \'Let\\\' go!\'
\"Let\'s go!\"
拼接字符串

如下是拼接字符串的常规做法:

>>> \"Hello,\" + \" World!\"
\'Hello, World!\'
>>> x = \"Hello,\"
>>> y = \" World!\"
>>> x + y
\'Hello, World!\'
字符串表示str和repr
>>> \"Hello, World!\" 
\'Hello, World!\'
>>> 1000L
1000L
>>> print \"Hello, World!\"
Hello, World!
>>> print 1000L
1000

如上示例中我们可以看到,Python打印的字符串是有引号括起来的,而print函数打印的字符串是没有。差别就在于这是用来两种不同的字符串转换机制,前者是用repr将内容转化为Python代码中的形式,后者使用str将内容转化为方便用户看的形式,上面的示例等同于下面的写法:

>>> print repr(\"Hello, World!\")
\'Hello, World!\'
>>> print repr(1000L)
1000L
>>>print str(\"Hello, World!\")
\'Hello, World!\'
>>>print str(1000L) 
1000

另外还有一个知识点请看如下示例:

>>> temp = 42
>>> print \"The number is: \" + temp
error
>>> print \"The number is: \" + \\`temp\\`
The number is: 42

直接将字符串和数字拼接是会报错的(写惯了js这点还是感觉蛮意外的),而通过如上写法等同于调用了repr(temp),将temp转化为了字符串“42”所以正常拼接后输出了。

input和raw_input的比较

input会把用户输入当做一个合法的结果,比如命令行执行 input(\"What\'s your name ?\") 用户直接输入名字Lucy是会报错的,需要输入内容裹上字符串才行,如\"Lucy\"。而raw_input相当于替你作了这个事情,将输入内容作为raw数据然后替你包裹成字符串。除非有特殊需要,一般很少用input来做数据输入的。

特殊的字符串
  • 长字符串
    在文本内容跨多行的时候,可以使用三引号包裹的写法。

  • 原始字符串

通过形如\\n的方式我们可以使用一些转译字符,但是在一些路径的表示中,我们可能并不希望有些字符被转移,这时候可以通过在字符前加上r来将字符表示为原始字符串:

>>> print  \"C:\\nowhere\"
C:
owhere
>>> print  r\"C:\\nowhere\"
C:\\nowhere

唯一要注意的是,原始字符串的最后一个字符串不能是反斜杆否则会报错。 做法是将最后一个反斜杆单独作为一个字符串来处理:

>>> print  r\"C:\\nowhere\\\"
error
>>> print  r\"C:\\nowhere\" \"\\\\\"
C:\\nowhere\\
Unicode字符串

Python中的字符串是一ANSII来表示的,如果需要用Unicode的方式来存储可以使用如下写法:

>>> u\"Hello, World!\"
u\'Hello, World!\'

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...