GEE学习笔记 七十:【GEE之Python版教程四】Python基础编程二
通过上一章的讲解,我们对于python有了初步的了解,这一章就详细讲解一下python的各个变量以及运算规则等内容。
关于测试代码推荐初学者将每一段代码都自己敲入编辑器中在本地运行。
1、数值
这是任何编程中都会有的基本变量,在python支持的数据类型主要包括:
-
整型(int):比如 10
-
浮点型(float):比如 10.12
-
复数(complex):是由x+yj表示的有序对的实数浮点数组成,其中x和y是实数,j是虚数单位,比如 10+5j
除此之外,在程序运行中我们还可以用0表示布尔值False,使用非零值表示布尔值True。
-
# 数值类型
-
# 整型
-
age = 10
-
print("age is {0}".format(age))
-
# 浮点型
-
price = 12.35
-
print("price is {0}".format(price))
-
# 复数
-
result = 1 + 2j
-
print("result is {0}".format(result))

对于数值类型,可以进行很多运算,比如最简单的四则运算
| 含义 | 符号 | 例子 |
| 加 | + | 3+7=10 |
| 减 | - | 7-3=4 |
| 乘 | * | 7*3=21 |
| 除 | / | 7/3=2.3333333333333335 |
| 取整 | // | 7//3=2 |
| 取余 | % | 7%3=1 |
| 幂 | ** | 7**3=343 |
相关代码:
-
# 四则运算
-
print(7+3)
-
print(7-3)
-
print(7*3)
-
print(7/3)
-
print(7//3)
-
print(7%3)
-
print(7**3)

(2)字符串
字符串就是一串文本,可以使用双引号("")或者单引号('')包围,如果是多行的可以使用三引号("""xxx"""或者'''xxx''')。常用的方法参考下面例子:
-
# 字符串
-
text1 = "hello"
-
text2 = "world"
-
# + 简单拼接
-
text3 = text1+" "+text2
-
print(text3)
-
# format 拼接
-
text4 = "{0} {1}".format(text1, text2)
-
print(text4)
-
text5 = "hello world"
-
# 长度
-
print(len(text5))
-
# 字符串切割转数组
-
print(text5.split(" "))
-
# 切片 [开始索引:结束索引:步长],左闭右开,比如下面就是1-3也就是 ell
-
print(text5[1:4])
-
# 索引
-
print(text5[1])
-
# 大小写
-
text6 = "Hello Wolrd"
-
print(text5.upper())
-
print(text5.lower())

上面只是展示了一部分最简单的常用方法,字符串的方法还是非常多,需要自己下去一个一个尝试。这里面最重要的莫过于切片方法,这个我会在下面列表中在详细说一下。
(3)布尔值
布尔值非常简单,就是True或者False。需要注意的是这里的True或者False第一个字母是大写,同时还需要注意的是在python中空、数值0或者空列表等都是False。
-
# 布尔值
-
flag1 = True
-
flag2 = False
-
flag3 = None
-
if flag3:
-
print("flag3 is not None")
-
else:
-
print("flag3 is None")

(4)列表
列表List是我们最为常用的例子,它是通过"[]"定义,数据之间用","隔开,然后索引是从0开始。比如:
a = ["a", "b", "c"]
这是一个字符串列表,第0位是"a",依次类推,提取列表数据可以直接使用 a[0] 取第一位的数据。操作列表最常用的是之前提到的一个切片,切片可以理解为就是对列表做提取工作。它的基本规则是:
[ 开始索引 : 结束索引 : 步长 ],左闭右开
开始索引就是列表起始索引,比如0、1等,可以是负数,复数代表从末尾开始算起,比如-1就是列表最后一个数。这个可以通过下面方法验证一下。
-
a = ["a", "b", "c"]
-
print(a[-1])
具体例子:
-
# 列表
-
a = ["a", "b", "c"]
-
print(a[-1])
-
# 列表长度
-
print(len(a))
-
# 切片
-
print(a[1:])
-
# 循环列表
-
for _a in a:
-
print(_a)
-
-
# 添加新的数据
-
a.append("d")
-
print(a)
-
# 删除指定数据
-
del a[0]
-
print(a)
-
# 删除最后一个元素并且返回删除的值
-
print(a.pop())
-
print(a)

(5)元组
元组(tuple)类似列表,但是和列表不同的它是不可变的,也就是说我们生成一个元组后只会对其进行查询等操作,不能修改其值。元组生成方式:
-
使用小括号 "()" 来写元组,比如 (1, 2, "a")
-
空的元组就是 ()
-
如果只有一个元素 ("a",),不要丢掉后面的","。
具体例子
-
# 元组
-
aTuple = ("a", "b", "c")
-
print(type(aTuple))
-
# 获取第一个元素
-
print(aTuple[0])
-
# 循环
-
for _a in aTuple:
-
print(_a)

(6)集合
集合是一个无序不重复的列表,这里需要注意就是集合中的每一个元素都是不重复的,所以我们通常使用它来去重,创建时候我们通常使用set()来创建。
具体操作例子:
-
# 集合 set
-
age = [12, 13, 12, 11, 14]
-
print(age)
-
# 生成集合去掉重复的12
-
ageSet = set(age)
-
print(ageSet)
-
ageSet2 = set([10, 11, 12, 15])
-
# 在 ageSet 却不在 ageSet2中数据
-
print(ageSet - ageSet2)
-
# 两者并集
-
print(ageSet | ageSet2)
-
# 两者交集
-
print(ageSet & ageSet2)
-
# 不同时在ageSet和ageSet2中的数据
-
print(ageSet ^ ageSet2)

(7)字典
字典这个非常简单,就是 { key : value } 这种格式。具体的直接看相关代码:
-
# 字典
-
people = {
-
"age": 10,
-
"name": "Elly",
-
"desc": "a boy ???",
-
"code": [1, 2, 30.5, 22.1]
-
}
-
# 获取所有键值
-
print(people.keys())
-
# 获取所有的值
-
print(people.values())
-
# 获取指定的值
-
print(people.get("age"))
-
# 循环
-
for key, value in people.items():
-
print("{key} -- {value}".format(key=key, value=value))

这里需要注意的就是这个循环,这里使用了items方法来获取每次循环对应的对象的key和value。
(8)日期
在python中日期可以使用 datetime 来做。举个例子:
-
# 日期处理
-
import datetime
-
# 当前日期
-
now = datetime.datetime.now()
-
print(now)
-
# 格式化日期
-
print(now.strftime("%Y-%m-%d %H:%M:%S"))
-
print(datetime.datetime.strptime("2018-12-31 00:00:00", "%Y-%m-%d %H:%M:%S")) 来源请引用:地理遥感生态网科学数据注册与出版系统
相关文章:
GEE学习笔记 七十:【GEE之Python版教程四】Python基础编程二
通过上一章的讲解,我们对于python有了初步的了解,这一章就详细讲解一下python的各个变量以及运算规则等内容。 关于测试代码推荐初学者将每一段代码都自己敲入编辑器中在本地运行。 1、数值 这是任何编程中都会有的基本变量,在python支持的…...
股票投资新出发之知识体系构建导论
文章目录前言参考资料如何构建体系实践理论tips前言 自2021年股票开户,投资已有2年左右,但更多的是凭感觉式的拍脑袋投资,没有自己的投资体系,所以开此专栏从零开始构建知识体系,勉励自己不断学习。两年的投资经验让我…...
蓝桥杯算法训练合集 十六 1.首字母变大写2.盾神计科导作业3.Cinema4.接水问题
目录 1.首字母变大写 2.盾神计科导作业 3.Cinema 4.接水问题 1.首字母变大写 问题描述 对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。在字符串中,单词之间通过空白符分隔,空白符包括…...
密码的世界
网络世界中常见的攻击方法 窃听攻击 窃听攻击是网络世界最常见的一种攻击方式,一些不能泄露的隐私信息,例如银行卡密码,账号密码,如果被窃听泄露的话通常会带来比较严重的后果。 中间人攻击 在中间人攻击中,小明准…...
如何用一句话感动测试工程师?产品和技术都这么说!
测试工程师在公司里的地位一言难尽,产品挥斥苍穹,指引产品前路;开发编写代码实现功能,给产品带来瞩目成就。两者,一个是领航员,一个是开拓者,都是聚光灯照耀的对象,唯独团队中的保障…...
MySQL中使用索引优化
目录 一.使用索引优化 数据准备 避免索引失效应用-全值匹配 避免索引失效应用-最左前缀法则 避免索引失效应用-其他匹配原则 1、 2、 3、 4、 5、 一.使用索引优化 索引是数据库优化最常用也是最重要的手段之一,通过索引通常可以帮助用户解决大多数的MySQL的性能优化…...
Linux C/C++ 多线程TCP/UDP服务器 (监控系统状态)
Linux环境中实现并发TCP/IP服务器。多线程在解决方案中提供了并发性。由于并发性,它允许多个客户端同时连接到服务器并与服务器交互。 Linux多线程编程概述 许多应用程序同时处理多项杂务。服务器应用程序处理并发客户端;交互式应用程序通常在处理后台…...
【JavaScript】JavaScript基本使用方法
如何回复程序员发来的短信:Hello world —hello nerd. 前言: 大家好,我是程序猿爱打拳。今天我给大家讲解的是初识JavaScript中基本组成成分、引入方法、输入输出语句,并用源码与效果图的方式展示给大家。 目录 1.JavaScript组成…...
Python数据容器、list列表、tuple元组、str字符串、数据容器(序列)切片、set集合、dict字典、字符串大小比较
数据来源 01 数据容器 为什么学习数据容器 数据容器 总结 02 列表 1)列表定义 为什么需要列表 列表的定义语法 列表的定义方式 演示 """ 演示数据容器之:list列表 语法:[元素,元素,......] """ # 定义一个列表list my_list …...
Python urllib
Python urllib Python urllib 库用于操作网页 URL,并对网页的内容进行抓取处理。 本文主要介绍 Python3 的 urllib。 urllib 包 包含以下几个模块: urllib.request - 打开和读取 URL。urllib.error - 包含 urllib.request 抛出的异常。urllib.parse …...
Centos7安装Python3
前言系统版本:Centos7.6python版本: python 3.10.4下载python下载链接:直通车找到对应版本的python安装包,这里以python 3.10.4为例点击3.10.4版本的链接,拉到最下面找到Files中对应的linux安装包鼠标右键复制下载链接登录linux系…...
[U3D ShaderGraph] 全面学习ShaderGraph节点 | 第四课 | Input/Lighting
📣📣📣本专栏所有内容在完结之前全部为试读模式,专栏完结之后会取消试读模式,如果感觉内容还不错的话请支持一下📣📣📣 ShaderGraph是可视化的着色器编辑工具。您可以使用此工具以可视方式创建着色器。 本专栏可以让你更了解ShaderGraph中每个节点的功能,更自如的…...
SpringBoot升级到3.0
SpringBoot 3.0出来有一段时间了,一直没时间来整理,这次来看一下吧。 Spring Boot 可以轻松创建独立的、生产级的基于 Spring 的应用程序,您可以“直接运行”。 SpringBoot升级到3.01. SpringBoot的维护时间线2. pom添加3. 打包大小对比4. 升…...
JavaWeb8-线程安全问题
目录 1.概念 1.1.单线程 1.2.多线程 2.导致线程不安全的5个因素 ①抢占式执行(首要原因) ②多个线程同时修改了同一个变量 ③非原子性操作 ④内存可见性 ⑤指令重排序 线程优点:加速程序性能。线程缺点:存在安全问题。 1…...
进程切换-
实验课之前有一些问题 中断机制 第一个问题: interrupt的两个状态源头: 外中断多由随机中断(异步中断)造成,如鼠标点击,键盘输入; 内终端多由故障终端:程序运行异常,硬件…...
python--matplotlib(2)
前言 Matplotlib画图工具的官网地址是 http://matplotlib.org/ Python环境下实现Matlab制图功能的第三方库,需要numpy库的支持,支持用户方便设计出二维、三维数据的图形显示,制作的图形达到出版级的标准。 实验环境 Pycharm2020.2.5社区版,w…...
【李忍考研传】五、信心
这天,何隐一来到图书馆就一脸兴奋地对李忍说:“晚上告诉你一个好消息。”李忍又期待又迷惑。“小何今天是咋的了?买彩票中了二十?”虽然李忍很想知道何隐在卖什么关子,但是既然晚上就能知道,那就忍忍吧。 …...
Web 页面之间传递参数的几种方法
Web 页面之间传递参数的方法有很多种,下面列出一些常见的方法以及它们的代码示例。 一、前端直接传递参数 1、URL 参数传递(query string):通过 URL 的查询字符串(即问号后面的参数)将参数传递给页面。可…...
Android实例仿真之二
目录 三 从无入手 第一阶段 第二阶段 第三阶段 第四阶段 第五阶段 第六阶段 第七阶段 八 举两个典型例子: 九 逆向工程 三 从无入手 这节标题叫从无入手,什么意思呢?如果没有Android这个实例存在,你要做一个类似Android…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
