python(自用查看版)

目录

1.注意事项

[1.1 python的除法不是整除,得到的是浮点数](#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续行符

用\

cpp 复制代码
s2="dwdaawda\
wdwda"

1.8报错

语法错误和运行错误

1.9赋值

python 复制代码
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.常量和表达式

python 复制代码
print(1+2-3)

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

    • / *是运算符/操作符

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

//是整除

%是取余

3.变量

python 复制代码
avb=(3+4+5)/2
print(avb)

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

标识符名命名规则:

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

2.区分大小写。

3.不能用关键字

4.数据类型

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

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

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

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

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

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

cpp 复制代码
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'

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

cpp 复制代码
print("dwadwad'dwdawd'")

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

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

cpp 复制代码
print(len(Name))

字符串可以用+拼接

cpp 复制代码
s1="sdwda"
s2="dwdaawda"
print(s1+s2)

不影响原来的s1和s2。

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

也是

4.4bool类型

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

python 复制代码
x=True
if (x):
    print(1)

4.5动态类型

python 复制代码
a=1
print(a)

a="dwdawd"

print(a)

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

5.输入输出

5.1输入

输入用Input

input([prompt])

prompt是给用户看的提示信息

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

cpp 复制代码
n=input("请输入:")
print(f"你输入的是:{n}")

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

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

5.2输出

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

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

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

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

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

python 复制代码
print(f"a={a}")
#a=10

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

6.运算符

优先级

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

6.1算术运算符

    • * / % ** //

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

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

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

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

如果要强行验证

cpp 复制代码
a=0.1+0.2
b=0.3
if(-0.000001<(a-b)<0.000001):print("1")
else:print("2")

7.条件语句

python 复制代码
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.循环语句

cpp 复制代码
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}")
cpp 复制代码
while(1):
    print()
    break

break依旧是用来跳出循坏

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

9.列表

python 复制代码
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.字符串

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

11.元组

python 复制代码
mp=tuple()//空元组
//元组不能修改

12.集合

cpp 复制代码
mp=set()//集合

13.字典

python 复制代码
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.函数()

定义方式

python 复制代码
def aaa(a=2):
    #函数体
    #返回 return ll

15方便函数

1.round()

可以用来控制小数

python 复制代码
mn=round(mn,2)

2.random

其中一个用法,uniform

python 复制代码
mn=random.uniform(0,3)
#可最小0,最大3,取随机值

16类

python 复制代码
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__()

python 复制代码
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

相关推荐
_.Switch34 分钟前
Python 自动化运维持续优化与性能调优
运维·开发语言·python·缓存·自动化·运维开发
徐*红34 分钟前
java 线程池
java·开发语言
尚学教辅学习资料34 分钟前
基于SSM的养老院管理系统+LW示例参考
java·开发语言·java毕设·养老院
1 9 J36 分钟前
Java 上机实践4(类与对象)
java·开发语言·算法
Code apprenticeship37 分钟前
Java面试题(2)
java·开发语言
J不A秃V头A40 分钟前
Python爬虫:获取国家货币编码、货币名称
开发语言·爬虫·python
阿斯卡码2 小时前
jupyter添加、删除、查看内核
ide·python·jupyter
SRY122404193 小时前
javaSE面试题
java·开发语言·面试
无尽的大道4 小时前
Java 泛型详解:参数化类型的强大之处
java·开发语言
ZIM学编程4 小时前
Java基础Day-Sixteen
java·开发语言·windows