操纵列表
列表可以连在一起:
>>> fruits = ["apples", "grapes", "oranges"] >>> veggies = ["corn", "kale", "mushrooms"] >>> grocery_list = fruits + veggies >>> grocery_list ['apples', 'grapes', 'oranges', 'corn', 'kale', 'mushrooms']
功能
通常,您可以将列表看作字符串--只有每一块数据都是一个元素。那么,您在字符串上使用的相同函数可以用于列表。
len()
-给定一个列表,此函数将返回其长度。
>>> numbers_list = [1, 2, 3, 200] >>> len(numbers_list) 4
slice()
-给定一个开始值和停止值,您可以访问一组元素。
>>> >>> hello = ["H", "e", "l", "l", "o"] >>> hello[2] 'l' >>> hello[3] 'l' >>> hello[0] 'H' >>> hello[0:2] ['H', 'e']
数据类型方法
看看其他列表方法。
list.append()
-用于将项目添加到列表末尾
>>> numbers_list = [1, 2, 3, 200] >>> numbers_list.pop(2) 3 >>> numbers_list [1, 2, 200]
list.sort()
-对这份清单进行排序
>>> my_tuple = ("Michael", "Herman", 31, "Software Developer") >>> my_tuple[1] 'Herman'
list.pop()
-给定索引值,从列表中删除元素
>>> numbers_list = [1, 2, 3, 200] >>> numbers_list.pop(2) 3 >>> numbers_list [1, 2, 200]
元组 详解
元组类似于列表,但它们是不可变的--这意味着它们在创建后不能更改。
my_tuple = ("Michael", "Herman", 31, "Software Developer")
就像列表一样,您也可以使用索引访问不同的元素:
>>> first_tuple = (1, 2) >>> second_tuple = (3, 4) >>> third_tuple = first_tuple + second_tuple >>> third_tuple (1, 2, 3, 4)
元组通常用于字典键,因为它们是不可变的。
操纵元组
您可以添加两个元组:
>>> first_tuple = (1, 2) >>> list(first_tuple) [1, 2]
功能
list()
-用于将元组转换为列表
>>> first_tuple=(1,2)
>>> list(first_tuple)
[1, 2]
如何将列表转换为元组
数据类型方法
因为元组是不可变的,所以许多列表方法不要用元组。
>>> first_tuple = (1, 2) >>> first_tuple.append(3) Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'tuple' object has no attribute 'append' >>> first_tuple.pop(1) Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'tuple' object has no attribute 'pop' >>> first_tuple.sort() Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'tuple' object has no attribute 'sort' >>> first_tuple.reverse() Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'tuple' object has no attribute 'reverse'
字典 详解
字典是使用包含键/值对的哈希表实现的关联数组(对象)的一种类型。
my_dict = {"Key 1": "Value 1", "name": "michael herman", "pi": 3.14}
可以使用以下语法返回键的值:
>>> my_dict = {"Key 1": "Value 1", "name": "michael herman", "pi": 3.14} >>> my_dict["name"] 'michael herman' >>> my_dict["Key 1"] 'Value 1'
(6)用Python编写代码
在Python中有三种基本的编码方法。我们已经使用了其中之一--交互式PythonShell
代码编辑器
最好的方法是使用实际的编码编辑器。有些人更喜欢 IDE,但是一个简单得多的代码编辑器对于学习来说要好得多。
为什么?当你在学习一些新的东西时,你想尽可能多地剥离复杂的层次。简化事情。通过在混合环境中添加一个复杂的IDE(您将不得不学习如何操作),您只是添加了越来越多的层,使得学习Python的任务更加困难。
(7)选择编码编辑器
Python程序的基本形式是将文本(代码)保存在带有.py文件扩展名。Python代码可以用像记事本这样的基本代码编写--但是没有理由让自己经历这样的磨难,因为有更好的选择可供选择。在它的核心部分,代码编辑器应该提供一些特性来帮助程序员创建程序(在我们的例子中,Python脚本和模块)。在大多数情况下,代码编辑器允许用户自定义程序本身,以满足您的需要和样式。
在代码编辑器中应该寻找什么?
- 易用性
- 语法高亮
- 自动压痕
- 条形视图
- 线路编号
- 能够自定义编辑器的外观和感觉
- 外接程序的可用性
请看以下示例:
因此,代码在编辑器中更容易阅读,还识别了三个简单的错误,其中一个是显示停止。
(8)数到10
准备好开始一个基本的例子了吗?!
如果你是编程新手,你可能不会。充分理解代码,但重要的是这些概念。Python被设计成非常容易阅读,这个例子演示了这个原则。我们将修复上面被破坏的代码,并再添加一个代码块来强调代码块和缩进的概念。
许多程序员在最初处理问题时会不知所措。一个有效的方法来帮助解决问题,无论大小,是逻辑上把问题分成几个部分。
例如,让我们编写一个计算从1到10的基本程序。每次计数递增时,我们都想显示一个新的数字,为了帮助实现代码块的概念,我们将展示在我们到达10之后会发生什么。帮助开发工作流的一种方法是使用伪代码。
让我们制定一个计划(伪代码!)
不要复制和粘贴,无论它是多么诱人。这样做会妨碍学习。
Python 2.7: # Python 2.7 count = 1 # Code block 1 while count < 11: print count count = count + 1 # Code block 2 if count == 11: print 'Counting complete.' Python 3: # Python 3 count = 1 # Code block 1 while count < 11: print(count) count = count + 1 # Code block 2 if count == 11: print('Counting complete.')
注意,每个示例的第一行都有一个#
(散列字符),后面是空格,然后是解释。
最后,在执行代码时,Python会忽略注释。
你有没有注意到这些例子同时使用了=
,双倍==
?这可能会让人困惑。
- 表达
count = 1
,=
将1的值赋值给名为count
. - 在条件中
if count == 11:
,==
比较count
带着11
,返回布尔值。True
或False
将文件保存为数到您创建的文件夹中,然后退出编辑器。打开终端或命令提示符,进入到您创建的文件夹。
现在运行代码:python count_ten.py
你可能需要替换
python
带着python3
或py -3
取决于你的设置。
输出应该如下所示:
恭喜你!你刚刚写了你的第一个程序。
(9)错误和例外
语法错误
我们已经看到了这个错误--不正确的缩进。语法错误将阻止程序的执行。在本例中,if
语句缺少一个冒号以结束该语句。Python非常有助于指出错误:
>>> >>> if x < 9 File "<stdin>", line 1 if x < 9 ^ SyntaxError: invalid syntax
例外
程序执行过程中会出现异常错误。Python有许多内置的例外。例如:
>>> 12/0 Traceback (most recent call last): File "<stdin>", line 1, in <module> ZeroDivisionError: integer division or modulo by zero
语义错误
语义错误是由于逻辑中的一个或多个问题而产生的错误。
这些错误可能更复杂,因为没有生成错误。代码运行,生成意外和或不能正确的输出,或没有输出。
(10)Python的功能--包/模块
Python最大的优点之一是有大量可用的模块,它们都内置在Python核心和第三方包/库-用来扩展语言。这些模块可能非常有用。一些使用较多的内置Python模块包括:
- 数学
:C标准库中的数学函数(您已经看到了这个) - 随机
*伪随机数发生器 - 日期时间
*用于操纵日期和时间 - Re
*用于使用正则表达式
例如,这里我们import math
使用pi
, sqrt
和pow
:
警告::不要将您的Python文件命名为类似模块的文件。math.py或random.py。这将导致冲突,导致代码中的意外行为。
PIP
管理Python的第三方包/模块的最佳方法是PIP。新的编码器在执行某些示例代码时经常会看到以下错误:ImportError: No module named MODULE_XXXX
.
这些模块需要使用Pip手动安装。在Python 3中,pip,调用PIP 3。
(11)测试你的知识
- Python是一种强大的、动态类型的语言,这意味着什么?
- 如何访问PythonShell?
- 如何声明变量?
- 变量名和变量值之间有什么区别?
- Python的内置数据类型是什么?
- 整数和浮点数有什么区别?
- 什么是布尔值?
- 是什么 %
- 列表和元组有什么区别?
- 什么是字典?
- 为什么要在代码中使用注释?
- 测试 help() 功能
float
到dir()
功能None
。它代表什么?- 属性检查变量或值的数据类型,
type()
功能。
打开文本编辑器并创建一个名为exercise.py。复制并粘贴以下代码到文件中:
########################################################################## ## Modify the variables so that all of the statements evaluate to True. ## ########################################################################## var1 = var6 = var2 = var3 = var4 = var5 = ############################################ ## Don't edit anything below this comment ## ############################################ # integers print(type(var1) is int) print(type(var6) is float) print(var1 < 35) print(var1 <= var6) # strings print(type(var2) is str) print(var2[5] == 'n' and var2[0] == "p") # lists print(type(var3) is list) print(len(var3) == 5) # tuples print(type(var4) is tuple) print(var4[2] == "Hello, Python!") # dictionaries print(type(var5) is dict) print("happy" in var5) print(7 in var5.values()) print(var5.get("egg") == "salad") print(len(var5) == 3) var5["tuna"] = "fish" print(len(var5) == 3)
按照说明完成代码。完成后,从终端运行代码,使用python exercise.py
命令。