下面的介绍来自基于arcgis pro的python脚本一书的第四章,介绍的不是特别详细,而且我觉得很多内容也是废话,就做了很多删减。关于python,菜鸟教程等有很多介绍。

目录

4.1 介绍

4.2 查找Python文档与资源

4.3 数据类型与结构

4.4 数字

4.5 变量和命名

4.6 statements 和 expressions

4.7 字符串

4.8 列表lists

4.9 对象objects

4.10 函数functions

4.11 方法methods

4.12 字符串的处理

4.13 打印和字符串格式化

4.14 布尔逻辑值 True False

4.15 列表的使用


4.1 介绍

本章涵盖Python语言的基础知识,包括数据类型和数据结构、变量、关键字、语句和表达式、方法、函数和模块的使用。 这些元素构成了用Python编写代码的基本语法。 本章的第二部分涉及控制工作流,包括条件语句、分支和循环的使用。 这些结构是ArcGIS Pro地理处理脚本的重要元素,是批处理操作的基础。 本章的第三部分专门介绍编写脚本的最佳实践,包括命名约定、代码组织和提供注释。

4.2 查找Python文档与资源

启动IDLE,从上面的菜单中,单击帮助>Python文档。Python手册包括安装在计算机上的Python版本的完整文档。同样的Python文档也可以在网站上找到http://docs.python.org.您将发现各种Python版本的多个文档版本。

文档中内容太多了, 很多东西根本用不到,感觉也看不完。咱们对Python 基础有一个了解就行。

4.3 数据类型与结构

Python使用几种不同的数据类型,包括字符串、数字、布尔值、列表、元组、字典等等。对象的数据类型决定了它可以拥有什么类型的值,以及可以对对象执行什么操作。字符串值由字符组成,字符可以包括字母、数字或其他类型的字符。有两种数字数据类型:整数(整数)和浮点数,或浮点数(小数)。布尔值只能包含True或False值。列表、元组和字典是由数据元素集合组成的更复杂的数据类型。

有些数据类型可以包含多个值,这些值被称为数据结构。数据结构是以某种有意义的方式构造的元素的集合,例如按顺序编号的元素。Python中最基本的数据结构是序列,其中每个元素都分配了一个数字或索引。字符串、列表和元组都是序列的例子。由于序列具有相同的固有数据结构,因此可以对任何类型的序列执行某些操作。字符串、数字和元组是不可变的,这意味着您不能修改它们,只能用新值替换它们。列表和字典是可变的,这意味着可以修改数据元素。

4.4 数字

​这一部分主要是运算符,需要注意/是除,//是除后并取整,取证的规则为正值向下取整,这个可以自己输入一些数字去计算一下,看一下规律。

*表示乘号,**表示幂次。

4.5 变量和命名

Python脚本使用变量来存储信息。 变量基本上是代表或引用一个值的名称。 您也可以将其视为存储值的容器。这里的变量和C语言等的意义感觉没啥区别。建议在运算符周围使用一个空格,例如,x = 17,而不是x=17。空格提高了代码的易读性。python和matlab一样,不用声明变量,可以直接给变量赋值。

可以在同一行分配多个变量,从而使您的脚本保持紧凑:例如 x, y, z = 1, 2, 3。

有时您必须在脚本中使用变量,但您可能事先不知道该值将是什么。在这种情况下,可以创建变量,而无需为其赋值。这样做有两种选择。第一个选项创建一个空字符串:k = ""。(引号之间没有空格)第二种是:p=None,使用type()函数检查数据类型,则该变量的类型为NoneType,但这仅仅意味着该变量没有值。

一些命名规则:

变量名只能由字母、数字和下划线组成。不允许使用空格或其他特殊字符。

变量名不能以数字开头。因此,var3是一个有效的变量名,但3var不是。

Python关键字不能用作变量名。关键字包括if和try等语句。在本章后面,您将看到更多关键字,以及如何在Python中查看所有关键字。

Python函数不应用作变量名。这包括print()和type()等函数。虽然将函数用作变量名不会立即产生错误,但如果在同一脚本中使用该函数,则会干扰函数的正确使用。

变量名区分大小写。因此,var3和var3是两个不同的变量。

还有一些命名的原则建议:

使用描述性名称。提前考虑变量将帮助您编写易于理解的代码。它还可以帮助您记住变量的含义。例如,一个名为“count”的变量比一个名为“c”的变量更有意义。遵循约定。大多数编程语言都有特定的传统,Python有一个官方的Python代码风格指南(PEP 8)。变量名的建议样式是使用简短的、全小写的名称,并根据易读性的需要使用下划线(_)分隔单词。避免使用下划线作为第一个字母,因为这个符号在Python中有特殊意义。完整的风格指南可以在http://www.python.org/dev/peps/pep-0008.

保持简短。虽然长变量名在技术上是可以接受的,但为什么要在光栅数据集中称变量为单元格数?冗长的名字会增加拼写错误的几率,使代码更难阅读。

避免混淆。一般来说,避免在变量名中使用以下字母:小写字母l、大写字母I和大写字母O。前两个字母彼此相似,数字1相似,第三个字母看起来像数字0。

4.6 statements 和 expressions

有了变量之后,就可以使用表达式与语句。表达式是一个值,简单表达式是使用运算符和函数从文本值构建的。更复杂的表达式可以通过组合更简单的表达式来创建。表达式也可以包含变量。另一方面,语句是告诉计算机做某事的指令。这可以包括通过赋值、将值打印到屏幕、导入模块和许多其他操作来更改变量的值。我把表达式与语句就当作代码来理解的。但是两者是有部分区别的。例 2 17是一个表达式,会直接输出结果。x=2*17是一个语句,需要进行print。

4.7 字符串

字符串是最重要的数据类型之一。由引号包围的一组字符称为字符串文字,或简称字符串。当你在第二章写代码打印(“Hello World”)时,你已经看到了一个例子。可以通过为字符串变量指定字符串文字来创建字符串变量。单引号与双引号均可,但必须成对使用。

可以使用+直接连接字符串。可以使用str函数转数字为strings,这和matlab里面的num2str等其他一样的使用。在以年份等表示为文件名时,可能会将数字转str,就使用了str函数。

python使用Unicode字符串,所以可以使用不同的语言。Python中可以使用其他形式的编码,但必须在脚本开头的注释中指定。

#coding=utf-8

另外可以使用转义序列以Unicode写入特定字符。例如,Unicode 0394用于希腊大写字母delta:

4.8 列表lists

列表由一系列项目组成,这些项目被中括号 [ ] 包围”,项目之间用逗号分隔。项目本身可以由数字、字符串或其他几种数据类型组成,包括列表。一个列表中的所有项目通常都是相同的数据类型,但不是必需的。在地理处理脚本中经常使用列表。例如,可能需要创建工作空间中所有要素类的列表,并对列表中的所有要素类执行操作。

建立列表的方法1:直接输入所有的项目,列表内的项目用逗号隔开,逗号后面最好有一个空格。

列表内容也可以是字符串等,并使用print()打印。列表是有序的,在打印时,也遵守列表顺序。

4.9 对象objects

Python是一种面向对象编程语言,Python中的一切都是对象。每个对象都有以下内容:(1)一个值;(2)标识,它是唯一的标识符;(3)类型,即对象可以保存的值。

上图语句创建了对象(name)和对象的值(Paul)。该对象还有一个唯一的标识符,该标识符因所使用的特定计算机而异。可以使用id()函数获取此唯一标识符。

唯一标识符由计算机提供,用于跟踪对象(及其值和属性)。对象的类型,可以使用type()函数确定。

python中的变量是动态的,变量的对象类型由分配给它的值的性质决定,在C等中,必须首先声明变量(并给定一个类型)再赋值,变量类型一开始就固定了。

可以cast(强制转换、硬转换)对象的类型,以下图为例。

有时候一些错误就发生在cast的时候,比如从包含 “2020年5月” 字符格式提取年份闭并转换为int格式,2020可以转为int,但是 年 这个汉字是没有办法转为INT格式的。

4.10 函数functions

python函数的结构与matlab、R语言感觉大同小异,也是函数名加参数组成。

Python 2 使用 print 语句和 print() 函数,但在 Python 3 中您只能使用 print() 函数。 由于 ArcGIS Pro 仅适用于 Python 3,因此您必须使用 print() 函数。

Python包含了大量内置函数,print()、str()、type()、pow()等。可以 使用语句:dir(__builtins__) 查看内置函数。

dir() 函数返回指定对象的所有属性和方法。 在这个例子中,builtins 是一个包含所有内置函数的模块,dir(__builtins__) 返回这些函数的列表。 如果首先使用 import builtins 导入模块,还可以使用 dir(builtins)。一旦确定了要使用的函数,可能需要查看函数的描述和语法。 此描述存储在文档字符串或文档字符串中。 您可以使用 __doc__ 属性查看文档字符串。 例如:print(pow.__doc__)。在此示例中,交互式 Python 解释器不需要 print() 函数,但它提供了更好的输出格式。这里和help函数功能类似,help(pow)。

4.11 方法methods

方法就像函数。 方法是与对象(例如,数字、字符串或列表)耦合的函数。 使用方法如下:

<object>.<method>(<arguments>)

这种方法称为点表示法,点表示法在面向对象编程中广泛使用。 它表示点之后的内容属于点之前的内容。在这种情况下,方法属于对象。

方法不限于字符串——许多 Python 的内置数据类型都有关联的方法,并且在处理 Python 脚本中的对象时被广泛使用。 会在后面学习到,这个很容易理解。

4.12 字符串的处理

lower方法返回字符串的小写;upper方法返回大写的字符串;title返回首字母大小的字符串(标题格式);

字符串(和其他Python序列,如列表)有一个索引定位系统,它使用括号括起来的一系列值。 字符串中的每个字符都分配有一个索引号。Python是一种从零开始的语言,这意味着序列中的第一个字符从索引零[0]开始。 空格的计数与任何其他字符一样。您可以使用负索引号从末尾开始计数。 列表中的最后一项是索引 -1。 这使得在不知道确切计数的情况下获得最后一项成为可能。

同样可以使用索引来取字符串的子集,例如:

>>> mystring = "Geographic Information Systems"

>>> mystring[11:22]

'Information'

>>> mystring[11:]

'Information Systems'

在上面的例子中,索引11表示从第十二个字符开始提取第一个字符,索引22表示第23个字符为第一个不提取的字符。这和matlab等用法相同,很容易理解。

find()方法标识一个子字符串,并在找到该字符串时返回最左边的索引号。找不到这个字符串,返回-1。

>>> mystring = "Geographic Information Systems"
>>> mystring.find("Info")
11
>>> mystring.find("info")
-1

in关键字类似于find()方法,但返回布尔值True或False,用于查询子串在不在字符串中。方法join()用于连接列表中的元素。

>>> list_gis = ["Geographic", "Information", "Systems"]

>>> string_gis = " "

>>> string_gis.join(list_gis)

'Geographic Information Systems'

strip方法允许使用任何字符进行分割字符串。

>>> pythonstring = "Geoprocessing using Python scripts"

>>> pythonlist = pythonstring.split(" ")

>>> pythonlist ['Geoprocessing', 'using', 'Python', 'scripts']

strip是另一种方法,从字符串中删除字符,但是strip() 方法不是特定的:它从字符串的开头或结尾删除任何字符,无论字符在参数中列出的顺序如何,也不管是否所有字符都包含在任一端 的字符串。

>>> mytext = "Commenting scripts is good"

>>> mytext.strip("Cdo")

'mmenting scripts is g'

lstrip() 和 rstrip() 方法删除字符串的左侧或右侧,提供了更多的控制。

>>> mytext = "Commenting scripts is good"

>>> mytext.rstrip("Cdo")

'Commenting scripts is g'

在没有任何参数的情况下调用其中一个 strip 方法会删除前导或尾随空格,在编码中也称为空格。 此方法对于清理可能已在另一个程序中格式化的字符串很有用。 考虑以下示例:

>>> white = " this is my text "

>>> white.strip()

'this is my text'

replace()用另一个子字符串替换特定子字符串的所有匹配项。

>>> mygis = "Geographic Information Systems"

>>> mygis.replace("Systems", "Science")

'Geographic Information Science'

replace() 方法还可用于通过用空字符串 (" ") 替换子字符串来从文件名中删除文件扩展名。 这种方法比 strip() 方法更具体,因为它会在任何出现的地方删除特定的子字符串,然后替换它。

>>> myfile = "streams.shp"

>>> myfile.replace(".shp", "")

'streams'

第6章介绍了为典型的GIS数据集删除文件扩展名的其他更可靠的方法。

4.13 打印和字符串格式化

字符串格式化有很多方式,一方面可以使用print()格式化:

>>> temp = 100

>>> print("The temperature is " + str(temp) + " degrees")

The temperature is 100 degrees

最经常使用的是format方法:

>>> temp = 100

>>> print("The temperature is {0} degrees".format(temp))

The temperature is 100 degrees

在本例中,{0}是一个替换字段,由大括号{}包围的索引号组成。大括号中未包含的任何内容都被视为文字。替换字段中的值被format()方法的参数替换,在本例中,是变量temp的值。但索引不一定要写,还可以给多个字符进行替换。

>>> username = "Paul"

>>> password = "surf$&9*"

>>> print("{}'s password is {}".format(username, password))

Paul's password is surf$&9*

另外一种方式是使用%进行格式化,这和C语言一样了。%s 字符串、%i表示整数,%d表示小数。>>> username = "Paul"

>>> password = "surf$&9*"

>>> print("%s's password is %s" %(username, password))

Paul's password is surf$&9*

还有一种更新的方法来格式化字符串,称为f-strings。F字符串也称为“格式化字符串文字”。 它们是以字母f为前缀的字符串字面量,包含大括号中的表达式。 这些表达式在运行时被它们的值替换。>>> temp = 100

>>> print(f"The temperature is {temp} degrees")

The temperature is 100 degrees

推荐首选使用format() 方法或f字符串

4.14 布尔逻辑值 True False

和C语言等大同小异,只是注意True和False区分大小写,也可以使用or或and进行逻辑运算。同样注意or和and都是小写。

>>> a = True
>>> b = False
>>> a or b
True

可以使用bool()函数检查值的真实性,该函数确定对象是真还是假。考虑以下示例:

>>> text = "Something"
>>> bool(text) True
>>> notext = ""
>>> bool(notext)False

同时要注意,除0以外的数值的bool值为True,0为False

>>> zero = 0

>>> bool(zero)

False

使用is关键字的表达式返回布尔值时,结果取决于两个变量是否引用同一个对象,而不是它们是否具有相同的值。==用来判断是否有相同的值。

>>> var1 = [1, 2, 3]

>>> var2 = var1

>>> var1 is var2 True

>>> var1 = [1, 2, 3]

>>> var2 = [1, 2, 3]

>>> var1 is var2

False

>>> var1 == var2

True

Python 中的 None 关键字用于定义空值或根本没有值。 None 是它自己的数据类型,即 NoneType,其布尔值为False。

>>> x = None

>>> type(x) <class 'NoneType'>

>>> bool(x)

False

None 数据类型有时用于检查用户输入是否具有有效值。 但它与数字零或空字符串不同。

>>> empty = ""

>>> empty == None

False

布尔逻辑(包括本节中的关键字)广泛用于脚本中,用于评估条件并根据这些条件确定适当的操作过程。

4.15 列表的使用

实际应用中感觉列表是经常使用,在matlab中也要读取文件列表,不过matlab是以char等格式存储。后面的部分接4 python基础(2)

4 python基础相关推荐

  1. f是一个python内部变量类型,Python基础变量类型——List浅析

    Python使用list 一.list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示 ...

  2. python 等号报错_Python学习----Python基础

    Python基础 一.数据类型和变量 1.在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量. 例如: a =520# a是整数prin ...

  3. python基础——继承与派生、组合

    python基础--继承与派生 1 什么是继承: 继承是一种创建新的类的方式,在python中,新建的类可以继承自一个或者多个父类,原始类成为基类或超累,新建的类成为派生类或子类 1.1 继承分为:单 ...

  4. Python学习笔记1 Python基础

    第1章 Python基础 1.1 Python概述及版本介绍 1.Python是一种面向对象的解释型计算机程序设计语言(解释型语言源代码->解释器逐行解释每一句源代码) 2.优点:高级语言.可移 ...

  5. python基础---元组、字典、函数、文件、异常

    文章目录 python基础---元组.字典.函数.文件.异常 Tuple(元组) 常用操作 dict(字典) 函数 文件 异常 python基础-元组.字典.函数.文件.异常 Tuple(元组) tu ...

  6. 快速掌握Python的捷径-Python基础前传(1)

    文: jacky(朱元禄) 开文序 最近看新闻,发现高考都考Python了,随着人工智能的火热,学数据科学的人越来越多了!但对于数据行业本身来说,现象级的火热,这并不是什么好事.  方丈高楼平地起,无 ...

  7. Python培训教程之Python基础知识点梳理

    Python语言是入门IT行业比较快速且简单的一门编程语言,学习Python语言不仅有着非常大的发展空间,还可以有一个非常好的工作,下面小编就来给大家分享一篇Python培训教程之Python基础知识 ...

  8. python基础04

    python基础04 python2在编译安装时,可以通过参数 -----enable----unicode=ucs2 或 -----enable--unicode=ucs4 分别用于指定使用2个字节 ...

  9. 刻意练习:Python基础 -- Task12. 模块

    背景 我们准备利用17天时间,将 "Python基础的刻意练习" 分为如下任务: Task01:变量.运算符与数据类型(1day) Task02:条件与循环(1day) Task0 ...

  10. 刻意练习:Python基础 -- Task11. 魔法方法

    背景 我们准备利用17天时间,将 "Python基础的刻意练习" 分为如下任务: Task01:变量.运算符与数据类型(1day) Task02:条件与循环(1day) Task0 ...

最新文章

  1. 表框mysql_mysql 表的操作
  2. 231 Power of Two 2的幂
  3. Java中如何读写cookie (二)
  4. 前天看了sigmastar新品发布,双核,1.2GHZ,真香!更多你想要了解的SSD201/202技术问题,看过来!启明云端MM帮你整理了!拿走不谢
  5. c语言程序链接过程,C语言简明教程(二):C程序编译链接过程和实例对照详解...
  6. 突破技术界限,FVS大屏编辑模式,真正让大屏做到所见即所得
  7. 给年终总结报告加分的技巧:手机上就能看的可视化长什么样?
  8. python 自动化测试数据并发送到http-nodejs server
  9. 深圳dotnet俱乐部2006年1月7日WebPart交流活动
  10. cad隐藏图层命令快捷键_cad与天正局部隐藏对象大法
  11. batch script learn
  12. php smarty 模板注释,smarty中的注释
  13. 计算机3d相册代码,CSS3实现3D旋转相册(示例代码)
  14. Lenovo ServerGuide 10.4
  15. 浓淡相宜间,是灵魂的默契;
  16. 嵌入式系统开发的架构和应用
  17. 从传统企业到字节、美团、京东,再到拿下华为Offer,程序员的逆袭之路。
  18. 学了C/C++,我能做什么?
  19. 【计算机网络中 冲突域、广播域】
  20. VS2019+resharper2019.1免激活安装使用教程

热门文章

  1. 2021年P气瓶充装考试报名及P气瓶充装证考试
  2. js中 ?? , || , , ?. 概念
  3. 旅游景点如何做推广?
  4. 雷池3.0 漏洞扫描
  5. HDU1248完全背包
  6. 什么牌子的蓝牙耳机音质好又便宜?国产音质好的蓝牙耳机推荐
  7. 抖音高贵气质的签名_星光红毯众星被冻成红鼻头,杨幂冷到拒绝签名,肖战表情严肃...
  8. 自媒体新手怎么做自媒体,新手做好自媒体的方法
  9. php显示当前数据库名称
  10. 2020第十一届蓝桥杯国赛个人题解+源代码