python快速入门naomiceder_十分钟快速入门 Python

本文以 Eric Matthes 的《Python编程:从入门到实践》为基础,以有一定其他语言经验的程序员视角,对书中内容提炼总结,化繁为简,将这本书的精髓融合成一篇10分钟能读完的文章。

读完本篇文章后,可对 Python 语言特性、编码风格有一定了解,并可写出简单的 Python 程序。

100 多位经验丰富的开发者参与,在 Github 上获得了近 1000 个 star 的开源项目想了解下吗?

项目地址:https://github.com/cachecats/coderiver

一、安装与运行

各个系统的 Python 安装教程请自行查阅资料,这里不再赘述。

检查 Python 版本,在命令行输入 python 即可,同时会进入命令行交互模式,可以在这里执行 python 命令。

如果电脑中安装了 python2.x 和 python3.x 两个版本,输入 python 运行的是 2.x 版本。想运行 3.x,则需输入 python3。

在命令行输入 python :

Solo-mac:~ solo$ python

Python 2.7.10 (default, Aug 17 2018, 19:45:58)

[GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.0.42)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

>>>

在命令行输入 python3 :

Solo-mac:~ solo$ python3

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 26 2018, 23:26:24)

[Clang 6.0 (clang-600.0.57)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

>>>

输入 exit() 即可退出命令行模式。

命令行运行 python 文件

如果是写好了一个 python 文件,想通过命令行运行它,进入这个目录,在命令行输入 python 文件名.py 即可。

比如桌面上有个文件 hello.py,内容是打印一句话:

print("Hello, Python")

想运行它,先进入 Desktop 目录,再在命令行输入 python hello.py 就能运行:

Solo-mac:Desktop solo$ python hello.py

Hello, Python

二、变量和简单数据类型

2.1 变量命名规则

变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打 头,例如,可将变量命名为message_1,但不能将其命名为1_message。

变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message 可行,但变量名greeting message会引发错误。

不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词, 如print。

变量名应既简短又具有描述性。例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好。

慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0。

变量名应该是小写的,虽然没有强制规定,但是约定俗称的规则。

2.2 字符串

字符串就是一系列字符。在Python中,用引号括起的都是字符串,其中的引号可以是单引号,也可以是双引号,还可以同时使用。如:

"This is a string."

'This is also a string.'

"I love 'python'"

2.2.1 字符串的简单运算

下面介绍字符串的简单运算。

title()

title()以首字母大写的方式显示每个单词,即将每个单词的首字母都改为大写。

>>> name = 'solo coder'

>>> name.title()

'Solo Coder'

upper()、lower()

将字符串改为全部大写或全部小写。

>>> name

'solo coder'

>>> name.upper()

'SOLO CODER'

>>> name.lower()

'solo coder'

>>> name

'solo coder'

注意:title()、upper()、lower() 均不改变原字符串,只是输出了一个新的字符串。

2.2.2 合并(拼接)字符串

Python使用加号(+)来合并字符串。

>>> first = 'solo'

>>> last = 'coder'

>>> full = first + ' ' + last

>>> full

'solo coder'

2.2.3 使用制表符或换行符来添加空白

在编程中,空白泛指任何非打印字符,如空格、制表符和换行符。

要在字符串中添加制表符,可使用字符组合 \t,要在字符串中添加换行符,可使用字符组合 \n 。

>>> print('\tPython')

Python

>>> print('Hello,\nPython')

Hello,

Python

2.2.4 删除空白

rstrip() 删除右侧空白,lstrip() 删除左侧空白,strip() 删除两端空白。

>>> msg = ' Python '

>>> msg

' Python '

>>> msg.rstrip()

' Python'

>>> msg.lstrip()

'Python '

>>> msg.strip()

'Python'

>>> msg

' Python '

注意执行完去空格命令后,再打印出 msg,还是原来的字符串,这说明 strip() 也不改变原来的字符串。

2.2.5 Python 2 中的 print 语句

在Python 2中,print语句的语法稍有不同:

>>> python2.7

>>> print "Hello Python 2.7 world!"

Hello Python 2.7 world!

在Python 2中,无需将要打印的内容放在括号内。从技术上说,Python 3中的print是一个函数,因此括号必不可少。有些Python 2 print语句也包含括号,但其行为与Python 3中稍有不同。简单地说,在Python 2代码中,有些print语句包含括号,有些不包含。

2.3 数字

2.3.1 整数

在Python中,可对整数执行加(+)减(-)乘(*)除(/)运算。

>>> 2 + 3

5

>>> 3 - 2

1

>>> 2 * 3

6

>>> 3 / 2

1.5

Python还支持运算次序,因此你可在同一个表达式中使用多种运算。你还可以使用括号来修 改运算次序,让Python按你指定的次序执行运算,如下所示:

>>> 2 + 3*4

14

>>> (2 + 3) * 4 20

2.3.2 浮点数

Python将带小数点的数字都称为浮点数。大多数编程语言都使用了这个术语,它指出了这样一个事实:小数点可出现在数字的任何位置。

从很大程度上说,使用浮点数时都无需考虑其行为。你只需输入要使用的数字,Python通常都会按你期望的方式处理它们:

>>> 0.1 + 0.1

0.2

>>> 0.2 + 0.2 9 0.4

>>>2 * 0.1

0.2

>>>2 * 0.2

0.4

但需要注意的是,结果包含的小数位数可能是不确定的:

>>> 0.2 + 0.1

0.30000000000000004

>>> 3 * 0.1

0.30000000000000004

所有语言都存在这种问题,没有什么可担心的。Python会尽力找到一种方式,以尽可能精确地表示结果,但鉴于计算机内部表示数字的方式,这在有些情况下很难。后面将会学习更多的处理方式。

2.3.3 使用函数str()避免类型错误

如果用数字跟字符串拼接,就会出现类型错误。为避免这个问题,可以使用 str() 将数字转换为字符串再进行操作。

>>> age = 18

>>> print('my age is ' + age)

Traceback (most recent call last):

File "", line 1, in

TypeError: can only concatenate str (not "int") to str

>>> print('my age is ' + str(age))

my age is 18

2.3.4 Python 2 中的整数

在Python 2中,将两个整数相除得到的结果稍有不同:

>>> python2.7

>>> 3 / 2

1

Python返回的结果为1,而不是1.5。在Python 2中,整数除法的结果只包含整数部分,小数部 分被删除。请注意,计算整数结果时,采取的方式不是四舍五入,而是将小数部分直接删除。

在Python 2中,若要避免这种情况,务必确保至少有一个操作数为浮点数,这样结果也将为 浮点数:

>>> 3 / 2

1

>>> 3.0 / 2

1.5

>>> 3 / 2.0

1.5

>>> 3.0 / 2.0

1.5

从Python 3转而用Python 2或从Python 2转而用Python 3时,这种除法行为常常会令人迷惑。使用或编写同时使用浮点数和整数的代码时,一定要注意这种异常行为。

2.3.5 注释

在Python中,注释用井号(#)标识。井号后面的内容都会被Python解释器忽略。如

# 向大家问好

print("Hello Python people!")

三、列表

列表由一系列按特定顺序排列的元素组成。

在Python中,用方括号([])来表示列表,并用逗号来分隔其中的元素。

>>> list = []

>>> list.append('haha')

>>> list.append('heihei')

>>> list.append('hehe')

>>> list

['haha', 'heihei', 'hehe']

>>> list[0]

'haha'

获取最后一个元素可以用 -1,如 list[-1] 是获取最后一个元素,list[-2] 是获取倒数第二个元素。

3.1 列表的增删改查

3.1.1 修改元素

修改元素直接用索引修改

>>> list[0] = 'nihao'

>>> list

['nihao', 'heihei', 'hehe']

3.1.2 添加元素

可以在末尾添加,也可以在任意位置插入。

在末尾添加:append

>>> list.append('wa')

>>> list

['nihao', 'heihei', 'hehe', 'wa']

插入:insert

>>> list.insert(1, 'hello')

>>> list

['nihao', 'hello', 'heihei', 'hehe', 'wa']

3.1.3 删除元素

删除有三种方式:

del:按索引删除

pop():删除列表最后一个元素并返回最后一个元素的值。也可以传索引删除任意位置的值。

remove():按值删除

>>> list

['nihao', 'hello', 'heihei', 'hehe', 'wa']

>>> del list[1]

>>> list

['nihao', 'heihei', 'hehe', 'wa']

>>> list.pop()

'wa'

>>> list.remove('hehe')

>>> list

['nihao', 'heihei']

给 pop() 传索引删除其他位置的值

>>> list

['nihao', 'heihei']

>>> list.pop(0)

'nihao'

>>> list

['heihei']

注意:

方法remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。

如果你不确定该使用del语句还是pop()方法,下面是一个简单的判断标准:如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用del语句;如果你要在删除元素后还能继续使用它,就使用方法pop()。

3.2 组织列表

本节将介绍列表的排序、反转、计算长度等操作。

列表的排序主要有两种方式:

使用方法sort()对列表进行永久性排序

使用函数sorted()对列表进行临时排序

3.2.1 使用方法sort()对列表进行永久性排序

使用 sort() 方法将改变原列表。如果要反转排序,只需向sort()方法传递参数 reverse=True。

>>> list

['zhangsan', 'lisi', 'bob', 'alex']

>>> list.sort()

>>> list

['alex', 'bob', 'lisi', 'zhangsan']

>>> list.sort(reverse=True)

>>> list

['zhangsan', 'lisi', 'bob', 'alex']

3.2.2 使用函数sorted()对列表进行临时排序

函数 sorted() 让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。

如果要反转排序,只需向 sorted() 传递参数 reverse=True。

>>> list = ['douglas','alex','solo','super']

>>> sorted(list)

['alex', 'douglas', 'solo', 'super']

>>> list

['douglas', 'alex', 'solo', 'super']

>>> sorted(list, reverse=True)

['super', 'solo', 'douglas', 'alex']

>>> list

['douglas', 'alex', 'solo', 'super']

3.2.3 反转列表

要反转列表元素的排列顺序,可使用方法 reverse()。 reverse() 也会改变原始列表。

reverse() 只会按原来的顺序反转,不会进行额外的按字母排序。

>>> list

['douglas', 'alex', 'solo', 'super']

>>> list.reverse()

>>> list

['super', 'solo', 'alex', 'douglas']

3.2.4 确定列表的长度

使用函数len()可快速获悉列表的长度。

>>> list

['super', 'solo', 'alex', 'douglas']

>>> len(list)

4

3.3 操作列表

3.3.1 循环

使用 for…in 循环。

python 以缩进来区分代码块,所以需要正确的缩进

>>> cats

['super', 'solo', 'alex', 'douglas']

>>> for cat in cats:

... print(cat)

...

super

solo

alex

douglas

3.3.2 range()

Python函数range()让你能够轻松地生成一系列的数字。

>>> for value in range(1,5):

... print(value)

...

1

2

3

4

注意:range() 会产生包含第一个参数但不包含第二个参数的一系列数值。

使用 range() 创建列表

>>> numbers = list(range(1,6))

>>> numbers

[1, 2, 3, 4, 5]

range() 还可以指定步长。下面的例子生成了从0开始,到11的偶数:

>>> nums = list(range(0,11,2))

>>> nums

[0, 2, 4, 6, 8, 10]

3.3.3 对列表简单的计算

有几个专门用于处理数字列表的Python函数。

min():计算最小值

max():计算最大值

sum():计算总和

>>> numbers

[1, 2, 3, 4, 5]

>>> min(numbers)

1

>>> max(numbers)

5

>>> sum(numbers)

15

3.3.4 列表解析

列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。

>>> squares = [value**2 for value in range(1,11)]

>>> squares

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

要使用这种语法,首先指定一个描述性的列表名,如squares;然后,指定一个左方括号, 并定义一个表达式,用于生成你要存储到列表中的值。在这个示例中,表达式为 value ** 2,它计 算平方值。接下来,编写一个for循环,用于给表达式提供值,再加上右方括号。在这个示例中, for循环为for value in range(1,11),它将值1~10提供给表达式 value ** 2。请注意,这里的for 语句末尾没有冒号。

3.4 切片

要创建切片,可指定要使用的第一个元素和最后一个元素的索引。与函数range()一样,Python在到达你指定的第二个索引前面的元素后停止。要输出列表中的前三个元素,需要指定索引0~3,这将输出分别为0、1和2的元素。

>>> names = ['aa','bb','cc','dd']

>>> print(names[1:4])

['bb', 'cc', 'dd']

如果你没有指定第一个索引,Python将自动从列表开头开始:

>>> print(names[:4])

['aa', 'bb', 'cc', 'dd']

如果没有指定终止索引,将自动取到列表末尾

>>> print(names[2:])

['cc', 'dd']

也可以使用负数索引,比如返回最后三个元素

>>> print(names[-3:])

['bb', 'cc', 'dd']

遍历切片

>>> for name in names[1:3]:

... print(name)

...

bb

cc

3.5 复制列表

可以使用切片来快速复制列表,不指定开始索引和结束索引。

>>> names

['aa', 'bb', 'cc', 'dd']

>>> names2 = names[:]

>>> names2

['aa', 'bb', 'cc', 'dd']

用切片复制出来的新列表,跟原来的列表是完全不同的列表,改变其实一个不会影响另一个列表。

>>> names.append('ee')

>>> names

['aa', 'bb', 'cc', 'dd', 'ee']

>>> names2

['aa', 'bb', 'cc', 'dd']

而如果简单的通过赋值将 names 赋值给 names2,就不能得到两个列表,实际上它们都指向了同一个列表。如果改变其中一个,另一个也将被改变。

>>> names

['aa', 'bb', 'cc', 'dd']

>>> names2 = names

>>> names2

['aa', 'bb', 'cc', 'dd']

>>> names.append('ee')

>>> names

['aa', 'bb', 'cc', 'dd', 'ee']

>>> names2

['aa', 'bb', 'cc', 'dd', 'ee']

3.6 元组

Python将不能修改的值称为不可变的,而不可变的列表被称为元组。

元组看起来犹如列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。

>>> food = ('apple', 'orange')

>>> food[0]

'apple'

>>> food[1]

'orange'

>>> food[1] = 'banana'

Traceback (most recent call last):

File "", line 1, in

TypeError: 'tuple' object does not support item assignment

遍历用法跟列表一致。

四、条件判断

每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试。

检查是否相等,用 ==

检查是否不相等,用 !=

数字比较 >、 <、 >=、 <=

多个条件与 and

多个条件或 or

判断列表是否包含某元素 in

>>> names

['aa', 'bb', 'cc', 'dd', 'ee']

>>> 'bb' in names

True

判断列表是否不包含某元素

>>> names

['aa', 'bb', 'cc', 'dd', 'ee']

>>> 'ff' not in names

True

if 语句

简单的 if-else

>>> a = 10

>>> if a > 10:

... print('hello')

... else:

... print('bye')

...

bye

if-elif-else

>>> if a<5:

... print(a<5)

... elif 5

... print('5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值