当前位置: 首页 > news >正文

【Python】Python基础语法

总感慨万千,虽只道寻常

文章目录

  • 前言
  • 1. python与Java的主要区别
  • 2. 数据类型
  • 3. 输入与输出
    • 3.1 输入
    • 3.2 输出
  • 4. 注释
  • 5. 运算符
  • 6. 条件语句
  • 7. 循环
  • 8. 函数
  • 9. 列表
    • 9.1 创建
    • 9.2 根据下标访问元素
    • 9.3 列表切片
    • 9.4 遍历
    • 9.5 插入元素
    • 9.6 查找元素下标
    • 9.7 删除元素
    • 9.8 列表的连接
  • 10. 元组
    • 10.1 创建
    • 10.2 元组的使用
  • 11. 字典
    • 11.1 创建
    • 11.2. 查找value
    • 11.3 新增修改
    • 11.4 删除
    • 11.5 遍历


前言

在测试中,python语法是很常用的,python和java语法有一定程度的区别,让我们走进Python的世界吧。


1. python与Java的主要区别

语法:Java是一种静态类型的编程语言,需要在代码中明确声明变量的数据类型,并使用分号结尾。而Python是一种动态类型的编程语言,不需要显式地声明变量类型,也不需要分号结尾。

面向对象:Java是一种面向对象的编程语言,所有的代码必须定义在类中。Python也支持面向对象编程,但是也允许使用函数式编程和过程式编程的风格。

运行速度:Java代码在编译时需要被转换为机器码,并在Java虚拟机中运行,相对而言运行速度较快。而Python代码是解释执行的,运行速度相对较慢。

生态系统:Java拥有广泛的生态系统,有许多开源库和框架,可以用于开发各种类型的应用程序。Python也有丰富的生态系统,特别擅长于数据分析、科学计算和人工智能等领域。

异常处理:Java强制要求处理所有可能的异常情况,需要使用try-catch块来捕获和处理异常。Python在语法层面上支持异常处理,但是不强制要求处理异常。

2. 数据类型

Python的几种常见的数据类型包括:

整数(int):表示整数,例如 1、2、3 等。
区别于java,python中对于整型只有int一种类型,在Python中,int类型表示的范围取决于所使用的操作系统和计算机架构。对于大多数计算机,int类型表示的范围通常在 -2^31 (-2,147,483,648) 到 2^31-1 (2,147,483,647) 之间,也就是32位有符号整数的范围。不存在java中的长整型,短整型等多种整型变量。
在这里插入图片描述

浮点数(float):表示带有小数部分的数值,例如 1.5、3.14、2.0 等。python的浮点数为双精度,双精度浮点数的范围约为-1.7 x 10^308 到 1.7 x 10^308,可以表示非常大或非常小的数值。同时,双精度浮点数的精度也比单精度浮点数更高,可以表示更多的有效数字。
在这里插入图片描述

字符串(str):表示文本数据,由一系列字符组成,例如 “hello”、“world”、“Python” 等。python中的字符串可以用单引号和双引号或者三引号引起来,这是为了防止一个句子中出现其他引号的情况
如下图,句子中出现了单引号和双引号,这是为了避免歧义,我们可以用三引号将字符串引起来。
在这里插入图片描述
les(s), 可用于求得字符串s的长度
s3 = s1 + s2,表示将s1与s2拼接,赋值给s3
布尔值(bool):表示真(True)或假(False)两种状态。
在这里插入图片描述

剩下的几种我们在之后的内容中详细说明

列表(list):表示一组有序的元素,元素可以是不同的数据类型,用方括号 [] 包含,例如 [1, 2, 3]、[“apple”, “orange”, “banana”] 等。
元组(tuple):与列表相似,但元素不可改变,用圆括号 () 包含,例如 (1, 2, 3)、(“apple”, “orange”, “banana”) 等。
字典(dict):表示键值对的集合,用花括号 {} 包含,每个键值对用冒号 : 分隔,例如 {“name”: “Alice”, “age”: 25}。
集合(set):表示一组唯一的元素,用花括号 {} 包含,没有重复值,例如 {1, 2, 3}、{“apple”, “orange”, “banana”} 等。

3. 输入与输出

3.1 输入

python用input()t输入,如下图所示,python用Input输入,输入的数据类型默认是字符串类型str
在这里插入图片描述
若想以整数的数据类型进行使用,需要使用类型强制转换。如下图,b = int(b),将b由字符串类型强制转换为整数类型。
在这里插入图片描述

3.2 输出

python用print()输出
输出方式如下几种,

print(变量1,变量2,.....)
需要注意的是,这种输出方式对于变量的类型没有要求。

在这里插入图片描述

使用占位符输出指定格式的数据
a = 178
print("今年傻明高%d"%(a))
b = 3.14159
print("%.2f"%(b))      //保留小数点后两位小数

在这里插入图片描述

在字符串中插入数据,用f标注,数据用{}括起来
print(f"我男票是{b},他{a}岁了")
print(f'今天他有{d}%的几率惹我生气')

在这里插入图片描述

4. 注释

python注释快捷键是ctrl+/,可同时选中多行,进行快捷键注释.
单行注释,在句首加符号“ # ”,代表这一行是注释
在这里插入图片描述
多行注释,如下图所示,用三引号引起来,可用于多行注释
在这里插入图片描述

5. 运算符

下面只介绍python中与java不同的运算符

  1. 15 //2 ,代表整除,只保留整数位
  2. 2 ** 3,表示2的3次幂
    其余运算符与java一致,可正常使用

6. 条件语句

如下3种if语句块,python中,if的条件语句不需要加括号,用“ :”代表一个语句块。并且if-else语句被替换成if-elif-else语句,python代码块中,对缩进的要求很严格,要注意格式。

if a == 'hello':print(True)
if a == 'hello/':print("True")
else:print("False")
if a == 'hello/':print("Yes")
elif a > 'hello/':print("Large")
else :print('Small')

pass可表示一个空行占位,即满足了条件,不进行任何操作。

if d != 'love':pass
else:print('i said love')

7. 循环

range规定是左闭右开

for i in range(0,11):print(i,end=" ")

在这里插入图片描述
可以规定步长,如下图所示,每两个打印一个数

for i in range(0,11,2):print(i,end=" ")

在这里插入图片描述

步长可以为负数,意思是倒着打印

for i in range(10,-1,-2):print(i,end=" ")

在这里插入图片描述

8. 函数

如下代码所示,即使是有返回值的函数,在python中也不需要写返回值的类型,只需要写def ,函数名,以及形参的列表,java对形参的类型不做要求,只要是能符合函数的规则都可以进行传参

def sum_Num(x,y):return x + y
t = sum_Num(1,2.13)
print(t)

在这里插入图片描述
与Java不同,python的函数可以返回多个值,如下图,可以同时返回x,y以元组的方式进行接收。

# //多个形参
def point(x,y):return x*20,y*20
x = 2
y = 3
x,y = point(x,y)
print(x,",",y)

在这里插入图片描述
在函数内部使用局部变量,python内部的局部变量在函数结束时就被销毁了,它的作用域就是在函数内部,若想在函数内部使用全局变量,需手动定义使用全局变量,如下代码

#在函数内部全局变量
g = 20
def fun():global gg /= 5
fun()
print(int(g))
# 形参默认值
def add(h, j,de = 12):if de == 10:print(h,j)return h + j
# 用于调试,传如默认参数10时可以打印参数值,便于调试观察
num = add(12,13,10)
print(num)

# 根据形参个数进行传参
def count(a, b, c):return a + b + c*2
count_num = count(a = 10, c = 20, b = 50)
print(count_num)

9. 列表

9.1 创建

a = []
b = list()
c = [1, 'hello',True, 3.14, b]

9.2 根据下标访问元素

print(c[3])
//越界访问会报错
print(c[100])
//-1为倒数第一个元素,-2为倒数第二个元素
print(c[-1])

9.3 列表切片

冒号左边为左边界,右边为右边界,左闭右开。
越界访问不报错,越界时打印到最后一个元素

print(c[:])
print(c[0:-1])
print(c[0:100])
print(c[:-2])
print(c[2:])
print((c[0::2]))

在这里插入图片描述

9.4 遍历

for elem in c:print(elem,end=" ")
print()for i in range(0,len(c)):print(c[i],end=" ")
print()

在这里插入图片描述

9.5 插入元素

越界添加时不报错,放到最后一个位置

for i in range(0,len(c)):print(c[i],end=" ")
print()
c.insert(4,"hello")
c.append("hhh")
c.insert(0,"ddd")
c.insert(100,"lll")
for i in range(0,len(c)):print(c[i],end=" ")
print()

在这里插入图片描述

9.6 查找元素下标

若元素不存在,则抛出异常

b1 = "hhh" in c
print(b1)
print(c.index(1))
print(c.index(3.14))
print(c.index(-1))

在这里插入图片描述

9.7 删除元素

# # 移除第一个值的“hello”的元素c.remove("hello")
# # 删除末尾元素c.pop()
# # 删除下标为1的元素c.pop(1)for elem in c:print(elem,end=" ")print()

9.8 列表的连接

d = [1,12,1.2]
# 把d + c的数组赋值给d
d = d + c
for elem in d:print(elem,end=" ")
print()
# 把c放在d的后面
d.extend(c)
for elem in d:print(elem,end=" ")

在这里插入图片描述

10. 元组

元组不能被修改,其余的使用方法与列表类似

10.1 创建

y = tuple()
z = ()
u = (1,2,3,'s')

10.2 元组的使用

元组与列表的使用大体相同,除了涉及到修改数组元素的方法,其余方法列表皆可正常使用

11. 字典

11.1 创建

d = {}
di = dict()
dic = {'name':'dm','age':12}

11.2. 查找value

t1 = 'name' in dic
print(t1)
t2 = 'name' not in dic
print(t2)
# 查找value
v1 = dic['name']
print(v1)

在这里插入图片描述

11.3 新增修改

# 新增
dic['sex'] = '女'# 修改
dic['sex'] = '男'

11.4 删除

# 删除
dic.pop('sex')

11.5 遍历

for key in dic:print(key,dic[key])print(dic.keys())
print(dic.values())
print(dic.items())
for key, value in dic.items():print(key, value)

在这里插入图片描述

相关文章:

【Python】Python基础语法

总感慨万千,虽只道寻常 文章目录 前言1. python与Java的主要区别2. 数据类型3. 输入与输出3.1 输入3.2 输出 4. 注释5. 运算符6. 条件语句7. 循环8. 函数9. 列表9.1 创建9.2 根据下标访问元素9.3 列表切片9.4 遍历9.5 插入元素9.6 查找元素下标9.7 删除元素9.8 列表…...

I2C总线驱动:裸机版、应用层的使用、二级外设驱动三种方法

一、I2C总线背景知识 SOC芯片平台的外设分为: 一级外设:外设控制器集成在SOC芯片内部二级外设:外设控制器由另一块芯片负责,通过一些通讯总线与SOC芯片相连 Inter-Integrated Circuit: 字面意思是用于“集成电路之间…...

Unix Network Programming Episode 77

‘gethostbyaddr’ Function The function gethostbyaddr takes a binary IPv4 address and tries to find the hostname corresponding to that address. This is the reverse of gethostbyname. #include <netdb.h> struct hostent *gethostbyaddr (const char *addr…...

解决Ubuntu无法安装pycairo和PyGObject

环境&#xff1a;虚拟机Ubuntu20.04&#xff0c;vscode无法安装pycairo和PyGObject 虚拟机Ubuntu20.04&#xff0c;vscode中运行Anaconda搭建的vens 的Python3.8.10 首先在vscode中点击ctrlshiftp&#xff0c;选择Python3.8.10的环境&#xff0c;自动激活Python 最近在搞无人…...

Android Handler 机制解析

1、前言 在 Android 开发中&#xff0c;Handler 的机制和运行原理这方面的知识可以说是每个人都需要熟悉的。这不仅是因为 Handler 是 Android 应用的基石之一&#xff0c;也因为 Handler 整体设计上也是十分优秀的。接下来我就梳理总结一下常见的 Handler 相关知识点。 2、基…...

酒店固定资产管理怎么分类

在酒店业中&#xff0c;固定资产的管理是至关重要的一环。它不仅影响到企业的运营效率和盈利能力&#xff0c;而且直接影响到客户体验和品牌形象。因此&#xff0c;对于酒店管理者来说&#xff0c;合理、有效地进行固定资产管理是一项必不可少的任务。本文将探讨酒店固定资产的…...

OpenCV(三十一):形态学操作

​​​​​​1.形态学操作 OpenCV 提供了丰富的函数来进行形态学操作&#xff0c;包括腐蚀、膨胀、开运算、闭运算等。下面介绍一些常用的 OpenCV 形态学操作函数&#xff1a; 腐蚀操作&#xff08;Erosion&#xff09;&#xff1a; erode(src, dst, kernel, anchor, iteration…...

Python之面向对象(二)

目录 属性和方法静态属性/方法、普通属性/方法、类方法保护和私有属性/方法魔术方法构造方法(\_\_new__/\_\_init\_\_)析构方法(\_\_del__)调用方法&#xff08;\_\_call__&#xff09;toString方法\_\_str__、\_\_repr\_\_\_\_getitem__、setitem、delitem\_\_add__、\_\_gt\_…...

ESP32用作经典蓝牙串口透传模块与手机进行串口通信

ESP32用作经典蓝牙串口透传模块与手机进行串口通信 简介ESP32开发板Arduino程序手机与ESP32开发板进行蓝牙串口透传通信总结 简介 ESP32-WROOM-32模组集成了双模蓝牙包括传统蓝牙&#xff08;BR/EDR&#xff09;、低功耗蓝牙&#xff08;BLE&#xff09;和 Wi-Fi&#xff0c;具…...

Python 操作 CSV

使用过 CSV 文件都知道&#xff1a;如果我们的电脑中装了 WPS 或 Microsoft Office 的话&#xff0c;.csv 文件默认是被 Excel 打开的&#xff0c;那么什么是 CSV 文件&#xff1f;CSV 文件与 Excel 文件有什么区别&#xff1f;如何通过 Python 来操作 CSV 文件呢&#xff1f;带…...

自动化运维工具Ansible教程(二)【进阶篇】

文章目录 前言Ansible 入门到精通自动化运维工具Ansible教程(一)【入门篇】自动化运维工具Ansible教程(二)【进阶篇】精通篇 进阶篇1. Ansible 的高级主题&#xff08;例如&#xff1a;角色、动态清单、变量管理等&#xff09;**1. 角色&#xff08;Roles&#xff09;**&#x…...

嵌入式Linux基础学习笔记目录

1. 嵌入式Linux应用开发基础知识 1.1 交叉编译 1.2 GCC编译器 1.3 makefire 1.4 文件I/O 1.5 Framebuffer应用编程 1.6 文字显示及图象显示 1.7 输入系统应用编程 1.8 网络编程 1.9 多线程编程 1.10 串口编程 1.11 I2C应用编程 2. 源码分析 2.1 MQTT源码 2.2 蓝牙源码 2.3 MJP…...

JVM | 垃圾回收器(GC)- Java内存管理的守护者

引言 在编程世界中&#xff0c;有效的内存管理是至关重要的。这不仅确保了应用程序的稳定运行&#xff0c;还可以大大提高性能和响应速度。作为世界上最受欢迎的编程语言之一&#xff0c;通过Java虚拟机内部的垃圾回收器组件来自动管理内存&#xff0c;是成为之一的其中一项必…...

yolov5添加ECA注意力机制

ECA注意力机制简介 论文题目&#xff1a;ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks 论文地址&#xff1a;here 基本原理 &#x1f438; ECANet的核心思想是提出了一种不降维的局部跨通道交互策略&#xff0c;有效避免了降维对于通道注意…...

华为在高端智能手机市场再次撕开了一道深深的口子

智能手机市场趋于饱和&#xff0c;增长变得越来越难&#xff0c;智能手机厂商从被动卷走向了主动卷。 8月29日&#xff0c;华为宣布推出“HUAWEI Mate 60 Pro先锋计划”&#xff0c;并于当天中午在官方商城、部分线下门店上线销售新机Mate 60 Pro&#xff0c;它是全球首款支持卫…...

前端设计模式和设计原则之设计模式

作为前端开发&#xff0c;在code时&#xff0c;或多或少地都会践行设计模式&#xff0c;但是你清楚自己用到的是何种设计模式吗&#xff1f; 为什么前端开发一定要懂设计模式呢&#xff1f; code时不遵从设计模式&#xff0c;又能怎样呢&#xff1f; 上面的问题可以留作思考…...

提高在速卖通产品上的曝光率——自养号测评优势全面解析!

速卖通是国际贸易的一个平台&#xff0c;是国内外企业之间的一个桥梁。在速卖通中&#xff0c;如果要让产品得到更好地推广&#xff0c;就必须让产品得到更多的消费者认可。而产品的认可度除了品质保障和售后服务之外&#xff0c;评测也是非常重要的环节。 对于速卖通店铺销量…...

指针进阶(二)

指针进阶 5.函数指针6. 函数指针数组7. 指向函数指针数组的指针8. 回调函数案例&#xff1a;使用回调函数&#xff0c;模拟实现qsort&#xff08;采用冒泡的方式&#xff09;。案例&#xff1a;测试qsort排序结构体数据 5.函数指针 补&#xff1a; &函数名就是函数的地址 …...

【HCIE】03.BGP高级特性

每一条BGP路由都可以携带多个路径属性&#xff0c;针对其属性也有特有的路由匹配工具&#xff0c;包括&#xff1a;AS Path Filter和Community Filter。 import方向的属性&#xff0c;出现在如策略里面&#xff0c;加入到BGP路由表中&#xff0c;再传给路由表里&#xff0c;出去…...

单个处理数据祖籍列表层级关系

CREATE DEFINERroot% FUNCTION sys_organization_getAncestorsNames(deptId varchar(36)) RETURNS varchar(1000) CHARSET utf8DETERMINISTIC BEGINDECLARE parentDeptId varchar(36) default ; -- 父部门iddeclare parentDeptName varchar(100) default ; -- 父部门名称decla…...

Maven部署打包多环境(开发、测试、生产)配置教程

Maven打包多环境&#xff08;开发、测试、生产&#xff09;配置教程 1、多环境配置的必要性1.1 没有进行多环境配置进行的操作复杂性1.2 不影响运行时配置 2、配置方案2.1 添加profile属性2.1 添加两个插件2.3 主配置文件中添加插值变量 3、效果展示3.1 勾选prod环境3.2 控制台…...

【计算思维题】少儿编程 蓝桥杯青少组计算思维 数学逻辑思维真题详细解析第9套

蓝桥杯青少组计算思维 数学逻辑思维真题详细解析第9套 第十四届蓝桥杯省赛真题 1、要把下面4张图片重新排列成蜗牛的画像,该如何排列这些图片 A、 B、 C、 D、 答案:A 考点分析:主要考查小朋友们的观察能力空...

【Hello Algorithm】贪心算法

本篇博客介绍&#xff1a; 简单介绍下贪心算法 贪心算法 介绍贪心算法最小字典序的字符串拼接最多会议数切棍子的最小成本IPO灯塔问题 介绍贪心算法 贪心算法是一种极具有自然智慧的算法 它会使用以一种局部最功利的标准来做出一个当前看来最好的选择 如果说我们根据局部最优…...

TOP-K问题

目录 问题描述 解法及思想 第一种方式 算法思想 具体实现 第二种方式 算法思想 具体实现 问题描述 Top-K问题是一个十分经典的问题&#xff0c;一般有以下两种方式来描述问题&#xff1a; 在10亿的数字里&#xff0c;找出其中最大的100个数&#xff1b;在一个包含n个整…...

【保姆级从0到1】UE5 蓝图入门教程1:关卡、蓝图入门

20230113 1、新建项目 新建选择 UE 5.1 项目 选择蓝图&#xff0c;项目位置 改变编辑器布局&#xff0c;选择经典布局 2、关卡与蓝图 选择 File -> New Level 准备创建关卡 选择 Basic&#xff0c;点击 Create 进行创建 Ctrl S 保存新建的关卡 关卡蓝图的打开 鼠标右键&…...

【码银送书第六期】《ChatGPT原理与实战:大型语言模型的算法、技术和私有化》

写在前面 2022年11月30日&#xff0c;ChatGPT模型问世后&#xff0c;立刻在全球范围内掀起了轩然大波。无论AI从业者还是非从业者&#xff0c;都在热议ChatGPT极具冲击力的交互体验和惊人的生成内容。这使得广大群众重新认识到人工智能的潜力和价值。对于AI从业者来说&#xf…...

redis 报错 Redis protected-mode 配置文件没有真正启动

(error) DENIED Redis is running in protected mode because protected mode is enabled Redis protected-mode 是3.2 之后加入的新特性&#xff0c;在Redis.conf的注释中&#xff0c;我们可以了解到&#xff0c;他的具体作用和启用条件 链接redis 时只能通过本地localhost …...

解决a标签内容中img标签和p标签垂直方向间隔太大的问题

现象如下&#xff1a; 对应的html结构&#xff1a; 解决办法&#xff1a;给a标签设置&#xff1a;display: inline-block和line-height属性。 然后问题解决&#xff1a; 具体原理如下&#xff08;由chatgpt回答&#xff09;&#xff1a; display: inline-block 可以减少垂直方…...

如何选择靠谱的全景平台?VR全景加盟从哪方面对比?

VR全景行业经过近几年的发展&#xff0c;已经逐渐普及开来&#xff0c;线下各个行业都有实体商家开始引入VR全景去做营销宣传推广了。不少老板也意识到线上线下双渠道的重要性&#xff0c;而VR全景的存在就刚好满足各行各业的需求&#xff0c;从这一点不难看出&#xff0c;VR全…...

CentOS系统环境搭建(十八)——CentOS7安装Docker20.10.12和docker compose v2

centos系统环境搭建专栏&#x1f517;点击跳转 CentOS7安装Docker20.10.12和docker compose v2 关于Docker旧版本和docker compose1.0版本的安装可以看这一篇CentOS系统环境搭建&#xff08;三&#xff09;——Centos7安装Docker&Docker Compose。 1.卸载旧版本 卸载do…...

网络销售应该注册什么公司/电商seo是指

// func3-2.cpp algo3-6.cpp和algo3-7.cpp要调用的函数 char Precede(SElemType t1,SElemType t2) { // 根据教科书表3.1&#xff0c;判断t1&#xff0c;t2两符号的优先关系(#用\n代替)char f;switch(t2){case :case -:if(t1(||t1\n)f<; // t1<t2elsef>; // t1>t2b…...

兰州新病毒的最新消息/山东关键词优化联系电话

http://ask.zealer.com/post/185  ISP是Image Signal Processor的缩写&#xff0c;全称是影像处理器。在相机成像的整个环节中&#xff0c;它负责接收感光元件&#xff08;Sensor&#xff09;的原始信号数据&#xff0c;可以理解为整个相机拍照、录像的第一步处理流程&#xf…...

广州网站建设 致茂/2023年的新闻十条

如何将正在运行的 Oracle 数据库迁移到另一个系统使用 Oracle VM Server for SPARC 2.1作者&#xff1a;Orgad Kimchi 和 Roman Ivanov&#xff0c;2012 年 2 月如何配置 Oracle 服务器及其关联的存储阵列&#xff0c;以便可以在不中断的情况下将正在运行的 Oracle 数据库从一个…...

可靠的常州网站建设/推广app下载

系统管理-管理节点&#xff0c;刷新状态 转载于:https://www.cnblogs.com/cocoat/p/5856669.html...

江西赣州网站建设/搜索网站哪个好

参考&#xff1a;http://www.mamicode.com/info-detail-1705113.html 先声明&#xff0c;热更新词库&#xff0c;需要用到&#xff0c;web项目和Tomcat。不会的&#xff0c;请移步 Eclipse下Maven新建项目、自动打依赖jar包&#xff08;包含普通项目和Web项目&#xff09; Tomc…...

广州网站制作到诺然/宣城网站seo

上面那张图讲解了kafka中broker、生产者、消费者、topic、消息这几个概念&#xff0c;其中broker在物理上你可以理解为一台服务器上搭了一个kafka服务&#xff0c;这台就是broker0&#xff0c;另一台服务器搭建了一个kafka服务&#xff0c;这台就是broker1&#xff0c;前提是在…...