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.hqwc.cn/news/513399.html

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

相关文章

深入了解 Android 中的 RelativeLayout 布局

RelativeLayout 是 Android 中常用的布局之一&#xff0c;它允许开发者基于子视图之间的相对位置来排列界面元素。在这篇博客中&#xff0c;我们将详细介绍 RelativeLayout 的各种属性&#xff0c;并提供代码示例和解释。 第一个示例 <RelativeLayoutandroid:layout_width…

数据分类分级场景建设思路

数据分类分级是数据安全治理实践过程中的关键场景&#xff0c;是数据安全工作的桥头堡和必选题。本指南结合行业实践&#xff0c;提出如下图 所示的七步走建设思路&#xff0c;可供刚开展数据分类分级工作的组织参考。 来源&#xff1a;中国信息通信研究院 数据分类分级“七步…

VMwareWorkstation17.0虚拟机搭建Windows 98虚拟机(完整安装步骤详细图文教程)

VMwareWorkstation17.0虚拟机搭建Windows 98虚拟机&#xff08;完整安装步骤详细图文教程&#xff09; 前言1.当年古董是啥样的?2.当年玩啥游戏&#xff1f;TOP1 星际争霸TOP2 红警TOP3 仙剑奇侠传其他游戏 3.Windows 98安装准备工作3.1 Windows 98下载地址3.2 DOS软盘版下载地…

算法学习03:前缀和与差分(互逆)

算法学习03&#xff1a;前缀和与差分&#xff08;互逆&#xff09; 文章目录 算法学习03&#xff1a;前缀和与差分&#xff08;互逆&#xff09;前言一、前缀和1.一维2.二维 二、差分1.一维在这里插入图片描述2.二维在这里插入图片描述 ![在这里插入图片描述](https://img-blog…

Java 解决异步 @Async 失效问题

1.问题描述 使用Async进行异步处理时&#xff0c;异步没有生效 2.原因分析 经过排查后发现是因为使用Async的方法没有跨2个Service导致的 错误示例 控制器接口 > 直接调用 custAdminService.importCBuy() 3.解决方案 Controller接口不变&#xff0c;多添加一层Service&a…

1.Zookeeper理论基础

1.Zookeeper的基本概念 是一个分布式应用协调框架 &#xff0c;java编写的。客户端 /服务端 的架构模式。CP设计(一致性&#xff0c;分区容错) 它主要是用来解决分布式应用中经常遇到的一些数据管理问题&#xff0c;如&#xff1a;服务注册服务、状态同步服务、集群管理、分布…

SQL Server 阻止了对组件 ‘Ole Automation Procedures‘ 的 过程‘sys.sp_OACreate‘ 的访问

SQL Server 阻止了对组件 Ole Automation Procedures 的 过程sys.sp_OACreate 的访问&#xff0c;因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 Ole Automation Procedures。有关启用 Ole Automation Procedures 的详细信息&a…

为什么MySQL中多表联查效率低,连接查询实现的原理是什么?

MySQL中多表联查效率低的原因主要涉及到以下几个方面&#xff1a; 数据量大: 当多个表通过连接查询时&#xff0c;如果这些表的数据量很大&#xff0c;那么查询就需要处理更多的数据&#xff0c;这自然会降低查询效率。 连接操作复杂性: 连接查询需要对参与连接的每个表中的数…

平衡搜索二叉树—AVL树

一、定义&#xff1a; 为了避免搜索二叉树的高度增长过快&#xff0c;降低二叉树的性能&#xff0c;规定在插入和删除二叉树的结点的时候&#xff0c;任何结点左右子树的高度差绝对值不超过1&#xff0c;这样的二叉树被称为平衡二叉树&#xff08;balanced Binary Tree&#xf…

Unity2023.1.19_ECS_DOTS

Unity2023.1.19_ECS_DOTS 盲学-盲目的学习&#xff1a; 懒着自己整理就看看别人整理的吧&#xff0c;整合一下逻辑通了不少&#xff1a; DOTS/data oriented technology stack-面向数据的技术栈 ECS/Entities-Component-System Unity-Entities包 Entities提供ECS架构面向数…

2024年3月6日 十二生肖 今日运势

小运播报&#xff1a;2024年3月6日&#xff0c;星期三&#xff0c;农历正月廿六 &#xff08;甲辰年丁卯月己巳日&#xff09;&#xff0c;法定工作日。 红榜生肖&#xff1a;牛、猴、鸡 需要注意&#xff1a;鼠、虎、猪 喜神方位&#xff1a;东北方 财神方位&#xff1a;正…

Hack The Box-Bizness

目录 信息收集 nmap dirsearch WEB Get shell 提权 get user flag get root flag 信息收集 nmap 端口扫描┌──(root㉿ru)-[~/kali/hackthebox] └─# nmap -p- 10.10.11.252 --min-rate 10000 -oA port Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-04 1…