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

python基础——基础语法

文章目录

  • 一、基础知识
    • 1、字面量
    • 2、常用值类型
    • 3、注释
    • 4、输入输出
    • 5、数据类型转换
    • 6、其他
  • 二、字符串拓展
    • 1、字符串定义
    • 2、字符串拼接
    • 3、字符串格式化
    • 4、格式化精度控制
  • 三、条件/循环语句
    • 1、if
    • 2、while
    • 3、for循环
  • 四、函数
    • 1、函数定义
    • 2、函数说明文档
    • 3、global关键字
  • 五、数据容器
    • 1、概念
    • 2、列表(list)
    • 3、元组(tuple)
    • 4、字符串(str)
    • 5、序列的切片操作
    • 6、集合(set)
    • 7、字典(dict)
    • 8、通用操作
  • 六、文件操作
    • 1、常见打开模式
    • 2、读取操作
    • 3、写文件

一、基础知识

1、字面量

在代码中,被写下来固定的值,称为字面量。

2、常用值类型

在这里插入图片描述

  • type(变量/字面量) 可看变量类型

3、注释

  • 单行注释:#
  • 多行注释:一堆三个双引号
"""python
"""

4、输入输出

1.input
name = input("提示内容")  //输入全是字符串,后续需要类型转换
2.print
money = 50
print("python")
print("钱包有:",money,"元")

5、数据类型转换

int(x)  
float(x)
str(x)

6、其他

1.python变量命名大小写敏感
2.**是指数,a**b表示a的b次方,还可以a**=b

二、字符串拓展

1、字符串定义

单/双/三引号都可以

/可以使用转义字符解除引号的效用
name = 'python'   //里面可以内含双引号
name = "python"		//里面可以内含单引号
name = """		python
"""

2、字符串拼接

1.print('python' + 'is easy')  输出python is easy
2.age = '18'
print('I am' + age+'years old')  输出I am 18 years old
3.'python' +18是不行的,字符串不能通过+与非字符串类型拼接

3、字符串格式化

//%为占位符,将后面变量占到前面所需要的地方
1.age = '18'
message = 'I am %s years old' % age
2.不同类型,多种变量都可以
age1 = 18,age2=20 
message = "I am %s,she is %s" % (age1,age2) //此时整型转换成字符串格式进去3.f"内容{变量}" 快速格式化,不过此时无法做精度控制
message = f"I am {age1},she is {age2}"4.表达式格式化
messgae = "I am %d years old" % (1*1)
messgae = f"I am {1*1} years old" 

常见占位符
在这里插入图片描述

4、格式化精度控制

m.n来控制数据的宽度和精度

  • m,控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效(小数和小数点都进入精度计算)。
    宽度太多从左用控制替代,比如%3d,而整数是2,写成[空格][空格]2
  • .n,控制小数点精度,要求是数字,会进行小数的四舍五入

三、条件/循环语句

1、if

1.注意缩进~
if 要判断的条件:   //冒号不要忘记程序
elif 要判断条件:程序
else:程序
2.案例
import random
age = random.randint(1,100)
if age > 10 :print("11")
elif age > 8 :print("22")
else:print("33")

2、while

1.条件满足进入循环
while 条件:程序

3、for循环

与其他语言不太一样,对内容进行逐个处理

1.基础语法
for 临时变量 in 待处理数据集:程序
//待处理的数据集是序列类型,其内容是一个个依次取出来的一种类型,包括字符串,列表,元组等
案例:
name = "BUAA"
for x in name:print(x)
2.range语句
range(5)得到的是一个序列:[0,1,2,3,4]
range(5,10)得到的是[5,6,7,8,9]
range(5,10,2)得到的是[5,7,9]
与for结合
for x in range(5)程序

四、函数

1、函数定义

1.定义
def定义带有名称的函数
def 函数名(传入参数):函数体return 返回值//无return时,是有返回值的,返回一个特殊字面量,类型是<class 'NoneType'>
//手动返回return none也行
//if判断中,none等同于false,一般函数中主动返回none,与if配合处理
//无内容变量,暂时不需要值,可以name = none
2.多返回值
def 函数名(传入参数):return 返回值1,返回值2
接收:var1,var2 = 函数名(参数)
3.函数调用
一个函数fnc(name,age,gender)
位置传参:可以fnc("b",18,"男")这样按照位置接收
关键字传参:可以fnc(age=18,gender="男",name="a")接收(不按位置)
混用:还可以func("a",gender="男",age=18)接收,混用是位置参数必须在前
4.缺省参数
def fnc(name,age,gender="男")  //设置默认值
调用时若不传参采用默认值
缺省参数必须统一在位置参数后面
5.不定长参数 
位置传递:def func(*args)   args是元组类型
关键字传递:def fnc(**kwargs)  kwargs是字典类型,传参必须是key=value形式
6.匿名函数
lambda定义匿名函数
lambda 传入参数:函数体   //函数体只能写一行,函数体直接将结果return

2、函数说明文档

def 函数名(传入参数):"""函数整体说明:param x:形参x说明:param y:形参y说明:return:返回值说明"""函数体return 返回值

3、global关键字

num = 200
def func():global num//此时num指定指代的全局变量num=200num=300  //num改动全局变量num就会变

五、数据容器

1、概念

批量存储数据。根据特点不同,比如是否支持重复元素,是否可以修改,是否有序等,分为五类,列表(list),元组(tuple),字符串(str),集合(set),字典(dict)

2、列表(list)

1.定义:变量名称 = [元素1,元素2,元素3,...]
2.空列表:变量名称 = [ ]    变量名称 = list()
//列表存储的数据可以为不同数据类型,且支持嵌套
3.读:arr[0]
或反向索引:从后向前开始,依次递减(-1,-2,-3...)

列表方法
在这里插入图片描述

3、元组(tuple)

可以封装多个,不同类型的元素,唯一区别就是一旦定义完成就不可以修改了。

1.定义:变量名称 = (元素1,元素2,元素3,...)
2.空列表:变量名称 = ()   变量名称 = tuple()
3.定义单个元素:变量名称 = (元素1,)   //单元素一定要加括号,不然类型是字符串
//元组内部也支持嵌套
4.读:arr[0]

元组方法
在这里插入图片描述
注意点:

//元组内部嵌套list,list是可以修改的
arr = (1,2,["1","2","3"])
arr[2][1]="4"是可以的

4、字符串(str)

1.str = "abcd"
可以通过str[0]读取
2.对于字符串的修改都无法在原来的基础上,只能得到新的字符串

字符串方法
在这里插入图片描述

5、序列的切片操作

  • 序列是指内容连续,有序,可使用下标索引的一类数据容器。
  • 列表、元组、字符串都可视为序列
  • 切片操作:从一个序列中,取出一个子序列
    语法:[起始下标:结束下标:步长]
    • 起始下标表示从何处开始,可以留空,留空视作从头开始
    • 结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾
    • 步长表示,依次取元素的间隔
      • 步长1表示,一个个取元素
      • 步长2表示,每次跳过1个元素取
      • 步长N表示,每次跳过N-1个元素取
      • 步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)

6、集合(set)

  • 特点:不支持元素重复,内容无序
1.定义:变量名称 = {元素1,元素2,元素3,...}
2.空集合:变量名称 = {}   变量名称 = set{}
//列表存储的数据可以为不同数据类型,且支持嵌套
3.读:集合无序,因此不支持下标索引访问
或反向索引:从后向前开始,依次递减(-1,-2,-3...)

集合方法
在这里插入图片描述

7、字典(dict)

1.定义:变量名称 = {key:value,key:value,....}
2.空字典:变量名称 = {}   变量名称 = dict{}
//字典的key不允许重复,重复添加等于覆盖原有数据。
//允许嵌套
3.读取:arr[key]
4.for x in dict: //每次取出来的是key

常见方法
在这里插入图片描述

8、通用操作

  • 类型转换
list(容器)   //字典转列表得到keys
str(容器)
tuple(容器)
set(容器)
其他容器类型很难转换成字典

在这里插入图片描述

六、文件操作

1、常见打开模式

在这里插入图片描述

2、读取操作

1.打开
open(name,mode,encoding)
name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)
mode:设置打开文件的模式(访问模式):只读、写入、追加等。
encoding:编码格式(推荐使用UTF-8)
# encoding的顺序不是第三位,所以不能用位置参数,用关键字参数直接指定
eg.f = open('python.txt','r',encoding='utf-8') 
2.读取
f.read(num)
num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据。
一次读取后则下次是从上次读取的地方继续读取
f.readlines()
readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。
f.readline()一次读取一行内容  一次读取后则下次是从上次读取的地方继续读取
3.关闭
f.close()  //不关闭则文件会一直被python文件占用
4.
with open(name,mode,encoding) as f:程序
通过在with open的语句块中对文件进行操作。可以在操作完成后自动关闭close文件,避免遗忘掉close方法

3、写文件

  • 直接调用write,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区
  • 当调用flush的时候,内容会真正写入文件
  • 这样做是避免频繁的操作硬盘,导致效率下降(攒一堆,一次性写磁盘)
1.打开文件 f = open(name,'w'/a)
2.写入f.write(内容)
3.f.flush()
//注意f.close内置了flush方法,因此关闭前也会刷新
//w和a在文件不存在都会创建文件,不过文件存在w会清空文件再写,a是追加在后面

相关文章:

python基础——基础语法

文章目录 一、基础知识1、字面量2、常用值类型3、注释4、输入输出5、数据类型转换6、其他 二、字符串拓展1、字符串定义2、字符串拼接3、字符串格式化4、格式化精度控制 三、条件/循环语句1、if2、while3、for循环 四、函数1、函数定义2、函数说明文档3、global关键字 五、数据…...

vue3 vue-i18n 多语言

1. 安装 npm install vue-i18n -s 2. 引入main.js import { createI18n } from vue-i18n import messages from ./i18n/index const i18n createI18n({legacy: false,locale: Cookies.get(language) || en_us, // set localefallbackLocale: en_us, // set fallback local…...

二级水平导航菜单栏的实现

1. 这个是本人设计的一带一路的二级水平导航栏HTML代码&#xff1b; 这里最后实现的效果是鼠标悬停在导航栏上面&#xff0c;就会显示下面的4个部分页面&#xff0c;这里只是以评论热 点作为例子&#xff0c;其他的类似&#xff1b; 2.首先要设计DIV&#xff0c;然后利用无…...

在GitLab Python库中,mr.changes()和mr.diffs()的区别

在GitLab Python库中&#xff0c;mr.changes()和mr.diffs()都用于获取合并请求&#xff08;Merge Request&#xff09;中的文件更改信息&#xff0c;但它们之间有一些区别&#xff1a; mr.changes()&#xff1a; mr.changes() 方法返回合并请求中所有文件的更改信息。返回的结果…...

JavaScript | 【讨论】微软早在2022年已经停用ie的今天,js开发还需要考虑ie9以下的情况嘛?

CSDN的C知道机器回复&#xff1a; 在进行JavaScript开发时&#xff0c;通常需要考虑IE9以下的况。尽管IE9以下的浏览器在市场份额上逐渐减少&#xff0c;但仍然有一部分用户在使用这些旧版本的浏览器。为了确保网站或应用在这些浏览器上能够正常运行&#xff0c;以下是一些需要…...

网康科技 NS-ASG 应用安全网关 SQL注入漏洞复现(CVE-2024-2022)

0x01 产品简介 网康科技的NS-ASG应用安全网关是一款软硬件一体化的产品,集成了SSL和IPSec,旨在保障业务访问的安全性,适配所有移动终端,提供多种链路均衡和选择技术,支持多种认证方式灵活组合,以及内置短信认证、LDAP令牌、USB KEY等多达13种认证方式。 0x02 漏洞概述 …...

英福康INFICON软件真空Tware32中文操作手册

英福康INFICON软件真空Tware32中文操作手册...

UnityAPI的学习——Quaternion类

Quaternion又称为四元数&#xff0c;由x、y、z和w这4个分量组成&#xff0c;属于struct类型。 在Unity中&#xff0c;用Quaternion来存储和表示对象的旋转角度。 Quaternion类实例属性 在Quaternion类中&#xff0c;涉及的实例属性主要有eulerAngles eulerAngles属性&#x…...

chromedriverUnable to obtain driver for chrome using ,selenium找不到chromedriver

1、下载chromedriver chromedriver下载网址&#xff1a;CNPM Binaries Mirror 老版本在&#xff1a;chromedriver/ 较新版本在&#xff1a;chrome-for-testing/ 2、设置了环境变量还是找不到chromedriverUnable to obtain driver for chrome using NoSuchDriverException:…...

剑指offer面试算法题目,自己总结的

JZ31 栈的压入、弹出序列-C++-CSDN博客 剑指 Offer(C++版本)系列:从尾到头打印单链表(C++)-CSDN博客 剑指offer》15--二进制中1的个数[C++]-CSDN博客 《剑指offer》14--剪绳子(整数拆分)[C++]-CSDN博客 剑指 Offer 12. 矩阵中的路径-CSDN博客 C++--机器人的运动范围…...

原生IP是什么?如何测试代理是不是原生IP?

一、什么是原生IP 原生IP地址是互联网服务提供商&#xff08;ISP&#xff09;直接分配给用户的真实IP地址&#xff0c;无需代理或转发。这类IP的注册国家与IP所在服务器的注册地相符。这种IP地址直接与用户的设备或网络关联&#xff0c;不会被任何中间服务器或代理转发或隐藏。…...

1、MQ_介绍、优缺点、类型等

MQ介绍 1. MQ概述 MQ&#xff08;Message Queue&#xff09;&#xff1a;消息队列&#xff0c;是基础数据结构中FIFO&#xff08;first in first out&#xff09;的一种数据结构。一般用来解决流量削峰、应用解耦、异步处理等问题&#xff0c;实现高性能&#xff0c;高可用&a…...

Go-gin-example 第三部分 编写一个简单的文件日志系统

文章目录 本文目标新建logging包file.go编写log文件当前目录结构 接入自定义的log功能验证功能 本文目标 在上一节中&#xff0c;我们解决了 API’s 可以任意访问的问题&#xff0c;那么我们现在还有一个问题&#xff0c;就是我们的日志&#xff0c;都是输出到控制台上的&…...

SQL中如何添加数据

SQL中如何添加数据 一、SQL中如何添加数据&#xff08;方法汇总&#xff09;二、SQL中如何添加数据&#xff08;方法详细解说&#xff09;1. 使用SQL脚本&#xff08;推荐&#xff09;1.1 在表中插入1.1.1 **第一种形式**1.1.2 **第二种形式**SQL INSERT INTO 语法示例SQL INSE…...

如何更好的理解设计模式之桥接模式

桥接模式 点奶茶的时候, 我们一般选择原味奶茶/牛奶奶茶/咸味奶茶 现在假设我们也有这些已经实现好的奶茶类, 且这个奶茶类仅仅就是一个类, 什么也没有, 不可改动 类似 class 奶茶{ }class 原味奶茶 extends 奶茶{ }但是奶茶也分大杯奶茶, 中杯奶茶, 小杯奶茶, 如果我们要实现…...

归并排序

参考链接 排序算法&#xff1a;归并排序【图解代码】_哔哩哔哩_bilibili #include <stdio.h> #include <stdlib.h>// 合并 void merge(int arr[], int tempArr[], int left, int mid, int right) {// 标记左半区第一个未排序的元素int l_pos left;// 标记右半区…...

ELF 1技术贴|在NXP源码基础上适配开发板的按键功能

本次源代码适配是在NXP i.MX6ULL EVK评估板的Linux内核源代码&#xff08;特定版本号为Linux-imx_4.1.15&#xff09;的基础中展开的。 首要任务集中在对功能接口引脚配置的精细调整&#xff0c;确保其能无缝匹配至ELF 1开发板。接下来&#xff0c;我们将详细阐述适配过程中关…...

Linux:kubernetes(k8s)pod的基础操作(6)

Linux&#xff1a;kubernetes&#xff08;k8s&#xff09;允许在任意节点使用kubectl命令&#xff08;5&#xff09;-CSDN博客https://blog.csdn.net/w14768855/article/details/136460090?spm1001.2014.3001.5501 我在前两张进行了基础环境的一系列搭建&#xff0c;现在就正…...

【Docker】掌握 Docker 镜像操作:从基础到进阶

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Linux ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 结语 我的其他博客 前言 在现代软件开发和部署中&#xff0c;容器化技术已经成为不可或缺的一部分。而 Docker 作为最流行的容器化…...

flink重温笔记(十一):Flink 高级 API 开发——flink 四大基石之 Checkpoint(详解存储后端)

Flink学习笔记 前言&#xff1a;今天是学习 flink 的第 11 天啦&#xff01;学习了 flink 四大基石之 Checkpoint &#xff08;检查点&#xff09;&#xff0c;主要是解决大数据领域持久化中间结果数据&#xff0c;以及取消任务&#xff0c;下次启动人可以恢复累加数据问题&…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看

文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...