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是追加在后面

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

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

相关文章

代码随想录 回溯算法-组合

目录 77.组合 216.组合总和||| 17.电话号码的字母组合 39.组合总和 40.组合总和|| 77.组合 77. 组合 中等 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;n 4…

【论文精读】大语言模型融合知识图谱的问答系统研究

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

一文看懂 | 机器视觉前景

机器视觉概述&#xff1a;机器视觉是人工智能发展中的一个重要分支&#xff0c;其主要目标是用机器替代人眼进行测量和判断。 机器视觉系统通过图像摄取装置将目标转换成图像信号&#xff0c;然后传送给专用的图像处理系统&#xff0c;最终得到目标的形态信息。 全球机器视觉…

链路负载均衡之策略路由

一、策略路由的概念 一般来说&#xff0c;防火墙是根据目的地址查看路由&#xff0c;这种情况下只能根据报文的目的地址为用户提供服务&#xff0c;没办法更加灵活对内网用户进行区分&#xff0c;让不同用户流量走不同的链路转发&#xff0c;如根据源地址、应用协议等区分流量…

照片 200K 的尺寸是多大?如何调整照片到200k?

在数字时代&#xff0c;我们经常需要在互联网上上传和分享照片。在上传照片时&#xff0c;我们常常会遇到文件大小的限制&#xff0c;通常以“K”&#xff08;千字节&#xff09;为单位。如果您需要上传的照片大小为 200K&#xff0c;那么它的实际尺寸是多大呢&#xff1f;本文…

栈【stack】 栈的【STL】运用 【单调栈】 【单调栈】的详细解释【图文讲解】 洛谷P5788 【模板】单调栈 【单调队列】

文章目录 栈的定义栈的STL运用 单调栈 & 单调队列单调栈的详细解释【图文讲解】例题&#xff1a;洛谷P5788 【模板】单调栈code↓洛谷P5788 【模板】单调栈 AC 栈的定义 栈的修改与访问是按照后进先出的原则进行的 栈通常被称为是后进先出&#xff08;last in first out&…

centos ps命令

1. ps &#xff1a; Process Status的缩写&#xff0c;用于查询系统的进程状态 2. 常用参数&#xff1a;-ef 返回系统中所有用户的所有进程的完整列表 -A 显示所有进程&#xff08;同-e&#xff09; -a 显示当前终端的所有进程 -u 显示进程的用户信息 -o 以用户…

33、一致性哈希算法分区

33、一致性哈希算法分区 一、背景二、介绍三、步骤1、算法构建一致性哈希环2、Redis服务器IP节点映射3、key落到服务器的落键规则 四、优点1、一致性哈希算法的容错性2、一致性哈希算法的扩展性 五、缺点1、一致性哈希算法的数据倾斜问题2、拓展 六、总结 一、背景 一致性哈希…

sylar高性能服务器-日志(P57-P60)内容记录

文章目录 P57-P60&#xff1a;序列化模块Varint&#xff08;编码&#xff09;Zigzag&#xff08;压缩&#xff09;class ByteArrayNode&#xff08;链表结构&#xff09;成员变量构造函数写入读取setPositionaddCapacity 测试 P57-P60&#xff1a;序列化模块 ​ 序列化模块通常…

某酷ckey140逆向(之前下架了重新上传补发)

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;不提供完整代码&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018…

Python - Pycharm 配置 autopep8 并设置快捷键

什么是 PEP8 官方&#xff1a;PEP 8 – Style Guide for Python Code | peps.python.org PEP8 是 Python 官方推出的一套编码的规范&#xff0c;只要代码不符合它的规范&#xff0c;就会有相应的提示&#xff0c;还可以让代码自动的格式化 Pycharm 自带的代码格式化 ​ 但这…

2024年Android笔试题总,如何系统全面性学习Android语言

开头 让我们一起来看看&#xff0c;字节跳动的第三面&#xff0c;面试官都问了什么&#xff1f;&#xff08;第一二面的题目及答案已整理&#xff0c;需要的可以在文末领取&#xff09; 从七月中旬开始&#xff0c;我前前后后差不多一共投递了八十份简历&#xff0c;到目前为…

章鱼网络进展月报 | 2024.2.1-2.29

章鱼网络大事摘要 1、Omnity 完成了核心组件的原型开发&#xff0c;正在测试&#xff0c;未来将首先支持 Runes 资产跨链。 2、$NEAR Restaking 质押总量超过400万美元。 3、章鱼网络受邀参加 ETHDenver 2024&#xff0c;并且与 ICP 共同组织活动&#xff0c;介绍 Omnity 的…

【C语言】linux内核netif_receive_skb

一、中文注释 /*** netif_receive_skb - 从网络处理接收缓冲区* skb: 要处理的缓冲区** netif_receive_skb() 是主要的数据接收处理函数。* 它总是成功的。由于拥塞控制或协议层的原因&#xff0c;缓冲区可能在处理过程中被丢弃。** 这个函数只能在软中断&#xff08;softirq&…

guava的使用

对数组操作前判断是否会越界&#xff1a; List<String> s new ArrayList<>();System.out.println(Preconditions.checkElementIndex(2,s.size(),"下标长度超过了")); 是否为空 String s null;System.out.println(Preconditions.checkNotNull(s)); 判空…

Android使用Sensor.TYPE_STEP_COUNTER计步器传感器进行步数统计

1、首先&#xff0c;申请权限 必须声明 ACTIVITY_RECOGNITION 权限&#xff0c;以便您的应用在运行 Android 10 (API 级别 29) 或更高版本的设备上使用此传感器。 Manifest.xml也记得声明 if (Build.VERSION.SDK_INT > Build.VERSION_CODES.P) {Log.d(TAG, "[权限]&quo…

Docker的安装跟基础使用一篇文章包会

目录 国内源安装新版本 1、清理环境 2、配置docker yum源 3、安装启动 4、启动Docker服务 5、修改docker数据存放位置 6、配置加速器 现在我们已经完成了docker的安装和初始配置。以下为基本测试使用 自带源安装的版本太低 docker官方源安装的话速度太慢了 所以本篇文…

iOS 自动化测试踩坑(一): 技术方案、环境配置与落地实践

移动端的自动化测试&#xff0c;最常见的是 Android 自动化测试&#xff0c;我个人觉得 Android 的测试优先级会更高&#xff0c;也更开放&#xff0c;更容易测试&#xff1b;而 iOS 相较于 Android 要安全稳定的多&#xff0c;但也是一个必须测试的方向&#xff0c;这个系列文…

STM32(18)I2C

串口通信缺点 一个设备就需要一个串口&#xff0c;单片机可能没有那么多串口外设 总线/非总线 主机&#xff1a;负责管理总线&#xff0c;可控制波特率、数据的通信方向 波特率&#xff1a;由主机产生波特率信号 数据的传输 每个从机都有7位地址&#xff0c;最后移位是读&a…

力扣--动态规划516.最长回文子序列

思路分析&#xff1a; 创建一个二维动态规划表dp&#xff0c;其中dp[i][j]表示在子串s[i...j]中的最长回文子序列的长度。初始化基本情况&#xff1a;对角线上的元素dp[i][i]都为1&#xff0c;因为单个字符本身就是长度为1的回文子序列。从字符串末尾向前遍历&#xff0c;填充…