C++过渡Python

1. 输入输出

Python中输出使用print(),输入使用input()

使用方式:

1.print()

python 复制代码
#输出1+2+3的结果
print(1 + 2 + 3)

我们注意到,python中语句的结尾不需要使用分号,且输出语句内除了string类型变量,都不用添加引号

2.input()

python 复制代码
a = input("请输入整数:")

input括号中既可以什么都不填写,也可以填写输入提示词,他会先输出到显示器,然后用户在提示词后可以输入数据

2.变量类型

python中,进行变量创建时不需要显式指定变量类型,而是可以根据给他赋值的变量/常量的类型自动推演出该变量应该的类型

python 复制代码
#合法
a = 10
#合法
a:int = 10

如果要显式指定类型也是可以的

2.1int类型

int类型是一个表示数据范围无上限的类型,只要内存足够,他可以表示无限大小的数据,同时他类型占用大小也是动态调整的

和其他大部分语言不同,python只有一个表示整数的类型就是int类型,因为他的动态占用机制,保证了他不需要long long等类型

显示数据类型为int的代码:

python 复制代码
a = 10
print(type(a))

2.2float类型

同样的,python只有一种表示浮点型的类型,就是float,而这里的float和c++不同,他其实相当于c++中的double类型,也就是双精度浮点型

类型转换语法:

python 复制代码
a = "1"
a = int(a)

2.3string类型

同理,python只有一种表示字符的类型,就是string,它既可以使用单引号括起来,也可以使用双引号括起来

**字符串相加运算:**字符串之间可以直接相加,但是不可以直接和数字相加

如何将输出内容结合字符串和数字?

我们以输出num = 1为例

python 复制代码
num = 1
print(f'num = {num}')

先在输出字符的前面写上一个f,然后将需要打印的数字使用{}包起来

如果想输出包含引号的字符串,怎么写?

python 复制代码
a = " a + 'b' = c "
a = ' a + "b" = c '

外部使用单引号,内部就使用双引号,外部使用双引号,内部就使用单引号

2.4bool类型

其中True表示真,False表示假,与c++不同的是首字母必须大写,且True的值为1,False为0

可是我们给变量初始化赋值的时候不能用0/1进行赋值,必须使用True、False

3.运算符

3.1算术运算符

注意1:

整数/整数得到的结果可能是小数,且不会截断

如果是想取整的除法,可以使用//,它的效果和c++中的/一样

注意2:

**是求乘方,整数次方和小数次方都可以计算

python 复制代码
print(4 ** 2)#表示4^2
print(4 ** 0.5)#表示4^0.5

注意3:

python不支持自增和自减运算符(++,--)

3.2关系运算符

注意1:

使用==和!=可以直接判断字符串是否相等,而进行比较大小时,规则就是按照字典序进行依次比较

注意2:

浮点型数据判断相等不能使用==,因为浮点型数据是有精度误差的,可以使用另外一种方法比较

python 复制代码
print(-0.000001 < (a-b) < 0.000001)

两个浮点数相剪,如果计算结果的误差处于一定范围内,那么可以认为两个浮点数是相等的

且在python中,进行范围比较可以直接使用数学上的比较方法

3.3逻辑运算符

and:相当于&&

or:相当于||

not:相当于!

3.4赋值运算符

多元赋值:

python 复制代码
a,b = 1,2

4.常用语句

特别注意:if/while/for等语句块不影响变量作用域,他们在语句块内创建后,语句外也可以使用

4.1条件语句

(1)if

python 复制代码
if 条件:
    语句1
    语句2
if外的其他语句

这里不包含{},而是使用Tab来控制语句所处位置

(2)if else

python 复制代码
if 条件:
    语句1
else:
    语句2

(3)if elif else

python 复制代码
if 条件:
    语句
elif 条件:
    语句
else:
    语句

补充:
1.空语句:pass

这表示空语句,主要用于保持语法格式的正确

4.2循环语句

while循环

python 复制代码
while 条件:
    循环语句

for循环

python 复制代码
for 循环变量 in 可迭代对象
    循环语句

其中可迭代对象是内部包含多个元素,可以将元素一个个取出来的特殊变量

补充:

**range(a,b,c):**可用于生成可迭代对象范围为[a,b),其中c表示步长,默认步长为1,也就是逐个取出,如果步长为2表示隔一个再取出

5.函数

创建函数:

python 复制代码
def 函数名(形参列表):
    函数体
    return 返回值

同样的,在这里也不需要指定形参的类型

**返回值:**一个函数可以一次返回多个值,如果只想获得其中部分的值结果,可以使用''作为占位符,不获取''对应位置的数据值

函数使用:

python 复制代码
函数名()

注意:

使用的时候如果想要修改全局变量的值,需要使用global进行变量声明(eg: global x)

关键字参数:

如果我们需要再传递实参的时候按照任意顺序传递给形参,可以使用关键字参数、

假设函数声明

python 复制代码
test(y = 1, x = 2)

6.列表和元组

(1)列表与元组的定义:

列表是一个可用于批量表示/保存数据的数据类型,且列表中的元素可以进行修改调整

元组中的元素是创建的时候设定好的,不能修改
(2)列表相关

1.创建列表:

python 复制代码
alist = []#空创建
alist = list()#空创建
alist = [1,2,3,4]#初始值创建
alist = [1,'a',True]#多类型元素初始化

python中的列表初始化是可以同时使用多种类型的元素的

2.访问方式:

下标访问与修改

python 复制代码
alist[0] = 1#正序访问,访问下标为0的第一个列表元素
alist[-1] #倒序访问,访问倒数第一个列表元素

下标访问是可以用负数索引的,表示倒数的访问
3.切片操作:
切片就是取出一组连续的元素,相当于得到一个子列表,使用 '[ : ]' 的方式进行操作

python 复制代码
print(alist[1:3])#表示取出下标为1到3的子列表(不包含3索引数据本身)

相当于取出[1,3)索引的数据

注意:

**边界省略:**前边界省略表示从列表开头获取,后边界省略表示获取到列表结尾,全部省略表示获取整个列表

**步长指定:**步长设置后可以实现每访问一个元素后,下标自增几步

python 复制代码
alist[::2]#表示列表正序取出元素每隔两步才取出一个元素
alist[::-2]#表示列表倒序取出元素每隔两步才取出一个元素

**切片越界:**不会报错,而是会尽可能的将你指定的范围内的元素取出来

4.遍历列表元素:
使用for循环

python 复制代码
for e in alist:
    print(e)

5.增删查列表元素:
增:

append方法(尾插)

python 复制代码
alist.append('hello')

insert方法(任意位置插入)

python 复制代码
alist.insert(1,'hello')

查:

in操作符,判断是否存在,返回bool类型

python 复制代码
print(2 in alist)

删:
pop方法

python 复制代码
alist.pop()#尾删
alist.pop(2)#按照下标删除

remove方法

python 复制代码
alist.remove(2)#按照值删除

6.链接列表:

通过+号可以将两个列表拼接在一起,此时结果会产生一个新的列表,但是不会对进行运算的两个列表产生影响

python 复制代码
alist = [1,2,3]
blist = [4,5,6]
print(alist+blist)

extend方法:可以将一个列表拼接到另一个列表的后面

python 复制代码
alist.extend(blist)#将blist拼接在alist的后面

(3)元组相关

元组主要是用于需要使用序列元素的场景下,对序列元素做保护的时候,因为元组内部元素无法修改,所以天然可以保护内部元素

7.字典

字典是存储键值对的结构,其中键值之间用':'分隔,键值对之间用','分隔

python 复制代码
student = {
 'id' : 1,
 'name' : 'leo'
}

(1)查找key

可以使用in来判断是否存在

python 复制代码
print('id' in student)

(2)增加/修改元素

python 复制代码
student['id'] = 1

(3)删除元素

使用pop方法,根据key删除对应键值对

python 复制代码
student.pop('score') 

(4)遍历字典元素

使用for循环可以获取字典中所有的key,然后就可以取出每个值了

python 复制代码
for key in student:
    print(key,student[key])

注意:不是所有类型都可以作为key的,只有可以计算哈希值的类型才可以

所以,列表和字典由于无法计算哈希值,都不能作为key

8.文件

文件就是用来保存进行了硬盘中持久化存储的数据的

(1)打开文件

python 复制代码
f = open('d:/test.txt','r')

这表示以只读的方式打开文件

(2)关闭文件

python 复制代码
f.close()

(3)写文件

前提是以'w'权限打开文件

python 复制代码
f = open('d:/test.txt','w')
f.write('hello')

(4)读文件

前提是以'r'权限打开文件

python 复制代码
f = open('d:test.txt','r')
result = f.read(2)

read里面填写的数字表示读取几个字符

9.库

(1)导入模块

使用import可以将单独的.py文件导入到当前的.py文件中,并执行其中的代码

由于Python属于解释性语言,可以直接运行源码,所以不区分头文件和源文件,声明和定义都是放在一起的

python 复制代码
import [模块名]

(2)下载第三方库

使用pip来下载Python收集的第三方库

python 复制代码
pip install [库名]
相关推荐
不知名的老吴1 小时前
在C++中不用宏怎么打日志的使用建议
开发语言·c++·算法
m0_733565461 小时前
golang如何使用Wails开发桌面应用_golang Wails桌面应用开发步骤
jvm·数据库·python
jieyucx1 小时前
Go 语言进阶:结构体指针、new 关键字与匿名结构体/成员详解
开发语言·后端·golang·结构体
wjs20241 小时前
jEasyUI 添加复选框指南
开发语言
迪霸LZTXDY2 小时前
U-NET模型训练--图像标注脚本工具
开发语言·python
码界筑梦坊2 小时前
119-基于Python的各类企业排行数据可视化分析系统
开发语言·python·信息可视化·数据分析·毕业设计·echarts·fastapi
习明然2 小时前
记录下解决Python在windows 2008 Server 无法启动
开发语言·windows·python
duke8692672142 小时前
C# 文件上传的服务器端加密 C#如何在存储到S3或Azure Blob时启用加密
jvm·数据库·python
凯瑟琳.奥古斯特2 小时前
IP组播跨子网传输核心技术解析
java·开发语言·网络·网络协议·职场和发展