GEE学习笔记 六十九:【GEE之Python版教程三】Python基础编程一
环境配置完成后,那么可以开始正式讲解编程知识。之前我在文章中也讲过,GEE的python版接口它是依赖python语言的。目前很多小伙伴是刚开始学习GEE编程,之前或者没有编程基础,或者是没有学习过python。为了照顾这批小伙伴,我在这里还是从头开始讲解,先将python编程基础讲解完成在开始讲解GEE的python编程。
1、python语言的介绍以及应用范围
python是一种解释性、编译性、互动性和面向对象的脚本语言,非常简单易学,目前应用非常广泛。主要领域包括:
-
网络爬虫
-
数据分析
-
科学计算
-
人工智能开发
-
自动化运维
-
网络编程
-
金融分析
-
游戏开发
-
WEB开发等等
2、编码基本规则
(1)python编写的代码文件后缀是 .py 文件,保存编码强烈推荐时utf-8格式,同时在编写文件中要明确指出使用utf-8编码。也在文件头加入
# -*- coding:utf-8 -*-
(2)python中的注释
-
单行注释
单行注释使用 # 作为注释开头
-
多行注释(块注释)
多行注释方式是采用三个引号方式也就是 """注释内容""" 这种形式,可换行
需要注意的是代码中的注释是为了解释代码的含义,不是越多越好,明确简单的注释是最好的。下面以一个例子来说明一下这个内容。
-
#!/user/bin/env python
-
# -*- coding:utf-8 -*-
-
"""
-
这是多行注释
-
DESC:本程序输出python 的版本信息
-
Author:LSW
-
Date:2019-06-27
-
"""
-
# 这是单行注释
-
#导入python自带的系统模块
-
import sys
-
#使用print输出
-
print(sys.version)
输出的结果如下图,就是python版本等信息。

(3)采用统一的4个空格缩进或者统一使用Tab建缩进,最好混用两者。具体原因是python并没有像JavaScript那样通过"{}"这种来表示代码块,而是直接通过缩进来判断具体代码块。所以如果混用tab或者空格,非常容易造成缩进不正确代码不能执行的问题。

解释:
在这个例子中,两个print缩进不一致。编辑器直接红色波浪线已经提示错误。我们直接运行可以看到运行结果报错,并且系统提示11行和12行缩进不一致。这个问题在编写大型代码过程中非常常见,也是很多初学者必会遇到的问题。我之前接触过很多人,他们在编写JavaScript代码时候完全不会注意各种缩进对齐等方面的格式,代码几乎是一团糟。那么这些人在学习python过程中就需要格外注意。规范的代码格式不仅仅是视觉上的美,也是为以后自己重新梳理代码时候不至于一头雾水。
(4)代码规范问题,可以参考Google提供的一份参考文档:
Python风格规范 — Google 开源项目风格指南
(5)彩蛋性质的内容,学习python一定要知道一个东西“Python之禅”,python的官方为开发者写了一首关于python编码规则的诗?。在交互式环境里面只要使用“import this”,然后回车就可以啦。

翻译以及相关解释:
•优美胜于丑陋(Python 以编写优美的代码为目标)
•明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
•简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
•复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
•扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
•间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)
•可读性很重要(优美的代码是可读的)
•即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)
•不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)
•当存在多种可能,不要尝试去猜测
•而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)
•虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )
•做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)
•如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)
•命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)
3、语法规则
(1)变量类型
在python中主要的数据类型如下,每一种类型详细解释以及用法会在后续依次介绍

(2)变量定义
python语法定义变量方式是:变量 = 变量值,这个和熟悉JavaScript语言的同学想象的可能不太一样,这里在变量命名之前并没有想过关键字,同时末尾也不需要";"。
比如我要定义一个年龄age为10,那么写法就是:
age = 10
同时还可以定义多个变量
-
age, place = 10, "Beijin"
-
print(age)
-
print(place)
这里做个有意思的小程序,比如要交换两个数据的值,用python写非常简单
-
a = 10
-
b = 20
-
a, b = b, a
-
print("a is {0}".format(a))
-
print("b is {0}".format(b))
变量命名是有一定规则的,这个不仅仅在python中,其他语言中也有类似规定:
-
变量命名只能是数字、字母或者下划线组成
-
变量名称不能以数字开头
-
变量名称不能用python保留的系统关键字,比如print等
(3)输出显示 print
在python中我们要输出我们计算的结果或者输出调试,我们都使用print方法。最简单的方法上面例子已经展示过了。这里需要注意一下我们在最后输出使用了format()格式化函数,关于这个函数更多的用法可以参考API或者网上搜索一下相关内容,它包含的内容非常之多这里就不再一一赘述。
除了使用format输出,还有一种输出方式使用 % 格式化输出,但是目前不太推荐使用这种方式。
-
age = 10
-
print("age is %d" % age)
(4)引入外部包 import
编写python代码最常用的功能就是利用第三方库来做各种开发,比如Numpy。要想使用这些库方法非常简单,只要使用import就可以了。比如:
import numpy
(5)函数定义 def
在python中我们可以将公共的逻辑代码封装成为相关函数方法,定义方法非常简单直接使用def就可以,关于函数详细内容后续会讲解。
-
def addTwoNum(a, b):
-
return a+b
-
result = addTwoNum(10, 20)
-
print("result is {0}".format(result))
来源请引用:地理遥感生态网科学数据注册与出版系统
相关文章:
GEE学习笔记 六十九:【GEE之Python版教程三】Python基础编程一
环境配置完成后,那么可以开始正式讲解编程知识。之前我在文章中也讲过,GEE的python版接口它是依赖python语言的。目前很多小伙伴是刚开始学习GEE编程,之前或者没有编程基础,或者是没有学习过python。为了照顾这批小伙伴࿰…...
大数据全系安装
内容版本号CentOS7.6.1810ZooKeeper3.4.6Hadoop2.9.1HBase1.2.0MySQL5.6.51HIVE2.3.7Sqoop1.4.6flume1.9.0kafka2.8.1scala2.12davinci3.0.1spark2.4.8flink1.13.5 1. 下载CentOS 7镜像 CentOS官网 2. 安装CentOS 7系统——采用虚拟机方式 2.1 新建虚拟机 2.2.1 [依次选择]-&…...
stable-diffusion-webui 安装使用
文章目录1.github 下载,按教程运行2.安装python 忘记勾选加入环境变量,自行加入(重启生效)3.环境变量添加后,清理tmp ,venv重新运行4.运行报错,无法升级pip,无法下载包,5…...
3D点云处理:点云聚类--FEC: Fast Euclidean Clustering for Point Cloud Segmentation
文章目录 聚类结果一、论文内容1.1 Ground Surface Removal1.2 Fast Euclidean Clustering题外:欧几里得聚类Fast Euclidean Clustering二、参考聚类结果 原始代码中采用的是pcl中的搜索方式,替换为另外第三方库,速度得到进一步提升。 一、论文内容 论文中给出的结论:该…...
华为OD机试题 - 射击比赛(JavaScript)| 代码+思路+重要知识点
最近更新的博客 华为OD机试题 - 括号检查(JavaScript) 华为OD机试题 - 最小施肥机能效(JavaScript) 华为OD机试题 - 子序列长度(JavaScript) 华为OD机试题 - 众数和中位数(JavaScript) 华为OD机试题 - 服务依赖(JavaScript) 华为OD机试题 - 字符串加密(JavaScript)…...
流程引擎之Flowable简介
背景Flowable 是一个流行的轻量级的采用 Java 开发的业务流程引擎,通过 Flowable 流程引擎,我们可以部署遵循 BPMN2.0 协议的流程定义(一般为XML文件)文件,并能创建流程实例,查询和访问流程相关的实例与数据…...
AcWing:4861. 构造数列、4862. 浇花(C++)
目录 4861. 构造数列 问题描述: 实现代码: 4862. 浇花 问题描述: 实现代码: 4861. 构造数列 问题描述: 我们规定如果一个正整数满足除最高位外其它所有数位均为 00,则称该正整数为圆数。 例如&…...
进程的概念
进程的概念 程序的概念 这里说的是一个可执行文件,passive的意思可以理解为我们这个执行文件需要我们进行双击才会被被执行。 双击后,程序入口地址读入寄存器,程序加载入主存,成为一个进程 进程是主动去获取想要的资源࿰…...
自动化测试5年经验,分享一些心得
自动化测试介绍 自动化测试(Automated Testing),是指把以人为驱动的测试行为转化为机器执行的过程。实际上自动化测试往往通过一些测试工具或框架,编写自动化测试用例,来模拟手工测试过程。比如说,在项目迭代过程中,持…...
independentsoft.de/MSG .NET Framework Crack
MSG .NET 是用于 .NET Framework / .NET Core 的 Microsoft Outlook .msg 文件 API。API 允许您轻松创建/读取/解析/转换 .msg 文件等。API 不需要在机器上安装 Microsoft Outlook 或任何其他第三方应用程序或库即可工作。 以下示例向您展示了如何打开现有文件并显示消息的某些…...
基于Transformer的NLP处理管线
HuggingFace transformers 是一个整合了跨语言、视觉、音频和多模式模态与最先进的预训练模型并且提供用户友好的 API 的AI开发库。 它由 170 多个预训练模型组成,支持 PyTorch、TensorFlow 和 JAX 等框架,能够在代码之间进行互操作。 这个库还易于部署&…...
二叉树OJ(一)二叉树的最大深度 二叉搜索树与双向链表 对称的二叉树
二叉树的最大深度 二叉树中和为某一值的路径(一) 二叉搜索树与双向链表 对称的二叉树 二叉树的最大深度 描述 求给定二叉树的最大深度, 深度是指树的根节点到任一叶子节点路径上节点的数量。 最大深度是所有叶子节点的深度的最大值。 (注:…...
使用Fairseq进行Bart预训练
文章目录前言环境流程介绍数据部分分词部分预处理部分训练部分遇到的问题问题1可能遇到的问题问题1问题2前言 本文是使用 fairseq 做 Bart 预训练任务的踩坑记录huggingface没有提供 Bart 预训练的代码 facebookresearch/fairseq: Facebook AI Research Sequence-to-Sequence…...
n阶数字回转方阵 ← 模拟法
【问题描述】 请编程输出如下数字回旋方阵。 【算法代码】 #include <bits/stdc.h> using namespace std;const int maxn100; int z[maxn][maxn];void matrix(int n) {int num2;z[0][0]1;int i0,j1;while(i<n && j<n) {while(i<j) z[i][j]num;while(j&…...
【人工智能AI】二、NoSQL 基础知识《NoSQL 企业级基础入门与进阶实战》
写一篇介绍 NoSQL 基础知识的技术文章,分5个章节,每个章节细分到3级目录,重点介绍一下NoSQL 数据模型,NoSQL 数据库架构,NoSQL 数据库特性等,不少于2000字。 NoSQL 基础知识 NoSQL(Not Only SQ…...
Camera Rolling Shutter和Global Shutter的区别
卷帘快门(Rolling Shutter)与全局快门(Global Shutter)的区别 什么是快门 快门是照相机用来控制感光片有效曝光时间的机构。 快门是照相机的一个重要组成部分,它的结构、形式及功能是衡量照相机档次的一个重要因素。 …...
模版之AnyType
title: 模版之AnyType date: 2023-02-19 21:49:53 permalink: /pages/54a0bf/ categories: 通用领域编程语言C tags:C元编程 author: name: zhengzhibing link: https://azmddy.top/pages/54a0bf/ 模版之AnyType 在研究C的编译期反射时,发现了AnyType很有意思。 首…...
【汇编】一、环境搭建(一只 Assember 的成长史)
嗨~你好呀! 我是一名初二学生,热爱计算机,码龄两年。最近开始学习汇编,希望通过 Blog 的形式记录下自己的学习过程,也和更多人分享。 这篇文章主要讲述汇编环境的搭建过程。 话不多说~我们开始吧! 系统环…...
【博客628】k8s pod访问集群外域名原理以及主机开启了systemd-resolved的不同情况
k8s pod访问集群外域名原理以及使用了systemd-resolved的不同情况 1、不同情况下的linux主机访问外部域名原理 没有使用systemd-resolved的linux主机上访问外部域名一般是按照以下步骤来的: 从dns缓存里查找域名与ip的映射关系 从/etc/hosts里查找域名与ip的映射…...
测试3.测试方法的分类
3.测试分类 系统测试包括回归测试和冒烟测试 回归测试:修改了旧的代码后,重新测试功能是否正确,有没有引入新的错误或导致其它代码产生错误 冒烟测试:目的是确认软件基本功能正常,可以进行后续的正式测试工作 按是否…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
