Python编程:初入Python魔法世界

发布于:2025-07-27 ⋅ 阅读:(16) ⋅ 点赞:(0)

一、常量表达式

在编程中,常量指的是在程序执行期间其值不会改变的数据项。虽然 Python 并没有专门的语法来定义常量(不像某些其他语言如 Java 中有 final 关键字),但在实践中,我们通常通过约定俗成的方式来表示一个变量是一个“常量”:

示例:

# 算术表达式
a = 5 + 3 * 2  # 结果为 11,注意乘法优先于加法

# 关系表达式
b = 10 > 5     # b 的值为 True

# 逻辑表达式
c = (10 > 5) and (2 < 3)  # c 的值为 True
print(1 + 2 - 3)
print(1 + 2 * 3)
print(1 + 2 / 3)

  • 代码里的print() 是 Python 中的一个内置函数,用于将内容输出到终端(屏幕)上

它是我们最常用的调试工具之一,可以让我们看到程序运行时的中间结果、变量值、提示信息等。这个我们后续详谈

  • 可以使用+-*/()等运算符进行算术运算,先算乘除后算加减
  • 运算符和数字之间,可以没有空格,但是一般习惯上写一个空格(比较美观)
  1. 例如 1 + 2 - 3 这样是算式,在编程语言中被称为表达式,而运行后的结果,就是这个表达式的返回值
  2. 其中1,2,3这种被称为字面值常量, +-*/ 这种被称为运算符或者操作符

表达式的类型:

算术表达式:涉及数值及其运算符(如 +-*/)。

关系表达式:比较两个值(如 ==!=><)。

逻辑表达式:结合多个条件(如 andornot)。

这里注意一下,我们发现第三个表达式计算出来后是 1.66666666665,而不是1。而我们熟悉了c或者java的兄弟可能觉得很奇怪,其实在Python中得到的结果则是一个小数,更符合日常使用的直觉

例如:给定四个分数,65.5 , 89.0 , 12.9 , 32.2 ,编写代码,求这四个分数的平均数

print((65.5 + 89.0 + 12.9 + 32.2) / 4)

二、变量和类型

2.1 变量是啥?

有的时候,我们需要进行的计算可能会复杂一点,计算过程中需要把一些中间结果保存起来,那么这个时候就是通过变量这个东西

就例如我们现在要计算一个方差

  • 给四个数, 67.5 , 89.0 , 12.9 , 32.2,编写代码,求这四个数的方差
  • 方差计算过程:取每一项,减去平均值,计算平方,再求和,最后除以(项数 - 1)
  1. 计算这四个数的平均值
  2. 取每一项,减去平均值,计算平方,再求和  把最后的值给total
  3. 把total除以(项数 - 1)
  4. 将结果打印出来
avg = (67.5 + 89.0 + 12.9 + 32.2)/4
total = (67.5 - avg) ** 2 + (89.0 - avg) ** 2 + (12.9 - avg) ** 2 + (32.2 - avg) ** 2
result = total / 3
print(result)

 注意:avg,total,result都是变量

**在python里面表示乘方运算。 **2就是平方

而变量可以视为是一块可以存放数据的一个空间,而这个空间是开辟在内存中过地方的

 想象内存是一个大仓库,有许多小格子,每个格子有唯一编号(地址)。当我们声明一个变量 int avg = 30;,计算机在仓库中找到一个空闲格子,放进去30,并记下标签“age”指向那个格子编号。(图上一个存放50.400000000000006)

2.2 变量的语法 

2.2.1 变量的定义

a = 10
//a是变量名。
// 10是值。   
//变量名+赋值运算符+值

创建变量非常简单:

  • a是变量名。当我们创建很多个变量的时候,大家的变量名要取一个有意义,例如你创建的变量是用来计数的,就可以取为count
  • = 为赋值运算符,表示把 = 右侧的数据放到 = 左侧空间中 ,注意,是由右向左

注意事项(规则):

  • 变量名由数字、字母、下划线构成
  • 数字不能开头
  • 变量名不能和“关键字重复”。例如:print 
  • 变量名大小写敏感。num和Num是两个不同的变量名

变量取名建议:

  • 变量名最好用有意义的单词来表示,就是我刚刚说的
  • 驼峰命名法(CamelCase):首个单词小写,后续单词首字母大写,如 $userName$(常用于Java、JavaScript)。
  • 蛇形命名法(snake_case):单词间用下划线连接,如 $user_name$(常用于Python、Ruby)。
  • 常量命名:全大写加下划线,如 $MAX_VALUE$。

2.2.2 变量的使用

读取变量的值:

a = 10
print(a)

 修改变量的值

a = 10
pritn(a)
#修改a
a = 20
print(a)

当然,我们也可以使用其他的变量来修改需要修改的值

a = 10
b = 20
a = b
print(a)
print(b)

一开始对变量a和b进行初始化,随后 a = b,将b的值赋给a,这样就把a的值给改变了!!! 

2.2.3 变量的类型 

变量里面存储的不仅仅是数字,还可以存储其他种类的数据,未来区分不同种类的数据,我们引入了“类型”这一概念。

注意:Python和C++/java等语言不同,Python的变量类型是不需要显示指定的,而是在赋值的时候确定的

例如c++和java

//在 C++ 和 Java 中,变量类型必须在定义时明确写出,否则编译器会报错

int age = 20;         // 必须显式指定类型
string name = "Tom";

而Python: 

x = 10          # x 是整数
x = "Hello"     # x 变成字符串
x = [1, 2, 3]   # x 变成列表
2.2.3.1 整数
a = 10
print(type(a))

PS:pyte和print类似,也是Python内置的函数,pyte可以来查看一个变量的类型

这里注意一个点:Python的int类型变量,所表示的不是四个字节,而是 没有上限 的,只要内存足够大,理论上就可以表示无限大小的数组

2.2.3.2 浮点数
a = 0.5
print(type(a))

字符串需要用 ' (单引号)或者 " (双引号) ,被这两个符号所包围起来的就被称为字符串。可以用来表示文本

注意'hello'和"hello"是等价的

可以使用 len 函数来计算一个字符串的长度

a = 'hello'
print(len(a))

 

可以使用+针对两个字符串的拼接

a = "hello"
b = " world"
print(a+b)

a = "hello"
b = 1
print(a+b)

此处只是字符串相加,不能拿字符串和其他类型相加 

2.2.3.4 布尔

布尔类型是一个特殊的类型(用于逻辑判断),取值只有两种:True(真)和False(假)

PS:这里True(真)和False(假)必须是首字母大写的

而真假是什么?

例如:

女生每月会有生理期(真)

男士每月会有生理期(假)

a = True
print(type(a))
b = False
print(type(b))

 三、变量类型的意义

类型决定了数据在内存中占据多大内存空间

  • float类型在内存中占据8个字节
  • int 动态扩容
  • bool为一个字节

类型约定了能对这个变量做了什么样的工作

  • 例如int / float 类型的变量,可以进行+ - * / 等操作
  • 而str类型的变量,只能进行+(并且行为是字符串拼接),不能进行 - * / ,但是还能使用len等其他操作 

四、动态类型特性 

在Python中,一个变量是什么类型,是可以在"程序运行"过程中发生变化的(也就是变量类型是可以改变的)。这个特性称为“动态类型”

a = 10
print(type(a))
a = 'hello'
print(type(a))

大家注意,程序执行过程中,a的类型从int变为str了,而这是在c++/Java中是不行的

  • 静态类型

程序运行时,变量的类型始终不变

  • 动态类型

程序运行时,变量的类型是可以改变的

一个编程语言,是否为动态类型,只取决于运行时,类型是否发生改变,不取决于变量定义的时候是否声明类型

当然了,动态类型是一把双刃剑

  • 对于中小型程序,他能大大节约代码量 
  • 对于大型程序,则提高了模块之间交互的成本(A提供的代码很难被B看懂)

其实这就是为什么很多公司一开始使用Python语言来完成项目,而后期又要针对原来的代码用其他语言重构

 五、注释

在编程中,注释就是写在代码中、给程序员看的“说明文字”。它不会被 Python 解释器执行,也就是说,计算机不会运行注释里的内容,但它是写给人看的

5.1 注释的作用

注释的作用

  • 解释代码:让别人(或未来的你)更容易理解代码的意图。
  • 调试代码:暂时屏蔽某段代码,方便调试。
  • 文档说明:在大型项目中,注释可以作为文档的一部分,说明函数、类或模块的功能。
  • 协作沟通:多人协作时,注释可以说明你为什么这样写代码。

5.2 注释的方式

5.2.1.单行注释

使用 # 符号,从 # 开始到这一行的末尾都会被当作注释。

# 这是一个打印语句,输出“你好,Python!”
print("你好,Python!")

5.2.2 多行注释(块注释)

虽然 Python 没有专门的多行注释语法,但我们可以使用三引号 '''""" 来实现多行注释:

'''
这是一个多行注释的例子。
你可以在这里写很多行说明。
这些内容不会被执行。
'''
print("多行注释演示")

注意:严格来说,三引号是字符串,如果它没有被赋值给变量,也不会被运行,因此可以当作注释使用。但在某些上下文中,它可能作为文档字符串(docstring)使用,我们后面会专门讲解。
 

5.2.3 注释的使用规范 

 注释的使用规范(建议):

类型 写法 示例
单行注释 # 注释内容 # 计算两个数的和
行末注释 代码 # 注释 x = 5 # 设置初始值
多行注释 ''' 注释内容 ''' 或 """ 注释内容 """
"""
这是一个函数说明:
输入两个参数,返回它们的和。
"""

5.2.4 优秀注释的例子 

注释写得好,代码更清晰!

# 定义两个变量
a = 3
b = 4

# 计算平方和
c = a**2 + b**2

# 输出结果
print(c)

对比没有注释的版本: 

a = 3
b = 4
c = a**2 + b**2
print(c)

你觉得哪种更容易理解呢?没错,加上注释之后,即使是一个新接触这段代码的人,也能迅速理解每一行代码的目的。

六、输入输出

6.1 和用户交用

  • 用户把消息传递给程序的过程,称为"输入"
  • 用户把结果展示给用户的过程,称为"输出"

输入输出的最基本方法就是控制台:用户通过控制台输入一些字符串,程序再通过控制台打印一些字符串

vs code运行程序的时候,下方弹出的窗口就是控制台

Mac OS自带的终端,也可以视为控制台

输入输出的最常见方法是图形化界面。我们平常对于电脑的操作基本都是图形化界面 

6.2 通过控制台输出

Python使用print函数输出到控制台

print('hello')

不仅可以输出一个字符串,还可以输出一个其他类型的变量

a = 10
print(a)
b = True
print(b)

  

更多的时候,我们希望能够输出的内容是混合了字符串的变量

例如:输出num = 10

num = 10
print(f'num = {num}')

  注意:这里的 f'num = {num}' 是一种格式化字符串,使用{}来嵌入变量或表达式

例如:

#格式化字符串
a = 10
#希望数字和字符串混在一起
print(f'a = {a + 10}')

6.3 通过控制台输入

Python使用input函数输入,从控制台读取用户的输入

# 通过控制台输入
num = 0
num = input('请输入一个整数:')
print(f'你输入的整数是{num}')

当我们在控制台输入10,再按回车,就运行完成

注意:

  • input的参数相当于一个"提示信息",也可以没有
  • input的返回值就是用户输入的内容,是字符串类型 

 下面这个代码大家想想会输出什么?两数相加吗?

a = input('请输入一个整数:')
b = input('请输入二个整数:')

print(f'a + b = {a + b}')

答案显而易见:此处的结果是字符串的连接而不是算术运算

那我们该怎么进行算术运算呢:转换类型

a = input('请输入一个整数:')
b = input('请输入二个整数:')

a = int(a)
b = int(b)

print(f'a + b = {a + b}')

小练习:输入5个小数,求5个小数的平均值

a = input('请输入一个整数:')
b = input('请输入二个整数:')
c = input('请输入三个整数:')
d = input('请输入四个整数:')
e = input('请输入五个整数:')

a = int(a)
b = int(b)
c = int(c)
d = int(d)
e = int(e)

avg = (a + b + c + d + e)/5
print(f'平均值: {avg}')


七、运算符

7.1 算术运算符

+ - * / % ** // 这种进行算术运算的运算符,称为算术运算符

算术规则:先算乘方,然后是乘除,最后是加减。如果运算过程中想修改默认的运行程序,就需要加上“()”

注意1:/中不能用0作为除数。否则会抛出异常

print(10/0)

 注意2 :整数/整数结果可能是小数,而不会截断

print(1/2)

 注意3:%不是“百分数”,而是求余数

print(7%2)

 关于求余数,有些同学容易蒙,其实这个就是我们小学学过的

7除以2,商3余1

注意4: **是乘方,不光能算整数次方,还可以算小数次方

print(4 ** 2)
print(4 ** 0.5)

注意5:  //是取整除法(也叫地板除)整数除以整数,结果还是整数(舍弃小数部分,并向下取整,不是四舍五入)

print(7 // 2)
print(-7 // 2)

7.2 关系运算符 

<  <=  >  >=   ==   !=  这一系列的运算符被称为关系运算符

  • <= 是"小于等于"
  • >= 是"大于等于"
  • == 是"等于"
  • != 是"不等于"

7.2.1 如果关系符合,则返回Ture,如果不符合,返回False

a = 10
b = 20
print(a < b)
print(a <= b)
print(a < b)
print(a >= b)
print(a == b)
print(a != b)

7.2.2 关系运算符不光针对整数/浮点数进行比较,还能针对字符串进行比较

a = 'hello'
b = 'world'
print(a < b)
print(a <= b)
print(a < b)
print(a >= b)
print(a == b)
print(a != b)

注意: 

  • 直接使用 == 或者 != 即可对字符串内容判断是否相等
  • 字符串比较大小,规则是“字典序”

字典序:

一个随意单词,例如absorb,这个单词再字典里都是按照字母顺序排列,如果首个字母相同,就比较第二个字母

我们认为一个单词再字典上越靠前,就越小,越靠后,就越大

7.2.3 对于浮点数来说,不要使用==判断相等

print(0.1 + 0.2 = 0.3)

浮点数在计算机中的表示并不是精确的!在计算过程中,就很容易出现非常小的误差

print(0.1)
print(0.2)
print(0.3)
print(0.1 + 0.2)

可以看到 0.1+0.2 其实不是0.3,而是一个和0.3极其接近的0.30000000004

那么该如何操作来得到我们理想的0.3呢:做差来判定差值小于允许的误差范围

a = 0.1 + 0.2
b = 0.3
print(-0.000001 < (a - b) < 0.0000001)

八、逻辑运算符 

8.1 and  or  not

 像 and、or、not 这一系列的运算符被称为 逻辑运算符

  • and:表并且,两侧操作数均为Ture,最终结果为Ture,否则为False(一假则假)
  • or:表或者,两侧操作数均为False,最终结果为False,否则为Ture(一真则真)
  • not:逻辑取反,操作数本身为Ture,则返回False,则返回Ture

a = 10
b = 20
c = 30

print(a < b and b < c)
print(a < b and b > c)

print(a > b or b > c)
print(a < b or b > c)

print(not a < b)
print(not a > b)

另一种写法:我们可以把  print(a < b and b < c)  等价于 a < b < c

8.2 短路求值

和其他编程语言类似,Python也存在短路求值的规则

  • 关于and,如果左侧表达式为False,则整体一定为False,右侧表达式不再执行
  • 对于or , 如果左侧表达式为Ture,则整体一定为Ture,右侧表达式不再执行
print(10 > 20 and 10 / 0 == 1)
print(10 < 20 or 10 / 0 == 1)

 九、赋值运算符

9.1 = 的使用

= 表示赋值,这个我们已经用过很多次了

=除了基本的用法外,还可以同时针对多个变量进行复制

9.1.1 链式赋值

a = b = 10

9.1.2 多元赋值

a, b = 10, 20

9.1.3 小案例:交换两个变量

基于链式复制(基础写法):

a = 10
b = 20

tmp = a
a = b
b = tmp
  • 先定义两个变量a,b
  • 将a的值赋给一个空变量
  • 再见b的值赋给a
  • 最后把空变量(这是存放的是a的值)赋给b

举个小例子:我们要将酱油和醋换一下,那这时候就一定要有个开瓶子暂时存放,让其中一个空出来,就例如让酱油空出来(酱油倒入tmp),这时候就可以把醋倒入酱油内

 

基于多元赋值:

a = 10
b = 20

a , b = b , a

9.2 复合赋值运算符

Python还有一些 复合赋值运算符 ,例如:+=   -=   *=   /=   %=

a = 10
a = a+1
a += 1
print(a)

 a += 1 等价于 a = a+1


本节完 


网站公告

今日签到

点亮在社区的每一天
去签到