首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python基础(一)

Python基础(一)

作者头像
啊QQQQQ
发布2025-04-10 09:08:03
发布2025-04-10 09:08:03
9700
代码可运行
举报
文章被收录于专栏:C++C++
运行总次数:0
代码可运行

前言

由于煮波已经学过了C和C++,而且了解过java的语法,已经建立了语言的整体框架,所以学习python语法就不像学C++一样系统的一点一点的学习了,学习python语法,我就根据日常代码中遇到的或者是从C++代码中想到了在python中应该是什么场景来探讨python的相应知识;

Python与C++的一下区别

下面是借助AI工具先大致了解了下python和C++的语法语法上的一些区别;

Python和C++是两种编程语言,虽然它们都有一些共同的语法特性,但也存在一些显著的区别。

  1. 静态类型 vs 动态类型: C++是一种静态类型语言,需要在编译时声明变量的类型,并且在编译时会做类型检查。而Python是一种动态类型语言,变量的类型是在运行时确定的,不需要显式声明类型。这意味着在Python中可以更灵活地处理变量的类型,但可能会增加一些运行时的开销。
  2. 缩进 vs 花括号: Python使用缩进来表示代码块的结构,而C++使用花括号{}来定义代码块。这使得Python代码看起来更加简洁,但也需要注意缩进的正确性。C++的花括号可以更直观地显示代码块的开始和结束,但可能会使代码显得更加繁琐。
  3. 内存管理: 在C++中,程序员需要显式地进行内存管理,包括手动分配和释放内存。而Python有自动内存管理机制,使用垃圾回收器来处理内存管理,程序员不需要手动管理内存。这使得Python更容易编写和维护,但也可能带

这几天我正好也练习的也是这上述AI总结的三点,所以下面我就句几个实例帮助理解

动态类型

python在声明或定义变量时是不需要指明变量类型,而C++/C/Java这类语言是需要指明类型的;

代码语言:javascript
代码运行次数:0
运行
复制
a=123
b=2.5
print(type(a))#<class 'int'>
print(type(b))#<class 'float'>

变量是可以根据存储数据自动识别数据类型,这一点跟auto很像

input

代码语言:javascript
代码运行次数:0
运行
复制
a=input()
b=input()
c=input()
print(type(a))#<class 'str'>
print(type(b))#<class 'str'>
print(type(c))#<class 'str'>

input是内置函数,用于读取键盘输入的数据,但是需要注意的是input读取的数据一律按照字符串处理;

也就是我们如果使用了流提取(从键盘输入数据),那么变量存储的都是字符串;

如果我想输入存储一个整形数据怎么办呢?

---->类型强转,python中的强转格式是把要强转的数据用括号括起来;

代码语言:javascript
代码运行次数:0
运行
复制
a=int(input())
print(type(a))#<class 'int'>

print

print也是内置函数,用于打印数据到显示器上;与Java很像,输入完数据后默认都会自动回车;

我们可以自己调整参数控制是否自动回车;

代码语言:javascript
代码运行次数:0
运行
复制
print(1,end=" ")
print(2,end=" ")
print(3,end=" ")
#1 2 3 

这是常用的输入和打印的格式上的不同

循环判断语句格式

在python中函数体是冒号(:)配合行缩进使用的;在同样的函行缩进数下,通常是同一个函数体;

for循环

代码语言:javascript
代码运行次数:0
运行
复制
for i in range (0,5,1):
    print(i,end=" ")
#0 1 2 3 4 

C++:for(int i=0;i<n;i++) python:for i in range (begin,end;step)---end是取不到的,范围是[begin,end-1]

while循环

代码语言:javascript
代码运行次数:0
运行
复制
i=0
while i<5:
    print(i,end=" ")
    i=i+1
#0 1 2 3 4 

pass和break

在python中,直接调整循环使用的还是break;这一点与C++时一样的;

代码语言:javascript
代码运行次数:0
运行
复制
i=0
while i<20:
    print(i,end=" ")
    i=i+1
    if i==10:
        break
#0 1 2 3 4 5 6 7 8 9 

pass是C++中continue的效果,当然仍然可以使用continue,这是支持的

代码语言:javascript
代码运行次数:0
运行
复制
for i in range (0,10):
    if i==5:
        pass
    else :print(i,end=" ")
#0 1 2 3 4 6 7 8 9 

函数以及函数参数

函数格式

关键字def 声明为函数;

代码语言:javascript
代码运行次数:0
运行
复制
def add(a,b):
    return a+b

ret=add(1,5)
print(ret)#6

函数可以有多个返回值

代码语言:javascript
代码运行次数:0
运行
复制
def add(a,b):
    return a,b

x,y=add(1,5)
print(x,y)#1 5

如果函数有多个返回值,而你只想用其中的部分返回值,那么你就可以使用_来接收,

代码语言:javascript
代码运行次数:0
运行
复制
def add(a,b):
    return a,b

_,x=add(1,5)
print(_,x)#1 5

但这并不意味着,_就是专门用来接受变量的,_其实也是一个变量名字,想想标识符的命名规则,他是不是也是符合的,我们不仅可以用'_',还可以用"__","___"等等等;这是这种命名方式通常没有命名含义,所以就拿来存储不关心的数据喽!

函数参数

1.有几个形参,传递几个实参

代码语言:javascript
代码运行次数:0
运行
复制
def add(a,b):
    return a,b

2.形参使用参数列表 (*)

在形参上加上*,就是可变参数列表了

代码语言:javascript
代码运行次数:0
运行
复制
def f(*a):
    n=len(a)
    for i in range(n):
        print(a[i],end=" ")

f(1,2,5,4,8)#1 2 5 4 8 

类和对象

成员方法和成员变量

代码语言:javascript
代码运行次数:0
运行
复制
class node:
    def __init__ (self,id,name,age):
        self.id=id
        self.name=name
        self.age=age

    def __del__ (self):
        del self.id
        del self.name
        del self.age

    def debug(self):
        print(f"id: {self.id}\nname: {self.name}\nage: {self.age}")

类其实就是封装了的成员变量和成员方法,方法就是函数,我们知道了,但是成员变量该怎么声明呢?

python中类的成员变量是以参数的形式在构造函数中存在的;当然也可以使用缺省值

self和this指针

类中的方法,都要显式的带上参数self,self相当于是类本身地址,这一点类似于C++中的this指针,不过是隐式的,这里的self必须是手动添加的;---debug方法为例

代码语言:javascript
代码运行次数:0
运行
复制
class node:
    def __init__ (self,id,name,age):
        self.id=id
        self.name=name
        self.age=age

    def __del__ (self):
        del self.id
        del self.name
        del self.age

    def debug(self):
        print(f"id: {self.id}\nname: {self.name}\nage: {self.age}")

def fact(n):
    if n==1 :return n
    return fact(n-1)*n
#
person1=node(1,"小红",18)
person1.debug()

构造函数和析构函数

1.构造函数(__init__) ----这里的左右两边各两个_

构造函数的作用是初始化成员变量 ---这一点无需多言

2.析构函数(__del__)

引用计数-->引用计数为0-->释放内存

析构函数类似于智能指针shared_ptr的引用计数原理,当多个对象指向同一块内存的时候,采取了引用计数的机制,当引用计数为0 的时候就会释放掉该内存空间;

并不是简单的出了作用域就会自动调用析构函数,是引用计数为0,才会调用析构函数

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-04-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • Python与C++的一下区别
  • 动态类型
  • input
  • print
  • 循环判断语句格式
    • for循环
    • while循环
    • pass和break
  • 函数以及函数参数
    • 函数格式
    • 函数可以有多个返回值
    • 函数参数
  • 类和对象
    • 成员方法和成员变量
    • self和this指针
    • 构造函数和析构函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档