写给Java/Android开发者的Python入门教程

1. 前言

对于Java/Android开发工程师来说,已经掌握了Java语言,这时再学其他语言(C/C++除外),都是比较容易的,可能花上几个小时就能入门了。
作为一个Android开发工程师,今天一时兴起,学了下Python,在此记录下,同时也希望能帮助更多的同学。

2. 配置环境

2.1 安装Python

首先,我们需要安装Python
Python下载地址 : https://www.python.org/downloads/

在这里插入图片描述

当然,官网下载可能会比较慢,所以可以从我提供的网盘里下载 : python-3.12.0-amd64.exe

3.2 安装pycharm

编写Python可以用pycharm这个IDE,和Android StudioIntelliJ IDEA一样,都是JetBrains出品的,快捷键啥的都一样,对于Java/Android工程师来说几乎没有适应成倍。这里入门的话使用社区版(免费版)就可以了。

pycharm下载地址 : https://www.jetbrains.com/zh-cn/pycharm/

在这里插入图片描述

同样,官网下载可能会比较慢,可以从我提供的网盘里下载 pycharm-community-2023.2.1.exe

3. Python基础

3.1 定义变量

和java不同的是,Python是一种动态类型语言,这意味着不需要预先声明变量的类型。Python会根据赋予给变量的值自动确定变量的类型。

name = "Heiko"

3.2 数据类型

python的主要数据类型有如下这些

  • 整数 : int
  • 浮点型 : float
  • 布尔类型 : bool
    • Ture:1
    • False:0
  • 字符串 : str,引号引起来的就是字符串
  • 列表 : list[1,2,3,4]
  • 字典 : dict{'name':'小明',age:20}

type()函数可以获取变量的数据类型

3.3 类型转换

  • int() : 转成int类型
  • float() : 转成float类型
  • str() : 转成字符串类型
value = "10"
intValue = int(value)
floatValue = float(value)

3.4 打印日志

print('hello world')

3.5 输入

用键盘输入内容,回车后,input()会获取到输入的内容

result = input('请输入名字')
print(result)

3.6 格式化内容

%为格式化占位符

  • %d : 填充整形数据digit
  • %f : 填充浮点型数据float
  • %s : 占位,填充 字符串数据 string (其实可以填充任意类型的数据)
name = "Heiko"
age = 20
height = 1.90
print('我的名字是%s,年龄是%d,身高是%.2f' %(name, age, height))

3.7 f 字符串格式化

name = "Heiko"
age = 20
height = 1.90
print(f'我的名字是{name},年龄是{age},身高是{height}')

3.8 算数运算符

运算符描述
+
-
*
/
//求商
%求余数
**指数运算

3.9 比较运算符

  • > 大于
  • < 小于
  • >= 大于等于
  • <= 小于等于
  • == 等于
  • != 不等于

3.10 逻辑运算符

  • and 逻辑与
  • or 逻辑或
  • not 逻辑非,取反

3.11 if-else

price = 5.6
if price > 10:print("太贵了")
else:print("还能接受")

输出结果

还能接受

3.12 while循环

i = 0
while i < 5:print(f"i:{i}")i += 1

输出结果

i:0
i:1
i:2
i:3
i:4

3.13 for循环

for i in 容器重复执行的代码

例如

my_text = "hello world!"
for i in my_text:print(i)

打印结果

h
e
l
l
ow
o
r
l
d
!

4. 容器

4.1 字符串

字符串是容器,因为字符串中可以包含多个字符

my_text = "hello world!"
print(my_text[3:7])  # 从索引3开始,到索引7
find = my_text.find("world")
print(f"是否找到:{find}") # 如果没找到返回-1,如果找到返回具体索引
re_text = my_text.replace("h","g")  # 替换
print(re_text)
split_text = my_text.split(" ")  # 以空格为分隔符进行分割
print(split_text)
list1 = ['good','good','study']
join_text = " ".join(list1)  # 使用空格连起来 good good study
print(join_text)

执行结果

lo w
是否找到:6
gello world!
['hello', 'world!']
good good study

4.2 列表

list2 = list("hello")  # 转换字符串会将字符串中的每个字符作为一个数据存储到列表中
list3 = []
list4 = [1, "Heiko", 190, True]
# 获取第一个数据
print(list2[0])
# 获取最后一个数据
print(list2[-1])
# 第一第二个数据
print(list2[0:2])
# 获取列表长度
print(len(list2))
# 查找下标
index = list2.index("e")
print(f"e的下标:{index}")
# 判断是否存在
exist = "e" in list2
print(f"e是否在list2中存在:{exist}")
# 统计出现的次数
e_count = list2.count("e")
print(f"e出现的次数:{e_count}")
# 添加数据
list3.append("w")
print(list3)
list3.extend(list4)
print(list3)
# 修改操作
list3[0] = "Q"
print(list3)
# 删除操作
deleteItem = list3.pop(0)
print(f"删除了:{deleteItem} list3:{list3}")
deleteItem = list3.remove(190)
print(f"list3:{list3}")

执行结果

h
o
['h', 'e']
5
e的下标:1
e是否在list2中存在:True
e出现的次数:1
['w']
['w', 1, 'Heiko', 190, True]
['Q', 1, 'Heiko', 190, True]
删除了:Q list3:[1, 'Heiko', 190, True]
list3:[1, 'Heiko', True]

4.3 元组

元组和列表非常相似,元组中可以存放任意类型的数据。
区别在于元组中的数据内容不能改变,列表中的可以改变,元组使用(),列表使用[]
应用:在函数的传参或返回值中使用,保证数据不会被修改
由于元组中的数据不能修改,所以只有查看的方法 index、count、in、len()

# 定义元组
tuple1 = tuple()
tuple2 = tuple([1, 2, 3])
print(tuple2)
tuple3 = tuple("hello")
print(tuple3)
tuple4 = (1, "Heiko", 190, False)
print(tuple4)
# 定义只有一个数据的元组时,数据后边必须有一个逗号
tuple5 = (1,)
print(tuple5)

执行结果

(1, 2, 3)
('h', 'e', 'l', 'l', 'o')
(1, 'Heiko', 190, False)
(1,)

4.4 字典

# 字典 : 由键(key)值(value)对组成
# 定义字典
dict1 = dict()
dict2 = {}
dict3 = {"name": "Heiko", "age": 20, "like": ["写程序", "摄影"]}
print(dict3)
# 修改
dict3["age"] = 25
print(dict3)# 遍历
for value in dict3:print(value)# 删除
dict3.pop("age")
print(dict3)
# 清空
dict3.clear()
print(dict3)

执行结果

{'name': 'Heiko', 'age': 20, 'like': ['写程序', '摄影']}
{'name': 'Heiko', 'age': 25, 'like': ['写程序', '摄影']}
name
age
like
{'name': 'Heiko', 'like': ['写程序', '摄影']}
{}

5. 函数

5.1 定义函数

Python中,可以使用def关键字来定义一个函数

def 函数名(参数列表):  函数体

例如

def func_test():print("hahaha")print("func test")

然后在main函数中进行调用即可

if __name__ == '__main__':

5.2 函数返回多个值

函数返回多个值,其实就是使用元祖返回

def func_test1():tuple1 = ("Heiko", 20)return tuple1

可以进行简化

def func_test1():return "Heiko", 20

进行调用,返回值

name, age = func_test1()print(f"名字:{name} 年龄:{age}")

执行结果

名字:Heiko 年龄:20

6. 面向对象

6.1 定义对象

这里定义了一个Student对象,然后声明了eat()、sleep()、year()这几个方法,__init__()方法是初始化方法,__str__()方法相当于Java中的toString()方法

class Student:def __init__(self, name, age):self.name = nameself.age = agedef __str__(self):return f"姓名:{self.name},年龄:{self.age} 岁"def eat(self):print(f"{self.name} 要吃饭")def sleep(self):print(f"{self.name} 要睡觉")def year(self):self.age += 1

进行调用

student1 = Student("Heiko", 18)
print(student1)
student1.eat()
student1.sleep()
student1.year()

执行结果

姓名:Heiko,年龄:18 岁
Heiko 要吃饭
Heiko 要睡觉

6.2 类继承

Python中的类继承是写在()里面的,即 class 子类(父类):

class Amimal :def eat(self):print("要吃东西")class Dog(Amimal):def bark(self):print("汪汪汪")

进行调用

dog = Dog()
dog.bark()
dog.eat()

执行结果

汪汪汪
要吃东西

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SIEMENS S7-1200 汽车转弯灯程序 编程与分析

公告 项目地址:https://github.com/MartinxMax/SIEMENS-1200-car_turn_signal 分析 题目: 画IO分配表 输入输出m3.0左转弯开关q0.0左闪灯m3.1右转弯开关q0.1右闪灯m3.2停止开关 博图V16配置 设置PLC的IP地址 允许远程通信访问 将HMI设备拖入 注意,我们这边选择的是HMI连接…

JMM到底如何理解?

JMM到底如何理解&#xff1f;JMM与MESI到底有没有关系&#xff1f; - 知乎 (zhihu.com) 不同架构的物理机器可以拥有不一样的内存模型&#xff0c;而JVM 也实现了“Java内存模型”&#xff0c;来屏蔽各种硬件和操作系统的内存访问差异&#xff0c;以实现让Java程序在各种平台下…

牛客网刷题-(1)

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…

[C++] C++入门

☃️个人主页&#xff1a;fighting小泽 &#x1f338;作者简介&#xff1a;目前正在学习C和Linux &#x1f33c;博客专栏&#xff1a;C入门 &#x1f3f5;️欢迎关注&#xff1a;评论&#x1f44a;&#x1f3fb;点赞&#x1f44d;&#x1f3fb;留言&#x1f4aa;&#x1f3fb; …

Git基本命令和使用

文章目录 1、Git本地库命令1.1、初始化本地库1.2、设置用户签名1.3、查看本地库状态1.4、将工作区的修改添加到暂存区1.5、将暂存区的修改提交到本地库1.6、历史版本1.7、取消commit1.8、取消暂存文件 2、分支操作2.1、查看分支2.2、创建分支2.3、分支合并时产生冲突 3、Gitee远…

交换机端口灯常亮 端口up状态 服务器设置ip交换机获取不到服务器网卡mac地址 不能通信

环境: 深信服防火墙 8.0.75 AF-2000-FH2130B-SC S6520X-24ST-SI交换机 version 7.1.070, Release 6530P02 问题描述: 交换机一个vlan下有3台服务器,连接端口2、3、4,2和3连接的服务器正常,交换机3端口灯常亮 端口up状态 服务器自动获取不了地址,改为手动设置ip后,交…

跳跃游戏Ⅱ-----题解报告

题目&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 与Ⅰ不同的是&#xff0c;这次要求找出最小的跳跃次数。思路也很简单&#xff0c;在每一次跳跃之后都更新最远的跳跃距离。 举个列子&#xff1a; 输入&#xff1a;2,3,1,1,4 第一次…

Scrapy设置代理IP方法(超详细)

Scrapy是一个灵活且功能强大的网络爬虫框架&#xff0c;用于快速、高效地提取数据和爬取网页。在某些情况下&#xff0c;我们可能需要使用代理IP来应对网站的反爬机制、突破地理限制或保护爬虫的隐私。下面将介绍在Scrapy中设置代理IP的方法&#xff0c;以帮助您更好地应对这些…

javaEE - 1(9000字详解多线程)

一&#xff1a;认识线程 1.1 线程的概念 线程是操作系统中执行的最小单位&#xff0c;它是进程中的一个实体。一个进程可以包含多个线程&#xff0c;并且这些线程共享进程的资源&#xff0c;如内存、文件句柄等&#xff0c;但每个线程有自己的独立执行流程和栈空间。 线程在…

完整搭建Git服务器

文章目录 搭建Git服务器第一步&#xff0c;安装git&#xff1a;第二步&#xff0c;创建一个git用户&#xff0c;用来运行git服务第三步&#xff0c;添加SSH公钥第四步&#xff0c;初始化Git仓库&#xff1a;第五步&#xff0c;连接Git服务器 搭建Git服务器 GitHub就是一个免费…

【PyTorch】深度学习实践 02 线性模型

深度学习的准备过程 准备数据集选择模型模型训练进行推理预测 问题 对某种产品花费 x 个工时&#xff0c;即可得到 y 收益&#xff0c;现有 x 和 y 的对应表格如下&#xff1a; x &#xff08;hours&#xff09; y&#xff08;points&#xff09;12243648 求花费4个工时可得…

【Dockerfile镜像实战】构建LNMP环境并运行Wordpress网站平台

这里写目录标题 一、项目背景和要求二、项目环境三、部署过程1&#xff09;创建自定义网络2&#xff09;部署NginxStep1 创建工作目录并上传相关软件包Step2 编写Dockerfile文件Step3 编写配置文件nginx.confStep4 创建nginx镜像Step5 运行容器 3&#xff09;部署MysqlStep1 创…