python(自用查看版)

目录

1.注意事项

1.1 python的除法不是整除,得到的是浮点数

1.2算术符号基于数学的算术优先级。具体可自行查看。

1.3注释

1.4缩进

1.5换行

1.6常见关键字

1.7续行符

1.8报错

1.9赋值

1.10比较运算符

2.常量和表达式

3.变量

4.数据类型 

4.1整型int

4.2浮点数float

4.3字符串str

4.4bool类型

4.5动态类型

5.输入输出

5.1输入

​编辑

5.2输出

6.运算符

优先级

 6.1算术运算符

7.条件语句

8.循环语句

9.列表

10.字符串

11.元组

12.集合

13.字典 

14.函数()

15方便函数 

1.round()

2.random

16类

17文件


注意,本系列不会讲太过于详细的内容,是基于已经学过c语言或java或c++的基础上扩展学习的。

1.注意事项

1.1 python的除法不是整除,得到的是浮点数

而且编译器对于浮点数,基于IEEE754的标准,所以浮点数末尾不一定符合四舍五入的规则

1.2算术符号基于数学的算术优先级。具体可自行查看。

1.3注释

#单行注释

多行注释可以用三对双引号\单引号

#33333

"""3333"""

'3

1.4缩进

TAB键,也可空格键,4个空格表示一级缩进

1.5换行

一行代码不易过多,官方建议不超过79。

可以用()[]{},内部的行会进行隐式连接。


1.6常见关键字

False,await,else,import,pass,None,break,except,in,raise,True,class,finally,is,return,and,continue

for,lambda,try,as,def,from,

1.7续行符

用\

s2="dwdaawda\
wdwda"

1.8报错

语法错误和运行错误

1.9赋值

a=x=z=1
b,c=1,2
#x,y,z==1
#b=1,c=2
res=a+(g:=2)
#3

1.10比较运算符

可以连用,比如1<a<3,早期版本可能不支持

如果不支持,可以用and。

还支持and or not

2.常量和表达式

print(1+2-3)

1+2-3是表达式,运算结果是返回值。1 2 3是字面值常量

+ - / *是运算符/操作符

注意,**是用来计算次方数。比如3**4就是3的4次方'

//是整除

%是取余

3.变量

avb=(3+4+5)/2
print(avb)

avb就是一个变量(python也可称为标识符),用来存数据,可以自由修改。

标识符名命名规则:

1.字母、下划线、数字命名,且数字不能开头。

2.区分大小写。

3.不能用关键字

4.数据类型 

complex复数类型,列表类型list,元祖类型tuple,dict字典类型,集合类型set这些类型以后再说明

type关键字可以输出变量或常量的类型

schoolnumber =23210802019
c:int= 23232
niii=3.4
Name="天上地上我为尊"
x=True
print(Name)
print(schoolnumber)
print(type(schoolnumber))
if (x):print(1)

变量的类型由初始化的数据决定,但可以强制确定类型。

注意,根据后面传的数据,变量的类型可以改变

另外还可以强制转换,只取整数部分

a:int=1
b=0.9;
a=int(b)print(a)
//0

字符串str(),浮点型float()

4.1整型int

范围“无穷”,根据要表示的数据大小,自动扩容(分配更多的字节)

因此无需long、bite、short等类型。如上面的schoolnumber

4.2浮点数float

等同于c++/java的double,8字节。如上面的niii

用e\E表示底数10

4.3字符串str

单引号双引号都可以。python对于字符和字符串都是用一个类型存的

之所以有两类,是因为对于:  23231241‘231231231’

这样的字符,我们如果都用"",就会识别错误,所以对于内部的引用,可以用‘’

print("dwadwad'dwdawd'")

注意,3个单引号和3个多引号可以放在更多复杂的文本中

len关键字可以返回字符串的长度len>=字符串长度
 

print(len(Name))

字符串可以用+拼接
 

s1="sdwda"
s2="dwdaawda"
print(s1+s2)

不影响原来的s1和s2。

另外字符串和数字不能相加

也是

4.4bool类型

只有True和False两种类型,只占一个字节,True==1,False==0

x=True
if (x):print(1)

4.5动态类型

a=1
print(a)a="dwdawd"print(a)

就是说在运行中,变量的类型可以根据存储的数据改变

5.输入输出

5.1输入

输入用Input

input([prompt])

prompt是给用户看的提示信息

接受一个用户输入的字符串数据

n=input("请输入:")
print(f"你输入的是:{n}")

因为默认取到的是字符串数据,如果不需要计算,可以直接用

如果需要计算,就强转类型

5.2输出

输出用print(*object,set='  ',end='\n',file=sys.stdout)

第一个参数是输出的内容(可以用','来输出多个内容)。

set是连续输出多个内容时,终端上内容间的间隔

end是输出的时候的结尾,比如默认是换行符

file是输出的位置,默认是输出在python默认的终端上

print(f"a={a}")
#a=10f是格式化字符串
{}可以放入变量、值、表达式
print("x{:.2f}",a)//可以让a只带2个小数点

6.运算符

优先级

懒得手打了,这是菜鸟上的。相较于c++,我只写有变化的。

 6.1算术运算符

+ - * / % ** //

%取余,**次方(支持小数和整数次方),//整除(向下取整),/浮点除

/0或//0会抛异常,报错,抛异常之后,程序会直接终止

整数除整数,如果除不尽,会出现小数 

注意,浮点数相加可能会有误差

如果要强行验证
 

a=0.1+0.2
b=0.3
if(-0.000001<(a-b)<0.000001):print("1")
else:print("2")

7.条件语句

if(computer==0):if(human==1):print("电脑胜利")elif (human==2):print("玩家胜利")elif (human==0):print("双方平手")
elif (computer==1):if (human == 2):print("电脑胜利")elif (human == 0):print("玩家胜利")elif (human == 1):print("双方平手")
elif (computer==2):if (human == 0):print("电脑胜利")elif (human == 1):print("玩家胜利")elif (human == 2):print("双方平手")

else是除此之外

8.循环语句

import randomcomputer=random.randint(0,100)
left=0
right=100
flag=0
for index in range(0,5):guest=int(input())if(guest>computer):right=guestprint(f"太大了,数字范围缩小到{left}~{right}")elif (guest<computer):left=guestprint(f"太小了,数字范围缩小到{left}~{right}")elif(guest==computer):print("恭喜答对!")flag=1break
if(flag==0):print(f"废物,这都猜不中,是{computer}")
while(1):print()break

break依旧是用来跳出循坏

range是左闭右开,默认是每次+1

9.列表

mp=list()//空列表
mp=[]//空列表
mp[2]//下标引用,0~
mp[2:4]//切片,下标2到下标3(包含)
mp.sort()可以排序
a=sorted(mp)//不对原始列表影响的排序
max(mp)//可以找出列表里的最大值
min(mp)//最小值
mp.reverse()//不返回新值,直接修改原始内容,排序
sum(mp)//可以算里面的内容和
len(mp)//元素个数和
mp.append()//添加元素

10.字符串

str1=str1.replace(',','.')//替换str1里的,都为.
//注意,不对原始修改,可以像上面直接赋值给原来的变量名
str1=str1.split('m')//可以以m为间隔分割,返回一个列表
对同一变量,可以在同一行连续操作
str1=str1.replace(',','.').split('.')
可以切片操作
str1[2:]

11.元组

mp=tuple()//空元组
//元组不能修改

12.集合

mp=set()//集合

13.字典 

d1=dict()
d2=dict({"w":1,"3":3,"2":4})
d={"w":1,"2":3,"3":4}
print(d.get("w"))
print(d["w"])

key()所有键,values()所有值,items()所有元素

14.函数()

定义方式

def aaa(a=2):#函数体#返回 return ll

15方便函数 

1.round()

可以用来控制小数

mn=round(mn,2)

2.random

其中一个用法,uniform

mn=random.uniform(0,3)
#可最小0,最大3,取随机值

16类

from tkinter.font import names
#上面这个是引用的不用管
class Student:def __init__(self,na,ag,ch,ma,eng):#构造函数self.name=na#self开头的是实例属性,在构造函数里可以创建实例属性,也可以不加self,创建类属性
#类属性只能类方法或者用类.类属性来修改
#如果强行用对象修改类属性,实则是创建了一个同名的实例属性并修改值self.age=agself.chinese=chself.math=maself.english=engdef getName(self):return self.namedef getAge(self):return self.agedef setAge(self,x):self.age=xdef getCourse(self):return max(max(self.chinese,self.math),self.english)
d1=Student("王睿阳",18,100,100,95)
d2=Student("郑树立",18,56,67,87)
print(f"姓名:{d1.getName()},年龄:{d1.getAge()},最高成绩:{d1.getCourse()}")
d1.setAge(10)
print(f"姓名:{d1.getName()},年龄:{d1.getAge()},最高成绩:{d1.getCourse()}")
print(f"姓名:{d2.getName()},年龄:{d2.getAge()},最高成绩:{d2.getCourse()}")

函数行或属性名前面加__说明是私有属性,外部不能调用,不加就是公有属性,外部能调用

return可以返回多个值,return value1,value2.....

析构是__del__()

from tkinter.font import names
#上面这个是引用的不用管
class Student:def __init__(self,na:str,ag,ch,ma,eng):#构造函数,变量名:类型,可以指定类型self.name=na#self开头的是实例属性,在构造函数里可以创建实例属性,也可以不加self,创建类属性
#类属性只能类方法或者用类.类属性来修改
#如果强行用对象修改类属性,实则是创建了一个同名的实例属性并修改值self.age=agself.chinese=chself.math=maself.english=engdef getName(self) ->str : #这个写法可以指定返回类型return self.namedef getAge(self):return self.agedef setAge(self,x):self.age=xdef getCourse(self):return max(max(self.chinese,self.math),self.english)
d1=Student("王睿阳",18,100,100,95)
d2=Student("郑树立",18,56,67,87)
print(f"姓名:{d1.getName()},年龄:{d1.getAge()},最高成绩:{d1.getCourse()}")
d1.setAge(10)
print(f"姓名:{d1.getName()},年龄:{d1.getAge()},最高成绩:{d1.getCourse()}")
print(f"姓名:{d2.getName()},年龄:{d2.getAge()},最高成绩:{d2.getCourse()}")

17文件

 open(filie,mode='r',encoding=None)

file:文件路径

mode:打开方式(r:只读,w只写,a追加,b二进制,+更新

encoding:编码格式

更新就是可读可写

关闭文件:文件对象.close()

虽然系统会自动关闭文件,但是同一时间,可以打开的文件数量是有限的,所以为了节省内存空间,建议主动手动关闭文件

文件打开失败,会抛异常,打印错误信息

可以实现这个模块后,自动关闭文件

编码ascll utf-8 unicode gbk

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

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

相关文章

微信小程序,点击bindtap事件后,没有跳转到详情页,有可能是app.json中没有正确配置页面路径

文章目录 1、index.wxml2、index.js检查点1. 确保目标页面存在2. 确保页面路径配置正确3. 检查页面接收参数productDetail.jsproductDetail.wxmlproductDetail.wxss 总结 1、index.wxml <!-- 商品搜索结果卡片容器 --><view class"search-result"><bl…

科技改变生活:最新智能开关、调光器及插座产品亮相

根据QYResearch调研团队的最新力作《欧洲开关、调光器和插座市场报告2023-2029》显示&#xff0c;预计到2029年&#xff0c;欧洲开关、调光器和插座市场的规模将攀升至57.8亿美元&#xff0c;并且在接下来的几年里&#xff0c;将以4.2%的复合年增长率&#xff08;CAGR&#xff…

OpenGL入门006——着色器在纹理混合中的应用

本节将理解顶点和片段着色器在纹理混合中的应用 文章目录 一些概念纹理时间依赖动画 实战简介dependenciesshader.fsshader.vsteenager.pngtex.png utilswindowFactory.hshader.hRectangleModel.hRectangleModel.cpp main.cppCMakeLists.txt最终效果 一些概念 纹理 概述&…

【9695】基于springboot+vue的学生就业管理系统

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取免费源码 项目描述 本学生就业管理系统以springboot作为框架&#xff…

C语言的进制表示【八进制,十六进制】

文章目录 C语言的进制表示【八进制&#xff0c;十六进制】题目介绍C语言的进制表示1. 十进制2. 八进制3. 十六进制4. 二进制 进制表示总结 C语言的进制表示【八进制&#xff0c;十六进制】 题目介绍 故事的起因是今天在群里看到有人发来的问题 //原题目 int main() {int a 0…

高通Quick板上安装编译Ros1 noetic,LeGO_LOAM,FAR_Planner和rslidar_sdk

环境要求&#xff1a; 这里quick板上安装的是Ubuntu20.04版本 Ros Noeti安装&#xff1a; 1.设置软件源&#xff1a; 官方提供的软件源&#xff1a; sudo sh -c echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.…

一招解决Mac没有剪切板历史记录的问题

使用Mac的朋友肯定都为Mac的剪切功能苦恼过&#xff0c;旧内容覆盖新内容&#xff0c;导致如果有内容需要重复输入的话&#xff0c;就需要一次一次的重复复制粘贴&#xff0c;非常麻烦 但其实Mac也能够有剪切板历史记录功能&#xff0c;iCopy&#xff0c;让你的Mac也能拥有剪切…

PymuPDF4llm提取pdf文件文字、表格与图片

一、PymuPDF4llm 的功能特点 &#xff08;一&#xff09;文本提取 简单易用 PymuPDF4llm 的文本提取功能非常简单易用。只需使用pip install pymupdf4llm进行安装&#xff0c;然后通过import pymupdf4llm导入库&#xff0c;就可以使用md_text pymupdf4llm.to_markdown("…

nginx 搭建网站

1.查看防火墙状态systemctl status firewalld 2.getenforce 3.安装nginx yum install nginx -y 4.网站信息 echo "welcome to yinchuankejixuanyuan" > /usr/share/nginx/html/index.html 5.查看命令状态 nginx -t 6.重启 systemctl restart nginx

gin入门

Gin入门笔记 1. 初始gin 1.1. 依赖安装 go get github.com/gin-gonic/gin写gin程序都有一套固定的格式 初始化写路由监听运行 1.2. hello world package mainimport ("github.com/gin-gonic/gin""net/http" )func main() {router : gin.Default()rou…

CentOS 7 安装 ntp,自动校准系统时间

1、安装 ntp yum install ntp 安装好后&#xff0c;ntp 会自动注册成为服务&#xff0c;服务名称为 ntpd 2、查看当前 ntpd 服务的状态 systemctl status ntpd 3、启动 ntpd 服务、查看 ntpd 服务的状态 systemctl start ntpdsystemctl status ntpd 4、设置 ntpd 服务开机启…

转发forward与重定redirect

转发与重定向在网络通信和Web开发中扮演着不同的角色&#xff0c;它们之间的主要区别体现在以下几个方面&#xff1a; 一、定义与实现方式 转发&#xff1a; 在Web开发中&#xff0c;转发通常是由request请求发起的&#xff0c;是服务器内部的一种行为。转发时&#xff0c;服务…

使用 `Celery` 配合 `RabbitMQ` 作为消息代理,实现异步任务的调度、重试、定时任务以及错误监控等功能

python基础代码、优化、扩展和监控的完整示例。此示例使用 Celery 配合 RabbitMQ 作为消息代理&#xff0c;实现异步任务的调度、重试、定时任务以及错误监控等功能。 项目结构 我们将项目结构组织如下&#xff0c;以便代码逻辑清晰且易于扩展&#xff1a; project/ │ ├──…

Unity3D UI 拖拽

Unity3D 实现 UI 元素拖拽功能。 UI 拖拽 通常画布上的 UI 元素都是固定位置的&#xff0c;我们可以通过实现拖拽接口&#xff0c;让 UI 元素可以被拖拽到其他位置。 拖拽接口 创建一个脚本 UIDrag.cs&#xff0c;在默认继承的 MonoBehaviour 后面&#xff0c;再继承三个接…

【LeetCode】【算法】394. 字符串解码

LeetCode 394. 字符串解码 题目描述 给定一个经过编码的字符串&#xff0c;返回它解码后的字符串。 编码规则为: k[encoded_string]&#xff0c;表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的&#xff1b;输入字…

深度学习:预训练(Pre-training详解

预训练&#xff08;Pre-training详解 预训练&#xff08;Pre-training&#xff09;是深度学习和自然语言处理领域中一个核心概念&#xff0c;特别是在面对需要大规模参数模型的应用场景下。预训练涉及在通常是大规模且多样化的数据集上训练模型&#xff0c;目的是捕获广泛且通…

【新手入门软件测试--该如何分辨前后端问题及如何定位日志--前后端问题分辨与日志定位查询问题】

前后端问题分辨与日志定位查询 一、前端问题1. 页面无法加载2. 样式错乱3. API请求失败4. 数据格式错误5. 跨域请求问题 二、后端问题6. 表单验证失败7. 数据库连接失败8. 请求超时9. 权限问题10. JavaScript运行错误 三、日志查询的方法1. 查看日志文件2. 过滤关键字3. 实时查…

基于 SSM(Spring + Spring MVC + MyBatis)框架构建电器网上订购系统

基于 SSM&#xff08;Spring Spring MVC MyBatis&#xff09;框架构建电器网上订购系统可以为用户提供一个方便快捷的购物平台。以下将详细介绍该系统的开发流程&#xff0c;包括需求分析、技术选型、数据库设计、项目结构搭建、主要功能实现以及前端页面设计。 需求分析 …

esp32学习:利用虫洞ESP32开发板,快速实现无线图传

我们的虫洞开发板&#xff0c;能够完美运行esp who AI代码&#xff0c;所以实现无线图传那是非常容易的&#xff0c;我们先看看examples目录&#xff1a; 里面有比较多的web例程&#xff0c;在这些例程下&#xff0c;稍作修改&#xff0c;就可以快速实现我的图传无线功能&#…

mac m1 docker本地部署canal 监听mysql的binglog日志

mac m1 docker本地部署canal监听mysql的binglog日志(虚拟机同理) 根据黑马视频部署 1.docker 部署mysql 1.docker拉取mysql 镜像 因为m1是arm架构.需要多加一条信息 正常拉取 docker pull mysql:tagm1拉取 5.7的版本. tag需要自己指定版本 docker pull --platform linux/x…