4 python基础(3)

4 python 基础(3)

4.21 使用条件语句控制工作流

这里使用的条件语句也主要是if语句及其变体,branching控制工作流。这里和matlab、C语言中的条件语句作用一样的。

import random
x = random.randint(1, 6)
print(x)
if x == 6:
    print("You win!")

在上面的例子,使用random模块中randint函数创建一个介于1到6的随机整数,如果这个整数等于6,那么打印输出you win。if语句都有条件判断真与假,使用比较运算符号进行判断,这里使用的 == 。
常用的比较运算符:
在这里插入图片描述
每种语言的if等结构语句都有所差异,有的需要:,有的if后面要用()或end ,在python中,要注意:
1、if 语句条件后面加 :,表示下一行缩进代码的开始。
2、if 语句可以单独使用,后面不加elif或则else。
3、python中不使用end结束,所以要准确的缩进
使用 elif 和 else 语句的 if 结构有多种变体。elif 可以使用多次,每次后面加一个条件;else后面不加条件,使用一次且在最后。

import random
x = random.randint(0,6)
print(x)
if x == 6:
    print("You win!")
elif x == 5:
    print("Try again!")
else:
    print("You lose!")

4.22 符合语句与缩进 indentation

在python中要额外注意缩进,通过缩进才能使代码形成代码块,代码块就是相同缩进的代码形成的连续的代码段落。缩进不仅仅是为了好看,还有逻辑上的意义
代码块是if 与for 等结构中重要的注意事项。例如:if复合语句第二行的开头由前一行代码末尾的冒号定义。冒号之后的所有行都应缩进。不正确的缩进会导致语法错误。
可以使用tab键或者空格控制缩进,一般是一个tab或者4个空格,一定要保持一致,不能有的缩进4个空格,有的两个空格。最常用的是使用一个Tab.
在编译器中,会自动产生缩进。

4.23 循环结构 looping structures

在python中有两种指定的循环,分别是for循环和while循环,在matlab和C语言的使用中,最常用的还是循环,个人感觉重复结构的地理数据处理,很重要的就是循环。在网上也看到了很多高级的循环,使用glob函数循环等,但是自己还是习惯for循环,而且有时候多重循环,使用for循环更直观的看到循环的结构。

i = 0
while i <= 10:
    print(i)
    i += 1

变量 i 设置为 0 的起始值。 while 语句检查变量的值。如果此条件评估为 True,则运行代码块。在这个块中,计数器变量的值被打印出来,并且在下一行,该值增加 1。在循环的一次迭代之后,变量的值因此为 1。重复代码块直到条件评估为 False。代码的结果是数字 0 到 10 的打印输出。
while 语句需要退出条件。退出条件中使用的变量(i,在前面的代码中)称为哨兵变量或循环变量。哨兵变量与一些其他值或值进行比较。重要的是要确保你的退出条件是稳健的——也就是说,在一定次数的重复之后,必须达到退出条件;否则,循环将继续进行。注意不要陷入死循环
通常,按 Ctrl+C 会停止脚本运行。您将在交互式解释器中看到一条消息 KeyboardInterrupt。 Ctrl+C 通常在 IDLE 中工作。 Spyder 和 PyCharm 等 编辑器提供了一个停止按钮(红色小方块)。
while 循环根据条件重复部分代码。另一方面,for 循环通常基于序列,例如字符串或列表。 for 循环为序列中的每个元素重复一个代码块。

mylist = ["A", "B", "C", "D"]
for letter in mylist:
    print(letter)

这里的用法和matlab等相同,就不过多解释了。很容易懂。

4.24 处理一行长代码

有时候一行代码会很长,需要对一行代码进行分行。主要的方法有:1
1、使用 回车 加转义符 \

message = "Lorem ipsum dolor sit amet, consectetur \
adipiscing elit, sed do eiusmod tempor incididunt \
ut labore et dolore magna aliqua."
print(message)

其中反斜杠\表示代码继续执行下去。
2、使用[ ]或()等控制,表示代码没有结束。从左括号开始,到右括号结束。

provinces = ["Alberta", "British Columbia", "Manitoba",
             "New Brunswick", "Newfoundland and Labrador",
             "Northwest Territories", "Nova Scotia",
             "Nunavut", "Ontario", "Prince Edward Island",
             "Quebec", "Saskatchewan", "Yukon"]

在arcpy等模块中函数后面参数换行,一般是使用()。

4.25 用户输入 input

>>> x = input("")

input() 函数总是返回一个字符串。因此,如果要将数字输入用作数字,则必须将值转换为整数。

>>> x = input("输入一个数 : ")
输入一个数 : 2
>>> x
'2'
>>> y = int(x)**2
>>> print("x的平方是: {0}".format(y))
x的平方是: 4

在pycharm等编辑器中可能会有略微差异
另一方面,ArcGIS Pro 中的 Python 窗口未设置为以这种方式接收用户输入。当在 Python 窗口中运行相同的代码时,将收到错误消息。因为对于地理处理脚本,通常用户输入由输入要素类和工具参数等内容组成。

4.26 文件管理

在这主要是使用os模块,其中包含了一些与系统操作、文件管理相关的功能。

一个常用的函数是 os.mkdir() 函数,它创建一个新文件夹,也称为目录。以下示例在当前工作目录中创建一个新文件夹:

import os
os.mkdir("C:/Data/testing")

通常因为在一个路径下,可能存在不同格式的文件,所以使用os.path.join()创建完整的路径。

import os
folder = "C:/Projects/Demo"
subfolder = "test1"
newpath = os.path.join(folder, subfolder)
os.mkdir(newpath)

可以使用常规方法创建:

newpath = folder + "/" + subfolder

打印文件夹中所有文件的名称:

import os
folder = "C:/Projects/Demo"
files = os.listdir(folder)
for f in files:
    print()

一个常见的场景是查找具有特定文件扩展名的文件。使用字符串方法 endswith() 来检查每个文件名的文件扩展名。此方法区分大小写,这意味着您应首先使用 lower() 方法将文件名转换为小写。以下示例打印指定文件夹中文件扩展名为 .gif 或 .GIF 的所有文件的名称:

import os
folder = "C:/Demo"
files = os.listdir(folder)
for f in files:
    if f.lower().endswith(".gif"):
        print(f)

示例还说明了使用 for 循环遍历列表以及使用 if 语句检查条件。请注意,如果文件夹中没有 GIF 文件,则脚本不会打印任何内容。
首先, os.listdir() 返回一个字符串列表,所以变量 files 是一个列表。 for 循环用于遍历列表。列表的每个元素都是一个字符串,因此变量 f 是一个字符串。 lower() 方法返回一个小写字符串,所以 f.lower() 也是一个字符串。最后,endswith() 方法根据字符串是否以特定后缀结尾返回一个布尔值。

os 模块还有很多其他用途;以下章节将介绍其中的一些内容。例如,os.path.exists() 用于确定特定文件夹是否已存在,而 os.walk() 用于浏览特定文件夹的所有文件夹、子文件夹和文件名。它们包括用于搜索文件名模式的 glob 模块(“global”的缩写)和用于文件操作(例如复制、重命名或删除)的 shutil 模块(“shell 实用程序”的缩写)。

4.27 脚本注释

和matlab使用%单行或多行注释不同,python 使用#进行注释,但是python中没有多行注释。但是可以使用’‘’ 三个引号达到多行注释的作用,三个引号,将代码形成字符串,但是字符串并没有被使用,起到了注释的作用。
在这里插入图片描述
在实际的学习中,我们要习惯性加注释,要不然很容易自己在日后也忘记代码的含义,此外,在不同的作用或结构的代码中间加一个空行,也很容易帮助区分,易于理解。

4.28 编码指南

Python 强制执行某些编码标准,不符合这些标准的代码会产生错误。此外,编码指南可以帮助确保您的代码不仅没有错误,而且高效、可移植且易于遵循。这些指南在 Python 代码样式指南(也称为 PEP 8)中正式化。这是一组更大的 Python 增强建议 (PEP) 的一部分。
以下是迄今为止涵盖的主题的几个编码指南。这些指南反映了 PEP 8 以及其他注意事项。当您了解更多有关 Python 并开始编写自己的脚本时,最好熟悉位于 http://www.python.org/dev/peps/pep-0008 的完整样式指南。一些规则如下

变量名:

如果下划线 (_) 可以提高可读性,则可以使用它们,例如 count_final。
使用描述性变量名称,避免使用俚语或缩写。
保持变量名称简短。
变量名以字符开头,避免使用星号 (*) 等特殊字符。
使用全部小写,例如 mycount。

脚本名:

脚本名称应遵循前面的变量命名准则——即全部使用小写字母,并使用下划线来提高可读性。

缩进:

建议使用单个制表符来定义每个缩进级别。
切勿混合使用制表符和空格进行缩进。

注释

脚本应该包含足够的注释。每个逻辑部分都应该有一个解释。
每个脚本都应该有一个标题,其中包含脚本名称、脚本如何工作的描述、其要求、编写者以及编写时间。

本章要记住的要点:

Python 基础包括数据类型和数据结构、变量、关键字、语句和表达式、方法、函数和模块。这些元素构成了用 Python 编写代码的基本语法。 Python 是一种面向对象的编程语言。每个对象都有一个值、一个标识和一个类型。

在大多数情况下,Python 语法是区分大小写的。

Python 中的数据类型包括数字(整数和浮点数)、字符串、列表、元组、字典、集合和布尔值。

变量用于存储值。变量名称应全部小写,并且仅包含字符、数字和下划线 (_)。使用赋值语句给变量赋值。

Python 的每一行通常由表示一个或多个值的表达式或执行某些操作的语句组成。

Python 包含几个内置函数,可以通过函数调用来使用。要使用不是内置函数之一的函数,您首先必须导入它所属的模块,然后使用 . 调用该函数。

可以使用 Python 的字符串对象内置方法来操作字符串,包括查找特定的子字符串、将字符串连接在一起、通过分隔符拆分字符串、从字符串的开头和结尾剥离字符、转换字符串的大小写等等。

列表是一种通用的 Python 数据类型。可以使用从零 (0) 开始的元素的索引号来获取列表中的特定元素,例如 mylist[0]。有几个内置的 Python 函数和方法来操作列表。这些方法包括对列表进行排序、将列表分割成更小的列表、删除元素、追加元素、插入元素等等。

元组和字典是 Python 中重要的数据结构。元组是元素的序列,就像列表一样,但元组的元素不能更改。字典由成对的键及其对应的值组成。字典的工作方式与查找表相同。

Python 脚本中的工作流程可以使用控制和循环结构来控制。这些结构使用缩进来标识代码块。缩进是 Python 语法的一部分,不是可选的。

在 Python 中使用路径需要仔细考虑反斜杠的使用。替代方法是使用正斜杠 (/)、两个反斜杠 (\) 或字符串文字(在字符串前添加字母 r)。

通过将一行代码分成多行,可以提高长代码行的易读性。

可以使用反斜杠来完成行继续,而隐含的行继续依赖于圆括号、方括号和大括号的使用。

强烈建议向脚本添加注释以解释脚本的工作原理。脚本中以# 或## 开头的行被视为注释,并且在脚本运行时不会执行。

Python 代码样式指南包括许多编写 Python 代码的指南。尽管不是必需的,但遵循编码指南可以提高代码的一致性和可读性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值