python(自用查看版)

news2024/11/26 0:28:22

目录

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=10

f是格式化字符串
{}可以放入变量、值、表达式
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 random

computer=random.randint(0,100)
left=0
right=100
flag=0
for index in range(0,5):
    guest=int(input())
    if(guest>computer):
        right=guest
        print(f"太大了,数字范围缩小到{left}~{right}")
    elif (guest<computer):
        left=guest
        print(f"太小了,数字范围缩小到{left}~{right}")
    elif(guest==computer):
        print("恭喜答对!")
        flag=1
        break
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=ag
        self.chinese=ch
        self.math=ma
        self.english=eng
    def getName(self):
        return self.name
    def getAge(self):
        return self.age
    def setAge(self,x):
        self.age=x
    def 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=ag
        self.chinese=ch
        self.math=ma
        self.english=eng
    def getName(self) ->str : #这个写法可以指定返回类型
        return self.name
    def getAge(self):
        return self.age
    def setAge(self,x):
        self.age=x
    def 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.coloradmin.cn/o/2236480.html

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

相关文章

基于Prometheus的client_golang库实现应用的自定义可观测监控

文章目录 1. 安装client_golang库2. 编写可观测监控代码3. 运行效果4. jar、graalvm、golang编译运行版本对比 前文使用javagraalvm实现原生应用可观测监控&#xff1a; prometheus client_java实现进程的CPU、内存、IO、流量的可观测&#xff0c;但是部分java依赖包使用了复杂…

Docker网络概述

1. Docker 网络概述 1.1 网络组件 Docker网络的核心组件包括网络驱动程序、网络、容器以及IP地址管理&#xff08;IPAM&#xff09;。这些组件共同工作&#xff0c;为容器提供网络连接和通信能力。 网络驱动程序&#xff1a;Docker支持多种网络驱动程序&#xff0c;每种驱动程…

新160个crackme - 094-TheBigMan-crackme6

运行分析 需破解Name和Serial PE分析 LCC win32程序&#xff0c;32位&#xff0c;无壳 静态分析&动态调试 ida搜索字符串&#xff0c;进入关键函数 ida动调&#xff0c;发现关键判断函数func_1 进入后&#xff0c;发现Name长度需满足一定要求&#xff0c;且func_2返回值不能…

大数据-214 数据挖掘 机器学习理论 - KMeans Python 实现 算法验证 sklearn n_clusters labels

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

【Django】视图函数

【Django】视图函数 视图函数的本质是Python中的函数&#xff0c;视图函数负责处理用户的请求并返回响应&#xff0c;该响应可以是网页的HTML内容、重定向、404错误、XML文档、图像或者任何东西&#xff0c;一般在应用中的views.py编写&#xff0c;示例代码如下&#xff1a; …

kafka+zookeeper的搭建

kafka从2.8版本开始&#xff0c;就可以不用配置zookeeper了&#xff0c;但是也可以继续配置。我目前使用的kafka版本是kafka_2.12-3.0.0.tgz&#xff0c;其中前面的2.12表示是使用该版本的scala语言进行编写的&#xff0c;而后面的3.00才是kafka当前的版本。 通过百度网盘分享…

了解bootstrap改造asp.net core MVC的样式模板

我们都知道&#xff0c;在使用默认的asp.net core MVC模板建立项目的时候&#xff0c;里面的样式是已经事先被写好了的。一般来说都在css目录下的site.css和bootstrap.css及下面的bootstrap.min.css中。我们打开bootstrap这些样式文件&#xff0c;里面有大量的样式类的定义&…

HTMLCSS:旋转的动态卡片

效果演示 这段代码创建了一个具有动态背景和渐变效果的卡片。卡片背景有一个无限循环的旋转动画&#xff0c;增加了视觉吸引力。这种效果可以用于展示个人信息、项目介绍或其他需要吸引用户注意的内容。 HTML <div class"card"><h3>前端Hardy</h3&…

深入Pillow:处理图像下载中的意外挑战

在当今数字化时代&#xff0c;获取和处理图像数据已经成为了许多应用程序的核心功能。从社交媒体到电子商务&#xff0c;图像的获取和处理对于用户体验至关重要。下载图片不仅能够丰富我们的内容&#xff0c;还能够通过分析图像数据为我们的应用提供更多价值。然而&#xff0c;…

管理 Elasticsearch 变得更容易了,非常容易!

作者&#xff1a;来自 Elastic Ken Exner Elasticsearch 用户&#xff0c;我们听到了你的心声。管理 Elasticsearch 有时会变得很复杂&#xff0c;面临的挑战包括性能调整、问题检测和资源优化。我们一直致力于简化你的体验。今天&#xff0c;我们宣布了自收购 Opster 以来的一…

Linux挖矿病毒(kswapd0进程使cpu爆满)

一、摘要 事情起因:有台测试服务器很久没用了&#xff0c;突然监控到CPU飙到了95以上&#xff0c;并且阿里云服务器厂商还发送了通知消息&#xff0c;【阿里云】尊敬的xxh: 经检测您的阿里云服务&#xff08;ECS实例&#xff09;i-xxx存在挖矿活动。因此很明确服务器中挖矿病毒…

【go从零单排】迭代器(Iterators)

&#x1f308;Don’t worry , just coding! 内耗与overthinking只会削弱你的精力&#xff0c;虚度你的光阴&#xff0c;每天迈出一小步&#xff0c;回头时发现已经走了很远。 &#x1f4d7;概念 在 Go 语言中&#xff0c;迭代器的实现通常不是通过语言内置的迭代器类型&#x…

(混乱版)数据冒险-ld,sub和and

第一张图没有数据转发 从这张图来看&#xff0c;如果没有数据转发机制&#xff0c;流水线的执行会出现更多的停顿。这种情况下&#xff0c;数据依赖只能通过**插入停顿周期&#xff08;stalls&#xff09;**来解决。具体分析如下&#xff1a; 指令序列 ld r1, 0(r2)&#xf…

成都睿明智科技有限公司抖音电商服务效果如何?

在这个短视频风起云涌的时代&#xff0c;抖音电商以其独特的魅力&#xff0c;成为了众多商家竞相追逐的新蓝海。而在这片波澜壮阔的商海中&#xff0c;成都睿明智科技有限公司犹如一艘稳健的航船&#xff0c;引领着无数企业驶向成功的彼岸。今天&#xff0c;就让我们一起揭开成…

ssm071北京集联软件科技有限公司信息管理系统+jsp(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;北京集联软件科技有限公司信息管理系统 \ 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本信息…

shodan[3](泷羽sec)

声明 学习视频来自B站UP主 泷羽sec,如涉及侵泷羽sec权马上删除文章。 笔记只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 这节课旨在扩大自己在网络安全方面的知识面&#xff0c;了解网络安全领域的见闻&#xff0c;了…

【OD-支持在线评测】数字涂色(100分)

📎 在线评测链接 https://app5938.acapp.acwing.com.cn/contest/11/problem/OD1081 🍓 OJ题目截图 🍿 最新机试E卷,全、新、准,题目覆盖率达 95% 以上,支持题目在线评测,专栏文章质量平均 94 分 🌍 评测功能需要 ⇒ 订阅专栏 ⇐ 后私信联系解锁~ 文章目录 📎…

k8s 上如何跑 Dolphins 模型

接着上一篇的介绍&#xff0c;这一篇就来跑跑 Dolphins 模型&#xff0c;本篇会记录&#xff0c;跑模型常见的阬点。 1 在 k8s 上创建 pod 将外部数据挂载在 pod 里&#xff0c;并申请 gpu 资源。同时修改代码里对应的引入数据的路径 # dolphins.yaml apiVersion: v1 kind: …

如何避免数据倾斜

1、数据倾斜的表现 数据倾斜是由于数据分布不均匀&#xff0c;造成数据大量的集中到一点&#xff0c;造成数据热点的现象。 主要表现&#xff1a;任务进度长时间维持在 99%或者 100%的附近&#xff0c;查看任务监控页面&#xff0c;发现只有少量 reduce 子任务未完成&#xff0…

计算机网络综合题

IP数据报的划分 CRC差错检测 冗余码的计算 因此&#xff0c;余数是1110&#xff0c;传输的数为11010110111110。在传输过程中最后两位变成o&#xff0c;接收端能够发现&#xff0c;因为11010110111110除以10011余数不为0。 子网划分 暴力求解法 &#xff08;定长子网划分大量…