【Python】Python基础语法

news2024/11/19 1:43:20

总感慨万千,虽只道寻常

文章目录

  • 前言
  • 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 g
    g /= 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)

在这里插入图片描述

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

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

相关文章

Spring Boot - Junit4 / Junit5 / Spring Boot / IDEA 关系梳理

文章目录 PreJunit4 / Junit5 / Spring Boot / IDEAIDEA版本Spring-Boot-Older-Release-NotesSpringBootTest 起源 & Spring-Boot-1.4-Release-Notes2.0.0.RELEASE ----- 2.0.9.RELEASE2.1.0.RELEASE ----- 2.1.18.RELEASE2.2.0.RELEASE ~ 2.2.13.RELEASE2.3.0.RELEASE ~ 2…

记一次线程堵塞(挂起)导致消息队列积压

1 背景 A服务作为生产者,每天发送上千万的mq消息,每一个消息包含500个用户ids数据。B服务作为消费者,接受MQ消息并通过http调用第三方请求进行业务处理,消费组启用了rabbitmq的多线程消费组,一个实例并发40个mq消费者…

索尼mp4变成rsv修复案例(ILME-FX3)

索尼mp4的修复案例讲过很多,这次是索尼的ILME-FX3也算是一个畅销的机型,一般索尼没有封装的文件是RSV文件,但是极少遇到有多个RSV文件的,下边我们来讲下这个特殊案例。 故障文件:4个RSV文件,大小在1.78G~28G多 故障现…

(测评补单)Lazada、Shopee、Zalora:探索东南亚电商市场

随着互联网的发展,电子商务在东南亚地区迅速崛起。在这个充满活力和潜力的市场中,Lazada、Shopee和Zalora成为了三大领先的电商平台。它们以其独特的商业模式和创新的服务,吸引了数百万用户。本文将深入探讨这三家电商巨头的发展历程、核心竞…

一文讲透机器学习超参数调优!

公众号:尤而小屋作者:Peter编辑:Peter 大家好,我是Peter~ 本文的主题:机器学习建模的超参数调优。开局一张图: 文章很长,建议直接收藏~ 一、什么是机器学习超参数? 机器学习超参数…

代码随想录训练营 打家劫舍

代码随想录训练营 dp 198. 打家劫舍🌸code 213. 打家劫舍 II🌸分析code 337.打家劫舍 III🌸 198. 打家劫舍🌸 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素…

FastChat工作原理解析

在了解FastChat如何完成大模型部署前,先了解下Huggingface提供的Transformer库。Hugggingface提供的Transformer库 Hugging Face 的 Transformers 库是一个用于自然语言处理(NLP)任务的 Python 库,旨在简化和加速使用预训练语言模…

Vue3 中的几个坑,你都见过吗?

Vue3 目前已经趋于稳定,不少代码库都已经开始使用它,很多项目未来也必然要迁移至 Vue3。本文记录我在使用 Vue3 时遇到的一些问题,希望能为其他开发者提供帮助。 1. 使用 reactive 封装基础数据类型 传统开发模式中,数据声明很简…

[论文阅读]Visual Attention Network原文翻译

[论文链接]https://arxiv.org/abs/2202.09741 摘要 虽然一开始是被设计用于自然语言处理任务的,但是自注意力机制在多个计算机视觉领域掀起了风暴。然而,图像的二维特性给自注意力用于计算机视觉带来了三个挑战。(1)将图像视作一…

怎样获取字符串数组的长度_使用sizeof(array) / sizeof(array[0])

使用sizeof() C、C中没有提供直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢? 其中一种方法是使用sizeof(array) / sizeof(array[0]), 在C语言中习惯上在使用时…

Unity 性能优化之Shader分析处理函数ShaderUtil.HasProceduralInstancing: 深入解析与实用案例

Unity 性能优化之Shader分析处理函数ShaderUtil.HasProceduralInstancing: 深入解析与实用案例 点击封面跳转到Unity国际版下载页面 简介 在Unity中,性能优化是游戏开发过程中非常重要的一环。其中,Shader的优化对于游戏的性能提升起着至关重要的作用。…

redis缓存详解

一、Redisson分布式锁存在问题 1、基于redis实现的分布式锁,如果redis集群出现master宕机,而从节点没有接收到锁对应的key,被选举成新的master就可能存在被其它线程加锁成功则存在加锁问题 2、 基于上面的问题,可以把redis分为多…

SpringBoot国际化配置组件支持本地配置和数据库配置

文章目录 0. 前言i18n-spring-boot-starter1. 使用方式0.引入依赖1.配置项2.初始化国际化配置表3.如何使用 2. 核心源码实现一个拦截器I18nInterceptorI18nMessageResource 加载国际化配置 3.源码地址 0. 前言 写个了原生的SpringBoot国际化配置组件支持本地配置和数据库配置 背…

口袋参谋:99.99%商家都学的防骗技巧!

​99%的淘宝天猫商家,必然都要解决一个问题!!! 如何让自己不被敲诈勒索且骗钱! 直接看真实案例 看这个骗子,是如何赤裸裸诈骗商家的! 如果你不想再当冤大头,告诉你一个99.99%有效…

SSM - Springboot - MyBatis-Plus 全栈体系(六)

第二章 SpringFramework 四、SpringIoC 实践和应用 3. 基于 注解 方式管理 Bean 3.1 实验一:Bean 注解标记和扫描 (IoC) 3.1.1 注解理解 和 XML 配置文件一样,注解本身并不能执行,注解本身仅仅只是做一个标记,具体的功能是框…

分类预测 | MATLAB实现基于SVM-Adaboost支持向量机结合AdaBoost多输入分类预测

分类预测 | MATLAB实现基于SVM-Adaboost支持向量机结合AdaBoost多输入分类预测 目录 分类预测 | MATLAB实现基于SVM-Adaboost支持向量机结合AdaBoost多输入分类预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现基于SVM-Adaboost支持向量机结合Ada…

Python 图形化界面基础篇:理解 Tkinter 主事件循环

Python 图形化界面基础篇:理解 Tkinter 主事件循环 引言什么是 Tkinter 主事件循环? Tkinter 主事件循环的使用步骤1:导入 Tkinter 模块步骤2:创建 Tkinter 窗口对象步骤3:设置窗口标题和添加 GUI 元素步骤4&#xff1…

router-link 和 router-view的区别

router-link 实现路由之间的跳转 router-view(路由出口组件 -> 渲染路径匹配到的视图组件) 当你访问的地址与路由path相符时,会将指定的组件替换该router-view router-link router-link 点击实现路由跳转,to属性指向目标地址&…

期权开户需要多长时间?一天可以开好吗?

期权开户一般需要一天到一个月的时间不等。根据不同券商的要求,开户流程和时间可能会有所不同。一些券商会要求客户进行验资,考试,仿真交易等环节,因此需要花费一定的时间来审核和激活账户,下文介绍期权开户需要多长时…

Mybatis-Plus 批量插入数据时报错 java.lang.Object Not Found TableInfoCache

文章目录 前言问题回溯排查过程总结 前言 报错堆栈信息如下,基本是mybatis-plus源码中的一些东西: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: java.lang.Object Not Found TableInfoCache.at com.baomidou.mybatisplus.core.to…