这个系列是我在学习Python语言的过程中记录的笔记,主要是一些知识点汇总,而非学习教程,可供有一定编程基础者参考。文中偏见和不足难以避免,仅供参考,欢迎批评指正。

本系列笔记主要参考文献是官网文档:http://docs.python.org/。在此向文档编辑者致谢。请勿将本文用于商业用途。

一、Python语言介绍

首先,Python是一种广泛应用的通用高级编程语言,具有较高的抽象层次,支持面向对象的编程方法。其具有高级的数据结构和许多方便的库文件,可以完成文件IO、系统调用、网络编程,甚至有GUI库。Python具有较高的可读性,相对其他程序设计语言(C,C++,Java)来说,可以提高开发效率。然而,作为一种解释型语言(interpreted language),Python在运行效率中的优势并不明显。所以人们经常使用Python完成简单的、高层次的任务,在大型开发中常作为“胶水语言”连接各模块。

Python在Windows和Linux系列操作系统上均可运行。一些版本的Linux中自带了Python程序,其二进制版本也可在其官网上下载:http://www.python.org。(本系列文章叙述的Python使用的版本为3.4.3)

二、使用Python解释器

在控制台中输入命令“python3.4”(或“python”)运行Python的解释器,控制台中打印出Python的版本信息,并给出提示符>>>

 $ python3.4
Python 3.4 (default, Mar 16 2014, 09:25:04)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Python的提示符“>>>”后可输入一条语句,按下回车键执行该语句。如果解释器需要多条语句,它会给出“...”提示符,提示输入后续语句。

Python中的变量不需声明(甚至不需指明类型)即可直接使用。在这里输入语句:

>>>a=1
>>>

即定义了a这个变量。这次输入表达式a,即可显示a的数值:

>>> a
1
>>>

三、表达式计算

在这里,可以尝试使用Python来作为计算器,进行一些简单的数值运算。

运算符 解释 C中类似的表达 示例

a+b

a-b

a*b

a/b

加减乘除,除法为浮点除法

a+b

a-b

a*b

a/b

>>> a/3
0.3333333333333333
>>> 2.3+6.9
9.2
>>>

a//b

a%b

整除,返回整数除法

取模,返回a/b的余数

a/b
>>> 1//3
0
>>> 50//3
16
>>>
 a**b  幂运算  pow(a,b)

>>> 2**0.5
1.4142135623730951
>>> (-1)**0.5
(6.123233995736766e-17+1j)
>>> _**2
(-1+1.2246467991473532e-16j)
>>> 2**100
1267650600228229401496703205376
>>>1j**1j
(0.20787957635076193+0j)
>>>

其中,下划线_代表之前的运算结果,(a+bj)代表复数(a+bi)。

 ( )  括号,同C语言  ( )  

四、字符串

Python中的“字符串(str)”可以用单引号或双引号括起来,并且单、双引号可以彼此嵌套使用。比如官方文档中的示例:

 >>> 'spam eggs'  # single quotes
'spam eggs'
>>> 'doesn\'t' # use \' to escape the single quote...
"doesn't"
>>> "doesn't" # ...or use double quotes instead
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
  • 其中,以#开头的部分为行注释
  • 单引号中的单引号需要使用转义字符 \ 引导
  • 注意12行中的 \ 为转义字符

转义字符还可转义反斜线 '\\' 和换行符 '\n' 。可以使用源字符串(raw strings)来避免反斜线被当作转义字符,只需在字符串前加 r 。

 >>> print('C:\some\name')  # here \n means newline!
C:\some
ame
>>> print(r'C:\some\name') # note the r before the quote
C:\some\name
  • print函数可以打印参数的值。对于数值,打印其数值;对于字符串,打印其内容。
  • print函数可以接多个参数,各参数间打印一个空格。比如:
    >>> print(1,(-1)**0.5,'hello, world')
    1 (6.123233995736766e-17+1j) hello, world
    >>>
  • print函数会在行末打印一个换行符,可以在最后一个参数处自行指定行末字符(串):
    >>> print(1, (-1)**0.5, 'hello, world', end='|')
    1 (6.123233995736766e-17+1j) hello, world|>>>

字符串还有其他的表示方法。同C的表示方法,以空格或Tab间隔的两个字符串会自动合并起来:

>>>"Hi," 'Py' 'thon'
'Hi,Python'

多行字符串可以使用三个引号括起来。由三个引号括起来的字符串中可以包括直观的换行符。如果在行末加入一个反斜线 \ ,则该反斜线连同后面的换行符将被忽略:

 >>> print("""\
... Usage: thingy [OPTIONS]
... -h Display this usage message
... -H hostname Hostname to connect to
... """)
Usage: thingy [OPTIONS]
-h Display this usage message
-H hostname Hostname to connect to >>>
  • 2-5行的三个点是提示符
  • 第1行后使用了 \ 实现了续行功能,所以U成为字符串的第一个字符
  • 字符串中的最后一个字符为换行符(第4行末尾的换行符),该换行符被打印到第8行末尾,第9行末尾的换行符是print默认具有的

“字符串”和下面提到的“列表”都是一种“序列(sequence)”,其支持的运算在介绍列表后提到。

五、列表

列表(list)是Python中的一种数据结构,类似于广义表。在Python的语法中,列表表示为由中括号括起来的一组逗号隔开的元素。元素的类型也可以是列表。不同元素的类型允许不同。

>>> squares = [1*1, 2*2, 3*3, 4*4, 5*5]
>>> squares
[1, 4, 9, 16, 25]
>>> [squares,0]
[[1, 4, 9, 16, 25], 0]
>>>

list对象有一些“方法(method)”,通过调用可以对列表内容进行更改:

方法 示例

list.append(item)

将item元素插入到list最后面

>>> squares=[1,4,9,16,25]
>>> squares.append(36)
>>> squares
[1, 4, 9, 16, 25, 36]
>>>

list.insert(n,item)

将item插入到list的第n个位置;若n超出范围,则插入到两边

>>> squares=[1,4,9,16,25]
>>> squares.insert(3,0)
>>> squares
[1, 4, 9, 0, 16, 25]
>>>

下面是字符串和列表共有的运算。

运算 示例

seq1+seq2

连接两个序列

seq*int

int*seq

将序列重复若干次

>>> 'Happy '+'new year!'
'Happy new year!'
>>> [2]+[3]*2
[2, 3, 3]
>>>

seq[i]

提取序列中下标为i的元素。此处的下标与C语言类似,第一个元素下标为0,第二个元素下标为1,以此类推。Python中另外有倒数第一个元素下标为-1,倒数第二个元素下标为-2,等等。

  • 如果下标越界,则会产生错误
  • 特别地,字符串内的元素是只读的,类似'hello'[0]=0的语句会产生错误
>>> 'hello'[1]
'e'
>>> a=[1,2,3,4,4]
>>> a[4]=5
>>> a
[1, 2, 3, 4, 5]
>>>

seq[begin:end]

截取(slice)序列中从begin(含)到end(不含)处的元素。(使用过C++的标准库的朋友应该熟悉这种规定,即begin为截取部分的首下标,end为尾后下标。)

  • 该运算不会产生下标越界错误,而是可能返回空序列(空字符串''或空列表[])
  • 该运算返回原序列的一个拷贝,即把截取部分赋值给其他变量,则通过新变量对新序列的修改不会影响原序列的内容
  • 可以通过省略begin和/或end来隐式指定开头和结尾(示例第7行)
  • 可以通过对该表达式的赋值更改原序列的内容(示例第7行)
 >>> a
[2, 3, 4]
>>> a=[1,2,3,4,5]
>>> b=a[1:3]
>>> b
[2, 3]
>>> b[:]=[]
>>> b
[]
>>> a
[1, 2, 3, 4, 5]
>>>

除了上述运算符外,一个经常用到的内置函数len(seq)可以计算字符串或列表的长度。

[Python学习笔记1]Python语言基础 数学运算符 字符串 列表的更多相关文章

  1. Python学习笔记(一)基础

    学习资料 跟着廖雪峰的Python教程学习Python,大家可以去官方网站查看学习教程.使用的Python版本为3.0.x,解释器为CPython.本系列博客为学习笔记,记录跟随廖老师所学知识,同时会 ...

  2. python学习笔记一 python入门(基础篇)

    简单介绍一下python2.x和3.5的区别   print   在python3.5中print 变为print() Old: print * New: print( * ) 如果想要不换行,之前的 ...

  3. python学习笔记——(一)基础设置

    python的学习,今天就开始上开发环境Pycharm,这样以后在调试,使用和学习起来就方便很多. 我用的是JetBrains PyCharm Community Edition 2018.1.1 x ...

  4. python 学习笔记 9 -- Python强大的自省简析

    1. 什么是自省? 自省就是自我评价.自我反省.自我批评.自我调控和自我教育,是孔子提出的一种自我道德修养的方法.他说:“见贤思齐焉,见不贤而内自省也.”(<论语·里仁>)当然,我们今天不 ...

  5. python学习笔记(一):python简介和入门

    最近重新开始学习python,之前也自学过一段时间python,对python还算有点了解,本次重新认识python,也算当写一个小小的教程.一.什么是python?python是一种面向对象.解释型 ...

  6. python学习笔记(python介绍)

    为什么要学python? python和shell的比较,和PHP.和JAVA比较 运维开发只是用到python的很小一部分 python在一些知名公司的应用: 谷歌:python的创始人原来在谷歌工 ...

  7. python学习笔记:python字符串

    二.python字符串操作符 1. 对象标准类型操作符 Python对象的标准类型操作符一共就三种:对象值的比较.对象身份的比较.布尔类型.其中对象值的比较主要是大于.小于.不等于等的数学比较符:对象 ...

  8. Python学习笔记 - day12 - Python操作NoSQL

    NoSQL(非关系型数据库) NoSQL,指的是非关系型的数据库.NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称.用于超大规模数据的存储.(例如 ...

  9. python 学习笔记一——Python安装和IDLE使用

    好吧,一直准备学点啥,前些日子也下好了一些python电子书,但之后又没影了.年龄大了,就是不爱学习了.那就现在开始吧. 安装python 3 Mac OS X会预装python 2,Linux的大多 ...

随机推荐

  1. LoadRunner脚本参数化设置

    LoadRunner,是一种预测系统行为和性能的负载测试工具,其中VUG(Virtual User Generator)主要用于虚拟用户生成和脚本编辑.为了实现单用户多次迭代执行脚本,VUG提供了强大 ...

  2. 如何去掉HTML5Viewer中的滚动条

    在页面中加载报表时,当报表纸张的高度和宽度大于浏览器的高度和宽度时,就会自动生成滚动条,以便报表加载完全,但很多时候报表浏览器滚动条的出现,可能会导致一个页面有多个滚动条的重叠出现,用户体验非常不好, ...

  3. Hbase关于Java常用API举例

    1. HBase相关对Admin操作的的API封装在HBaseAdmin中,封装了HBase常用操作的API 使用方法: pom.xml <!-- https://mvnrepository.c ...

  4. css权值计算

    外部样式表<内部样式表<内联样式: HTML 标签选择器的权值为 1: Class 类选择器的权值为 10: ID 选择器的权值为 100: 内联样式表的权值最高 1000: !impor ...

  5. php curl用法

    curl 是使用URL语法的传送文件工具,支持FTP.FTPS.HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP.curl 支持SSL证书.HTTP POS ...

  6. 第一个C语言程序

    从第一个C语言程序了解C语言 了解关键字 了解函数 注释 C语言的执行流程 标识符 C语言的学习重难点 从第一个C语言程序了解C语言 上图是一个在控制台上显示“Hello, World!”的C语言源代 ...

  7. python爬取数据保存入库

    import urllib2 import re import MySQLdb class LatestTest: #初始化 def __init__(self): self.url="ht ...

  8. JQUERY MOBILE 中文API站 和 官方论坛

    中文API站:http://www.jqmapi.com/api1.2/preview/quickstartquide.html 官方论坛:http://bbs.phonegapcn.com/foru ...

  9. Understanding the Internal Message Buffers of Storm

    Understanding the Internal Message Buffers of Storm Jun 21st, 2013 Table of Contents Internal messag ...

  10. [转载]GlassFish 的安装及设置命令

    移步: http://blog.csdn.net/joyous/article/details/8008870