GEE学习笔记 七十:【GEE之Python版教程四】Python基础编程二

news2024/9/23 17:18:34

通过上一章的讲解,我们对于python有了初步的了解,这一章就详细讲解一下python的各个变量以及运算规则等内容。

   关于测试代码推荐初学者将每一段代码都自己敲入编辑器中在本地运行。

1、数值

这是任何编程中都会有的基本变量,在python支持的数据类型主要包括:

  • 整型(int):比如 10

  • 浮点型(float):比如 10.12

  • 复数(complex):是由x+yj表示的有序对的实数浮点数组成,其中x和y是实数,j是虚数单位,比如 10+5j

除此之外,在程序运行中我们还可以用0表示布尔值False,使用非零值表示布尔值True。

  1. # 数值类型

  2. # 整型

  3. age = 10

  4. print("age is {0}".format(age))

  5. # 浮点型

  6. price = 12.35

  7. print("price is {0}".format(price))

  8. # 复数

  9. result = 1 + 2j

  10. 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

相关代码:

  1. # 四则运算

  2. print(7+3)

  3. print(7-3)

  4. print(7*3)

  5. print(7/3)

  6. print(7//3)

  7. print(7%3)

  8. print(7**3)

(2)字符串

字符串就是一串文本,可以使用双引号("")或者单引号('')包围,如果是多行的可以使用三引号("""xxx"""或者'''xxx''')。常用的方法参考下面例子:

  1. # 字符串

  2. text1 = "hello"

  3. text2 = "world"

  4. # + 简单拼接

  5. text3 = text1+" "+text2

  6. print(text3)

  7. # format 拼接

  8. text4 = "{0} {1}".format(text1, text2)

  9. print(text4)

  10. text5 = "hello world"

  11. # 长度

  12. print(len(text5))

  13. # 字符串切割转数组

  14. print(text5.split(" "))

  15. # 切片 [开始索引:结束索引:步长],左闭右开,比如下面就是1-3也就是 ell

  16. print(text5[1:4])

  17. # 索引

  18. print(text5[1])

  19. # 大小写

  20. text6 = "Hello Wolrd"

  21. print(text5.upper())

  22. print(text5.lower())

    上面只是展示了一部分最简单的常用方法,字符串的方法还是非常多,需要自己下去一个一个尝试。这里面最重要的莫过于切片方法,这个我会在下面列表中在详细说一下。

(3)布尔值

    布尔值非常简单,就是True或者False。需要注意的是这里的True或者False第一个字母是大写,同时还需要注意的是在python中空、数值0或者空列表等都是False。

  1. # 布尔值

  2. flag1 = True

  3. flag2 = False

  4. flag3 = None

  5. if flag3:

  6.     print("flag3 is not None")

  7. else:

  8.     print("flag3 is None")

(4)列表

列表List是我们最为常用的例子,它是通过"[]"定义,数据之间用","隔开,然后索引是从0开始。比如:

a = ["a", "b", "c"]

这是一个字符串列表,第0位是"a",依次类推,提取列表数据可以直接使用 a[0] 取第一位的数据。操作列表最常用的是之前提到的一个切片,切片可以理解为就是对列表做提取工作。它的基本规则是:

[ 开始索引 : 结束索引 : 步长 ],左闭右开

开始索引就是列表起始索引,比如0、1等,可以是负数,复数代表从末尾开始算起,比如-1就是列表最后一个数。这个可以通过下面方法验证一下。

  1. a = ["a", "b", "c"]

  2. print(a[-1])

具体例子:

  1. # 列表

  2. a = ["a", "b", "c"]

  3. print(a[-1])

  4. # 列表长度

  5. print(len(a))

  6. # 切片

  7. print(a[1:])

  8. # 循环列表

  9. for _a in a:

  10.     print(_a)

  11.     

  12. # 添加新的数据

  13. a.append("d")

  14. print(a)

  15. # 删除指定数据

  16. del a[0]

  17. print(a)

  18. # 删除最后一个元素并且返回删除的值

  19. print(a.pop())

  20. print(a)

(5)元组

    元组(tuple)类似列表,但是和列表不同的它是不可变的,也就是说我们生成一个元组后只会对其进行查询等操作,不能修改其值。元组生成方式:

  • 使用小括号 "()" 来写元组,比如 (1, 2, "a")

  • 空的元组就是 ()

  • 如果只有一个元素 ("a",),不要丢掉后面的","。

具体例子

  1. # 元组

  2. aTuple = ("a", "b", "c")

  3. print(type(aTuple))

  4. # 获取第一个元素

  5. print(aTuple[0])

  6. # 循环

  7. for _a in aTuple:

  8.     print(_a)

(6)集合

    集合是一个无序不重复的列表,这里需要注意就是集合中的每一个元素都是不重复的,所以我们通常使用它来去重,创建时候我们通常使用set()来创建。

具体操作例子:

  1. # 集合 set

  2. age = [12, 13, 12, 11, 14]

  3. print(age)

  4. # 生成集合去掉重复的12

  5. ageSet = set(age)

  6. print(ageSet)

  7. ageSet2 = set([10, 11, 12, 15])

  8. # 在 ageSet 却不在 ageSet2中数据

  9. print(ageSet - ageSet2)

  10. # 两者并集

  11. print(ageSet | ageSet2)

  12. # 两者交集

  13. print(ageSet & ageSet2)

  14. # 不同时在ageSet和ageSet2中的数据

  15. print(ageSet ^ ageSet2)

(7)字典

字典这个非常简单,就是 { key : value } 这种格式。具体的直接看相关代码:

  1. # 字典

  2. people = {

  3.     "age": 10,

  4.     "name": "Elly",

  5.     "desc": "a boy ???",

  6.     "code": [1, 2, 30.5, 22.1]

  7. }

  8. # 获取所有键值

  9. print(people.keys())

  10. # 获取所有的值

  11. print(people.values())

  12. # 获取指定的值

  13. print(people.get("age"))

  14. # 循环

  15. for key, value in people.items():

  16.     print("{key} -- {value}".format(key=key, value=value))

这里需要注意的就是这个循环,这里使用了items方法来获取每次循环对应的对象的key和value。

(8)日期

在python中日期可以使用 datetime 来做。举个例子:

  1. # 日期处理

  2. import datetime

  3. # 当前日期

  4. now = datetime.datetime.now()

  5. print(now)

  6. # 格式化日期

  7. print(now.strftime("%Y-%m-%d %H:%M:%S"))

  8. print(datetime.datetime.strptime("2018-12-31 00:00:00", "%Y-%m-%d %H:%M:%S"))                                                                                                                                                           来源请引用:地理遥感生态网科学数据注册与出版系统

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/356985.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mac m1设备上安装Qt并使用qt编程遇到的问题以及解决方式

# 简介: 首先在M1平台上的程序可以看到有两种架构,分别是intel的(x86-64)和苹果的m1(arm64架构),根据苹果的介绍,当在m1上面运行intel程序的时候使用的是转译的方式运行的&#xff…

设计模式(十)----结构型模式之适配器模式

1、概述 如果去欧洲国家去旅游的话,他们的插座如下图最左边,是欧洲标准。而我们使用的插头如下图最右边的。因此我们的笔记本电脑,手机在当地不能直接充电。所以就需要一个插座转换器,转换器第1面插入当地的插座,第2面…

以太网详细解析

数据链路层:考虑相邻两个节点之间的传输(通过网线/光纤/无线直接相连的两个设备) 这里以数据链路层其中最知名的就是“以太网” 以太网帧格式: 以太网数据帧帧头载荷帧尾 帧头:目的地址、源地址、类型 目的地址和源…

51单片机简易电阻电感电容RLC测量仪仿真设计

51单片机简易电阻电感电容RLC测量仪仿真( proteus仿真程序讲解视频) 仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0040 51单片机简易电阻电感电容RLC测量仪仿真51单片机最小系统的相关知识复位…

【第二阶段:java基础】第13章:泛型(P553-P568):自定义泛型、泛型的集成和通配符、Junit

本系列博客是韩顺平老师java基础课的课程笔记,B站:课程链接,吐血推荐的一套全网最细java教程,获益匪浅! 韩顺平P553-P5681. 泛型的理解和好处2. 泛型的定义3. 泛型的语法4. 泛型的细节5. 自定义泛型6. 泛型继承和通配符…

62 一次 Promotion failed 的调试

前言 最近 有一个想法就是, 调试一下 DefNewGeneration 里面的晋升失败的情况 呵呵 对于这块的代码上面, 看着感觉有一些疑问的地方, 因此想通过 实际的调试, 来验证一下 实际的情况 然后 之前写了一个用例, 但是 和心中的期望差距甚大, 当然 主要的问题 还是自己对于 细…

CSDN 算法技能树 蓝桥杯-基础 刷题+思考总结

切面条-蓝桥杯-基础-CSDN算法技能树https://edu.csdn.net/skill/algorithm/algorithm-530255df51be437b967cbc4524fe66ea?category188 目录 切面条 大衍数列 门牌制作 方阵转置 微生物增殖 成绩统计 星系炸弹 判断闰年的依据: 特别数的和 *日志统计*(双指…

结构体与引用

1.结构体基本概念结构体属于用户自定义的数据类型,允许用户存储不同的数据类型2.结构体定义和使用语法: struct 结构体 { 结构体成员列表 };通过结构体创建变量的方式有三种:struct 结构体名 变量名struct 结构体名 变量名 { 成员1值,成员2值...}定义结构…

《爆肝整理》保姆级系列教程python接口自动化(十八)--重定向(Location)(详解)

简介   在实际工作中,有些接口请求完以后会重定向到别的url,而你却需要重定向前的url。URL主要是针对虚拟空间而言,因为不是自己独立管理的服务器,所以无法正常进行常规的操作。但是自己又不希望通过主域名的二级目录进行访问&…

分布式session共享解决方案

分布式session共享解决方案 1.分布式 Session 问题 示意图 解读上图,假如我们去购买商品 当 Nginx 对请求进行负载均衡后, 可能对应到不同的 Tomcat比如第 1 次请求, 均衡到 TomcatA, 这时 Session 就记录在 TomcatA, 第 2 次请求, 均衡到 TomcatB, 这…

【Mysql8.0取消严格区分大小】已安装的mysql8.0取消严格区分大小写及mysql8.0重装与赋权限详解(2023年亲测有效)

【写在前面】其实故事要从my.cnf为空,且lower-case-table-names为0开始,linux环境下mysql8.0及其之后的版本对表名和数据库是严格区分大小写的,从而导致我们运行项目时候会报错Table xxx.QRTZ_LOCKS doesnt exist。但是我已经装好了mysql8.0咋…

17.CSS伪类

举一个简单的例子来说明什么是伪类&#xff1f; 从之前的代码中&#xff0c;如下图&#xff0c;我们像给这两个列表中的某一列单独设置样式&#xff0c;我们该如何做呢&#xff1f; 我们肯定会选择在li标签上添加class去实现&#xff0c;如下 开始标记结束标记实际元素 <…

python--matplotlib(2)

前言 Matplotlib画图工具的官网地址是 http://matplotlib.org/ Python环境下实现Matlab制图功能的第三方库&#xff0c;需要numpy库的支持&#xff0c;支持用户方便设计出二维、三维数据的图形显示&#xff0c;制作的图形达到出版级的标准。 实验环境 Pycharm2020.2.5社区版,w…

算法练习-链表(二)

算法练习-链表&#xff08;二&#xff09; 文章目录算法练习-链表&#xff08;二&#xff09;1. 奇偶链表1.1 题目1.2 题解2. K 个一组翻转链表2.1 题目2.2 题解3. 剑指 Offer 22. 链表中倒数第k个节点3.1 题目3.2 题解3.2.1 解法13.2.2 解法24. 删除链表的倒数第 N 个结点4.1 …

中国智能物流行业市场规模及未来发展趋势

中国智能物流行业市场规模及未来发展趋势编辑中国智能物流行业市场规模正在快速增长。随着电子商务、物流配送、物联网等行业的发展&#xff0c;物流行业需求不断提高&#xff0c;智能物流产品应运而生。智能物流行业主要通过智能化管理、智能路径规划、智能定位、物流配送等方…

Java特性之设计模式【工厂模式】

一、工厂模式 概述 工厂模式&#xff08;Factory Pattern&#xff09;是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式 在工厂模式中&#xff0c;我们在创建对象时不会对客户端暴露创建逻辑&#xff0c;并且是通…

投票需要什么流程微信投票互助平台的免费投票平台搭建

“最美家政人”网络评选投票_免费小程序投票推广_小程序投票平台好处手机互联网给所有人都带来不同程度的便利&#xff0c;而微信已经成为国民的系统级别的应用。现在很多人都会在微信群或朋友圈里转发投票&#xff0c;对于运营及推广来说找一个合适的投票小程序能够提高工作效…

Java-集合(5)

Map接口 JDK8 Map接口实现子类的特点 Map和Collection是并列关系&#xff0c;Map用于保存具有映射关系的数据&#xff1a;Key-ValueMap中的key和value可以是任何引用类型的数据&#xff0c;会封装到HashMap$Node对象中Map中的key不允许重复&#xff0c;原因和HashSet一样Map…

2023年美赛MCM 问题C:预测Wordle结果 ​

目录2023年美赛MCM 问题C: 预测Wordle结果 ​1. 背景2. 要求3. 附件1. 数据文件。2. 纽约时报网站上发布的 Wordle 指南4. 参考2023年美赛MCM 问题C: 预测Wordle结果 ​ 1. 背景 Wordle 是纽约时报目前每天提供的流行拼图。 玩家尝试通过在六次或更少的尝试中猜测一个五个字母…

记录一次Binder内存相关的问题导致APP被杀的BUG排查过程

事情的起因的QA压测过程发生进程号变更&#xff0c;怀疑APP被杀掉过&#xff0c;于是开始看日志 APP的压测平台会上报进程号变更时间点&#xff0c;发现是在临晨12&#xff1a;20分&#xff0c;先大概确定在哪个日志文件去找关键信息一开始怀疑是crash&#xff0c;然后就在日志…