python基础语法【自用】

news2024/11/15 21:51:33

始发站

   🚩Python的基础语法,冲冲冲!

   🚩注:本篇为python基础语法篇,因博主之前使用java,所以本基础语法篇实为自用丐版!

🌲 你好,世界!

安装环境&Pycharm:

在这里插入图片描述
在这里插入图片描述

🌲 Python基础语法

🌷 数据类型

Python的六个标准数据类型:

  • Numbers(数字)
  • String(字符串):不可变可重复,改变得到一个新的字符串
  • List(列表):有序可变可重复序列
  • Tuple(元组):有序不可变可重复序列
  • Dictionary(字典):无序key-value集合
  • Set(集合):无序不重合集合

不可变数据:Number(数字)、String(字符串)、Tuple(元组);
可变数据:List(列表)、Dictionary(字典)、Set(集合)。

🍄查看数据类型

可以使用type()语句查看数据类型

print(type("你好,世界!"));
print(type(123));
print(type(121.12));

在这里插入图片描述

🍄数据类型转换

常用有:

  • int(x):将对象转换为数字
  • float(x)将对象转换为浮点数
  • str(x)将对象转换为字符串
print(type(121.12));
print(type(str(121.12)));

在这里插入图片描述

🍄字符串拓展

🌱三种定义形式

str1 = 'a';
str2 = "a";
# 三引号定义支持换行操作,使用变量接受其就是字符串,不接受便是注释
str3 = """a""";

🌱字符串格式化

正常情况下使用+拼接字符串,但是字符串与数字及其他类型无法由+拼接,所以此时可以通过%s来进行拼接

  • %:占位符
  • s: 要占位的变量
i = 20000;
str2 = "元"
str1 = '3090ti价值%s元' % i;
str2 = '3090ti价值 %s %s' % (i,str2);
print(str1);
print(str2);

多个变量占位用()括起来,按顺序填入,此处是将数字转换为字符串进行占位

在这里插入图片描述

在python中,支持多种数据类型占位,最常用的是这三种:

  • s: 将内容转换为字符串占位
  • d: 将内容转换为整数占位
  • f : 将内容转换为fudianxing占位
🍫 精度控制
i = 20.22;
print("数字:%f"%i);

在这里插入图片描述
我们可以使用辅助符号m.n来控制数据的宽度与精度:

  • m: 控制宽度,要求使用数字(很少使用),设置宽度若小于数据自身,则不生效
  • n : 控制小数点精度,要求使用数字,会进行小数的四舍五入
i = 20.22;
print("宽度为10,精度为2:%10.2f"%i);
print("宽度为10,精度为1:%10.1f"%i);
print("不设宽度,精度为1:%.1f"%i);

在这里插入图片描述

🍫 格式化的另一种写法

使用f内容{变量}的方式进行格式化(f其实就是format格式化的首字)

i = 20.22;
print("宽度为10,精度为2:%10.2f"%i);
print("宽度为10,精度为1:%10.1f"%i);
print("不设宽度,精度为1:%.1f"%i);
print(f"另一种格式化:{i}");

在这里插入图片描述

也可以对表达式进行格式化

拓展:
制表符\t
作用:使多行字符串对齐

🌷 注释

注释分为两类

  • 单行注释:以#开头
  • 多行注释:以一对"""(三引号)引用

🌷 for循环

for循环本质上是遍历序列类型
语法:

for 变量 in 序列类型:
	执行逻辑

序列类型指其内容连续,有序,可使用下标索引的一类数据容器,包括:

  • 字符串
  • 元组
  • 列表

🍄range语法

  1. range(num):从0开始,不包括num本身
for x in range(5):
   print(x)
   #输出结果:0,1,2,3,4
  1. rage(num1,num2):从num1开始,不包括num2本身
for x in range(510):
   print(x)
   #输出结果:5,6,7,8,9
  1. rage(num1,num2,step):从num1开始,步长为step,不包括num2本身
for x in range(5102):
   print(x)
   #输出结果:5,7,9

🌷函数

🍄函数定义

def 函数名(传参):
	"""
	函数说明文档:
	:parm x:形参x的说明
	:parm y:形参y的说明
	:return:返回值的说明
	"""
	函数体
	return 返回值

🍄返回值之None类型

基本上和java并无太大区别,需要注意的是:

当函数未使用return语句返回数据时,依旧有返回值

         python中有一个特殊的字面量:None,其类型为`class 'NoneType',无返回值的函数实质是返回了None这个字面量

def test():
    print("test")

x = test()
print(x)
print(type(x))

在这里插入图片描述

🌱应用场景

None作为一个特殊的字面量,用于表示空,无意义,其有多种应用场景

  1. 用于函数无返回值
  2. 用于if判断上:
    - None等同于flase
    - 一般用于函数中主动返回None,配合if判断做相关判断
  3. 用于声明无内容的变量
    - 定义变量但暂时不需要变量有具体值,可以用None代替

🍄变量作用域

需要注意的是,python若是要在函数中操纵全局变量,可在函数体相关逻辑前使用globa关键字声明此时操纵的是全局变量,而不是同名的临时变量;

i = 1
x = 2


def test():
    global i
    i = 100
    x = 200
    return f"i={i},x={x}"


str = test()
print(str, i, x)

在这里插入图片描述

🌷数据容器

一种可以容纳多份数据数据类型,容纳的每一份数据称之为1个元素,每一个元素,可以是任意类型的数据,如字符串,数字,布尔等。

数据容器根据特点不同,如

  • 是否支持重复元素
  • 是否可修改
  • 是否有序

分为5类:列表(list),元组(tuple),字符串(str),集合(st),字典(dict)

🍄列表(list)-有序可变可重复

# 字面量
[元素1,元素2,元素3...]
# 定义变量
变量名称 = [元素1,元素2,元素3...]
# 定义空列表
变量名称 = []
变量名称 = list()

列表也可嵌套列表,如:
result = [[1,2,3],[4,5,6,]]
这同样是一个列表

🌱列表索引

可使用result[索引]取出对应位置的的数据,和java不同的点在于,python可以从索引-1开始从右向左取值:

list = ["我","喜欢","影"]
print(list[0],list[1],list[2])
print(list[-1],list[-2],list[-3])

在这里插入图片描述

🌱列表常用方法

  • list.index(元素) : 查询某元素下标
  • 列表[下标] = 值 : 修改指定索引下的值
  • 列表.insert[索引,值]: 在指定索引处插入值
  • 列表.append[元素] : 在指定索引后追加一个元素
  • 列表.extend[元素] : 在指定索引后追加一批元素
  • del 列表[索引]: 删除列表指定索引位置的元素
  • 列表.pop[元素] : 取出列表指定索引位置的元素(删除)
  • 列表.remove[元素值] : 删除第一个匹配的元素
  • 列表.clear() : 清空列表
  • 列表.count(元素值) : 统计某元素在列表中的数量
  • len(列表) : 统计列表元素数量

🍄元组(tuple)-有序不可变可重复

元组一旦定义完成便不可修改
场景:
程序内封装数据且不被篡改

# 字面量
(元素1,元素2,元素3...)
# 定义变量
变量名称 = (元素1,元素2,元素3...)
# 定义空元组
变量名称 = ()
变量名称 = tuple()

🍄拓展:数据容器(序列)的切片操作

定义:从一个序列中取出一个子序列
语法:序列[起始下标 : 结束下标 : 步长]
表示从序列中指定位置开始,依次取出元素,到指定位置,得到一个新序列(三个传参皆可省略,可倒序切片)
常用方法: spilt,replace

🍄集合(Set)-无序不可变不可重复

# 字面量
{元素1,元素2,元素3...}
# 定义变量
变量名称 = {元素1,元素2,元素3...}
# 定义空集合
变量名称 = set{}

🌱集合方法

  • 集合.pop() : 从集合中随机取出一个元素
  • 集合1.difference(集合2) : 取出集合1和集合2的差集(得到一个新集合,集合1有集合2没有)
  • 集合1.difference_update(集合2) : 对比两集合,在集合1中删除和集合2相同的元素(集合2不变,集合1 被修改)
  • 集合1.union(集合2) 取并集(得到一个去重)

🍄字典(Dictionary)-无序可变不可重复

# 字面量
{key1:value,key2:value,key3:value}
# 定义变量
变量名称 = {key1:value,key2:value,key3:value}
# 定义空字典
变量名称 = {}
变量名称 = dict{}

🌱字典方法

  • 字典.pop(key) : 从字典中删除键为key的数据
  • 字典.keys : 取出字典中的所有key
  • 字典.clear : 清空字典
  • len(字典) : 统计字典中所含元素数量

🌷拓展

🍄json数据转换

python中json转换仅需引入json模块

  • json.dumps(data) : 将python数据转换为json数据
  • json.load(data) : 将json数据转换为python数据

🍄装饰器

装饰器其实也是一种闭包,其功能就是在不破坏目标函数原有代码和功能的前提下,为目标函数增加新功能

例:
原有代码:

def sleep():
	import random
	import time
	pringt("睡觉中")
	time.sleep(random.randint(1,5))
  • 装饰器一般写法:
def sleep():
	import random
	import time
	pringt("睡觉中")
	time.sleep(random.randint(1,5))

def outer(func):
	def inner():
		print("准备睡觉")
		func()
		print("睡醒")
	return inner
	
# 调用
fn = outer(sleep)
  • 注解
def outer(func):
	def inner():
		print("准备睡觉")
		func()
		print("睡醒")
	return inner
	
# 注解
@outer
def sleep():
	import random
	import time
	pringt("睡觉中")
	time.sleep(random.randint(1,5))
# 调用
sleep()

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

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

相关文章

虚拟机快照

1. 快照有什么作用? 通俗理解:快照就是备份。 2. VMware Workstation 和 VMware Fusion 都支持制作快照去使用 一、快照 保存当前虚拟机状态。可以恢复 二、 在VMware Workstation Pro中制作并还原快照 三、在VMware Fusion Pro中制作并还原快照 快照制…

210天从外包踏进华为跳动那一刻,我泪目了

前言 没有绝对的天才,只有持续不断的付出。对于我们每一个平凡人来说,改变命运只能依靠努力幸运,但如果你不够幸运,那就只能拉高努力的占比。 2021年4月,我有幸成为了华为的一名高级测试工程师,正如标题所…

【软件测试】python接口自动化测试编写脚本,资深测试总结方法,你的实用宝典......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 接口测试&#xff0…

美团前端一面手写面试题

实现斐波那契数列 // 递归 function fn (n){if(n0) return 0if(n1) return 1return fn(n-2)fn(n-1) } // 优化 function fibonacci2(n) {const arr [1, 1, 2];const arrLen arr.length;if (n < arrLen) {return arr[n];}for (let i arrLen; i < n; i) {arr.push(arr[…

vulnhub Kioptrix4

总结&#xff1a;sql注入&#xff0c;受限shell绕过&#xff0c;mysql提权 目录 下载地址 漏洞分析 信息收集 sql注入 ssh登录绕过受限shell 提权 下载地址 Kioptrix4_Hyper_v.rar (Size: 210 MB)Download: http://www.kioptrix.com/dlvm/Kioptrix4_Hyper_v.rarDownload …

Linux驱动开发详细解析

Linux驱动开发详细解析 驱动概念 驱动与底层硬件直接打交道&#xff0c;充当了硬件与应用软件中间的桥梁。 具体任务 读写设备寄存器&#xff08;实现控制的方式&#xff09;完成设备的轮询、中断处理、DMA通信&#xff08;CPU与外设通信的方式&#xff09;进行物理内存向虚…

关于字符设备驱动的通用概念和写法

概述 设备驱动程序可以使用模块的方式动态加载到内核中去。加载模块的方式与以往的应用程序开发有很大的不同。以往在开发应用程序时都有一个 main()函数作为程序的入口点&#xff0c;而在驱动开发时却没有 main()函数&#xff0c;模块在调用 insmod 命令时被加载&#xff0c;…

JVM学习笔记一:类加载子系统

目录 前言 类加载子系统的作用 类加载器角色的位置 类加载器分类 虚拟机自带的加载器 启动类加载器&#xff08;引导类加载器&#xff09; 扩展类加载器 系统类加载器 用户自定义类加载器 什么时候需要自定义类加载器&#xff1f; 如何自定义类加载器&#xff1f; …

【验证码的识别】—— 极验验证码的识别

前言 &#xff08;结尾有彩蛋欧&#xff09; 目前&#xff0c;许多网站采取各种各样的措施来反爬虫&#xff0c;其中一个措施便是使用验证码。随着技术的发展&#xff0c;验证码的花样越来越多。验证码最初是几个数字组合的简单的图形验证码&#xff0c;后来加入了英文字母和混…

《计算机系统基础》——计算机系统导论

文章目录《计算机系统基础》——计算机系统导论计算机的基本组成程序开发与执行过程机器语言汇编语言高级语言程序的转换处理程序的数据流动计算机系统层次结构早期计算机系统1GL2GL现代计算机系统3GL4GL指令集体系结构《计算机系统基础》——计算机系统导论 &#x1f680;接下…

LaTeX中表格过宽解决方案

最近使用LaTeX处理表格时遇到了一件十分棘手的问题&#xff0c;由于内容较多将表格分成了好多列&#xff0c;但将内容填入表格时由于表格宽度过大&#xff0c;导致表格右边溢出了页面无法查看&#xff0c;查阅大量资料与博文后给出如下解决方案&#xff0c;全文代码已部署在Ove…

C#基础练习题,编程题汇总

C#基础练习题&#xff0c;编程题汇总一、C#提取输入的最大整数二、秒数换算为相应的时、分、秒三、C#计算电梯运行用时demo四、C#用一维数组求解问题五、C#程序教小学生学乘法六、C#winfrm简单例题七、C#类继承习题八、C#绘图例子一、C#提取输入的最大整数 编程实现在一行内输…

分布式任务调度(XXL-JOB)

什么是分布式任务调度&#xff1f; 任务调度顾名思义&#xff0c;就是对任务的调度&#xff0c;它是指系统为了完成特定业务&#xff0c;基于给定时间点&#xff0c;给定时间间隔或者给定执行次数自动执行任务。通常任务调度的程序是集成在应用中的&#xff0c;比如&#xff1a…

[译]PostgreSQL16-新特性-新增IO统计视图:pg_stat_io

PostgreSQL16-新特性-新增IO统计视图&#xff1a;pg_stat_io我们DBA常遇到的问题是&#xff1a;如何优化数据库的IO操作&#xff1f;获取PG服务产生的所有IO情况历来都是一个挑战。首先&#xff0c;PG将IO行为范围内为写WAL和读写数据目录(也就是数据文件)。真正的挑战是&#…

解决实际项目中stalled时间过久的问题

背景 在公司参与了一个做度量统计的项目&#xff0c;该项目的特点是页面上的表格、卡片、图标非常多。项目经常出现一种情况&#xff1a;页面加载速度较慢&#xff0c;开始怀疑是由于计算量较大&#xff0c;后端接口相应速度较慢。优化了一版后端接口后&#xff08;加缓存、优…

方法区和元空间有什么关系?

一.什么是方法区&#xff1f; 方法区属于是 JVM 运行时数据区域的一块逻辑区域&#xff0c;是各个线程共享的内存区域。 《Java 虚拟机规范》只是规定了有方法区这么个概念和它的作用&#xff0c;方法区到底要如何实现那就是虚拟机自己要考虑的事情了。也就是说&#xff0c;在…

电子技术——分析放大器的高频响应的有用工具

电子技术——分析放大器的高频响应的有用工具 在前几章我们使用米勒效应估计了CS和CE放大器模型的高频响应 fHf_HfH​ &#xff0c;以及分析了其限制和影响因素。然而&#xff0c;这个方法不能有效的处理负载是容性负载 CLC_LCL​ 的情况。同时&#xff0c;这个方法不能扩展到更…

【FPGA】Verilog:实现十六进制七段数码管显示 | 7-Segment Display

写在前面&#xff1a;本章主要内容为理解七点数码管显示的概念&#xff0c;并使用 Verilog 实现。生成输入信号后通过仿真确认各门的动作&#xff0c;通过 FPGA 检查在 Verilog 中实现的电路的操作。 Ⅰ. 前置知识 七段数码管是利用多重输出功能的非常有用的元件。该元件用于字…

spring+springboot+mybatis志愿者报名系统 ssm java

本盐城疫情防控志愿者报名系统以SSM作为框架&#xff0c;B/S模式以及MySql作为后台运行的数据库。本系统主要包括以下功能模块&#xff1a;防疫视频、优秀事迹、报名条件、在线报名等模块&#xff0c;通过这些模块的实现能够基本满足日常盐城疫情防控的操作。 根据盐城疫情防控…

基于微信小程序的中国各地美食推荐平台小程序

文末联系获取源码 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.…