返回笔记列表
01 · NOTES / Python

基础语法

2026 年 1 月 11 日

基础语法

分类:Python

最后修改时间:2026-01-11 05:49:23.796


标识符命名规则

标识符:程序中可以自己起名的内容(变量名、函数名、类名、模块名等)


常量

用全大写变量名表示常量,常量可以被修改


变量

变量:是一个代号,用来与某个值(字面量、函数、类等)建立绑定关系 在读取或修改某个值时,可以通过变量去读取和修改 语法:变量名 = 值

和C语言不同的地方是 python不可以先声明再赋值,而是直接进行赋值(名字绑定)

python是动态类型语言

//在C语言中,可以声明的同时赋值
int a = 10;
//或,先声明,再赋值
int a;
a = 10;

//在python中,没有声明这个概念,本质是"变量名"->指向某个"值"
a = 10

//python是动态类型语言
a = 10
print(type(a))   # <class 'int'>
a = 3.14
print(type(a))   # <class 'float'>
a = "hello"
print(type(a))   # <class 'str'>


注释


字符编码

编码:将字符集转成二进制的过程 解码:将二进制转成字符集的过程

python3默认使用UTF-8编码解码


数据类型

python中变量无类型,数据有类型

print(type('张三'))        #<class 'str'>
print(type("18"))          #<class 'str'>
print(type(12))            #<class 'int'>
print(type(52.3))          #<class 'float'>
name='李四'
print(type(name))          #<class 'str'>

整形

#所谓整型,就是没有小数点的数字,可以是正数,也可以是负数,也可以是0。
age = 18
temp = -15
Score = 0

#当数很大时,我们可以使用下划线将数字进行分组,来让数字变得更易读。
salary = 300_000
house_price = 3_200_000
graduates = 12_000_000
print(salary, house_price, graduates)

#Python中整数的上限值,取决于执行代码的计算机的内存和处理能力。
a=9**999
print(a)

浮点型

#浮点型就是带有小数点的数字。
weight = 65.2
balance = 1425.58
out_temp = -25.2
price = 120.0

#浮点型的科学计数法表示。
speed_of_sound = 3.4e2         # 3.4乘以10的2次方。
world_population = 7.8e9        # 7.8乘以10的9次方。
distance_sun_earth = 1.496E8    # 1.496乘以10的8次方。
speed_of_light = 2.998E+8       # 2.998乘以10的8次方。

one_ml =1e-3 # 1乘以10的-3次方。
one_mg =1E-3 # 1乘以10的-3次方。

字符串

# 单引号和双引号的写法是等价的,二者都不能直接换行(要用圆括号才能换行),单引号用的多.
message1='尚硅谷,让天下没有难学的技术!'
message2="尚硅谷,让天下没有难学的技术!"
# 三个单引号的写法,可以直接换行,并且可以作为多行注释使用。
message3='''尚硅谷,让天下没有难学的技术!'''
# 三个双引号的写法,可以直接换行,也可以作为多行注释使用,还能作为文档字符串使用。
message4="""尚硅谷,让天下没有难学的技术!"""
name = '张三'
gender = '男'
weight = 65.2
age = 12
# 写法一:直接用加号进行拼接,写起来很麻烦且代码很乱,而且只能是字符串之间拼接。
info1 ='我叫'+ name +',我是'+ gender +'生'
# 写法二:使用占位符#%s占位字符串,%f占位浮点数,%i占位整数,%d占位十进制的整数,%s是万能的。
info2 ='我叫%s,我是%s生,我体重是%d,年龄是%d'%(name,gender,weight,age)
# 写法三:使用f-string
info3 =f'我叫{name},我是{gender}生,我体重是{weight},年龄是{age}'
print(info3)

字符串精度控制

**字符串占位** ![](/uploads/20260901-4b5078.png) **浮点数占位** ![](/uploads/20260901-59313c.png) **整数占位符**
</column>
<column ratio="81.25">
	![](/uploads/20260901-83cd7f.png)
</column>

转义字符

\'   单引号
\"   双引号
\\   反斜杠本身

\n   换行
\t   制表符(Tab)
\r   回车
\b   退格

数据类型转换

  • 把指定数据转为字符串:str()

  • 把指定数据转为整型:int() 数字之间有空格或 . 以及字符,都会报错

  • 把指定数据转为浮点型:float() 数字之间有空格或 . 以及字符,都会报错


算术运算符

与C语言不同的是 /是除,但是结果始终是浮点数 //也是除,但是结果是整数 **是指数,比如2**3=8


赋值运算符和复合赋值运算符

赋值运算符 a=18

复合赋值运算符

age = age +1 等同于 age += 1

*= /= //= %= **=


分类:Python / 基础语法

最后修改时间:2026-01-12 06:46:20.495

字面量


  1. 所谓字面量,就是直接写在代码中的具体值
  2. Python 的字符串中可以包含任意字符,且必须使用引号包起来
  3. 字符串的引号,可以是:单引号、双引号、三个单引号、三个双引号
  4. 写在 Python 文件头部的字符串,会被自动识别成docstring(文档字符串)。
  5. 文档字符串的主要作用是:对当前 Python 文件进行一些说明,且文档字符串必须用三个双引号。
  6. 调整了一些 PyCharm的设置:检查代码、AI智能提示。

布尔类型

True 1

False 0

#自己定义的布尔值
a = True
b = False
#靠程序执行得到的布尔值
c=5>3
d=7<2
print(type(a),a)    #<class 'boll'> True
print(type(b),b)    #<class 'boll'> False
print(type(c),c)    #<class 'boll'> True
print(type(d),d)    #<class 'boll'> False
#布尔类型是int类型的子类型,底层的本质是用1表示True,用0表示False
print(int(True))   #1
print(int(False)) #0
print( 4 + True)  #5
print(True + True) #2
print(bool(1))  #True
print(bool(200))  #True
print(bool(-10))  #True
print(bool(0))  #False 

#任意字符串的布尔值都是True
print(bool('0'))  #True
print(bool('1'))  #True
print(bool('Hello'))  #True 
#空字符串布尔值为False

逻辑运算符

And

#and用于判断其两侧的值,是否都为True
print(True and True)     #True
print(True and False)    #False
print(False and True)    #False
print(False and False)   #False
print(8 >7and 8>7)       #True
print(8 >7and 2>3)       #False
print(2 >3 and 8>7)      #False
print(2>3and 2>3)        #False
#and具备"逻辑短路"能力
print(False and 3 / 0)   #False
print(True and 3 / 0)    #报错,因为判断了True要继续判断3/0,0不能作除数,所以报错
#and返回的不一定是布尔值,它返回的是某个参与计算的值本身
#规则:and会先看左边,如果左边是"假",就直接返回左边,否则返回右边
#备注:若参与and运算的值不是布尔值,那Python会自动转为布尔值,然后再进行逻辑操作
print(2 - 2 and True)   #0
print(''and True)       # 
print(True and 8 / 2)   #4.0
print(3 + 3 and 3 *4)   #12

or

#or用于判断其两侧,是否至少有一个为True(只要有一个是True,那就返回True)
print(True or True)   #True
print(True or False)  #True
print(False or True)  #True
print(False or False) #False
#or同样具备逻辑短路能力
#or返回的也不一定是布尔值,它返回的是参与计算的值本身
#规则:or会先看左边,如果左边为"真",就直接返回左边,否则返回右边
print(7 - 2 or False)   #5
print('你好'or'Hello')   #你好
print(False or 8 / 2)   #4.0
print(2 - 2 or 3 *4     #12

not

#not用于取反
print(not True)    #False
print(not False)   #True
print(not 3 >2)    #False
print(not 3 < 2)   #True
#not返回的值,一定是布尔值!
print(not 0)      #True
print(not 3 >2)   #False
print(not 9 // 4) #False
print(not 'abc')  #False

进制

十进制:用10个符号来表示数 满十进一 二进制:用2个符号来表示数 满二进一 八进制:用8个符号来表示数 满八进一 十六进制:用16个符号来表示数 满十六进一

十进制转换

不同进制写法

# Python中所有的非十进制数字,只是代码层面的编写方式,是给程序员看的 # Python在对上面的num1、num2、num3进行计算、打印等操作时,会自动将其转为十进制


输入语句

input()获取到的内容全都是字符串类型

print('请输入你的年龄')
age = input()
print(type(age))              #<class 'str'>
print(f'你今年的年龄是{age}')  #18
age = input('请输入你的年龄')
print(type(age))              #<class 'str'>
print(f'你今年的年龄是{age}')  #18

分类:Python / 基础语法

最后修改时间:2026-01-13 05:08:00.672

比较运算符

= = 判断左右两侧是否相等
! = 判断左右两侧是否不等
> 判断左侧是否大于右侧
< 判断左侧是否小于右侧
> = 判断左侧是否大于等于右侧
< = 判断左侧是否小于等于右侧

a = 5
b = 6
print(a = b)    #False
result = a != b
print(result)   #Ture


分支

分支:基于判断结果,来决定走哪条路径

分支之间是互斥

单分支

if 判断条件:    #判断条件可以是关系运算。也可以是布尔值
	执行代码1
	执行代码2
#if后的执行语句必须有要空格,并且每个执行语句前的空格数相同
age = int(input('请输入你的年龄'))
if age >= 18:
    print('你是成年人')
    print(f'你的年龄是{age}岁')

双分支

if-else

if 判断条件:
	条件成立时执行的代码1
	条件成立时执行的代码2
else:
	条件不成立时执行的代码1
	条件不成立时执行的代码2
age = int(input('请输入你的年龄'))
if age >= 18:
    print('你是成年人')
    print(f'你的年龄是{age}岁')
else:
    print('你是未成年人')
    print(f'你的年龄是{age}岁')

多分支

if 判断条件1:
	条件1成立时执行的代码
elif 判断条件2:
	条件2成立时执行的代码
elif 判断条件3:
	条件3成立时执行的代码
else:
	上述所有条件不成立时执行的代码
age = int(input('请输入你的年龄'))
if age <= 18:
    print('你是幼儿')
elif age <= 18:
    print('你是青少年')
elif age <= 30:
    print('你是青年')
elif age <= 50:
    print('你是中年')
elif age <= 60:
    print('你是中老年')
else:
    print('你是老年')

嵌套分支

if 判断条件1:
	条件1 成立时执行的代码1
	条件1 成立时执行的代码2
		if 判断条件2:
			条件2 成立时执行的代码1
			条件2 成立时执行的代码2
		elif 判断条件3:
			条件3成立时执行的代码
		else:
			条件2、条件3都不成立时执行的代码1
			条件2、条件3都不成立时执行的代码2
else:
	条件1 不成立时执行的代码1
	条件1 不成立时执行的代码2
		if 判断条件4:
			条件4 成立时执行的代码
		else:
			条件4不成立日对吧代码
age =int(input('请输入你的年龄'))
has_report=input('你是否提交了体检报告:(是/否)')
level=int(input('请输入你的会员等级:(1/2/3)'))

if 18 <= age <= 45:
    print('您的年龄符合要求!')
    if has_report=='是':
        print('您已提交报告!')
        print('您可以参加比赛!')
        if level==1:
            print('您的会员礼物是 纪念T恤!')
        elif level==2:
            print('您的会员礼物是专业跑鞋!')
        elif level==3:
            print('您的会员礼物是运动耳机!')
        else:
            print('比赛结束,感谢您的参与!')
    elif has_report=='否':
        print('您未提交体检报告,不能参加比赛!')
    else:
        print('您提交的报告有误,请重新提交!')
else:
    print('您的年龄不符合要求!')

分类:Python / 基础语法

最后修改时间:2026-01-14 06:22:17.452

循环

while循环

while 循环条件:
	条件成立时执行的操作1
	条件成立时执行的操作2
	
#循环条件为True会继续循环,为False会终止循环。
#要设计好循环条件,避免死循环。
riddle = '从0-100中选一个数'
answer = '23'
guess = ''
print(f'问题是:{riddle}')
while guess != answer:

    guess= input('请输入答案')
    if guess == answer:
        print('回答正确')
    else:
        print('回答错误')

for循环

for 当前取出的值 in 可迭代对象:
	要执行的循环操作1
	要执行的循环操作2
#可迭代对象中的元素有多少个,循环就执行多少次。
#只要不在循环内部修改可迭代对象,for 循环通常是不会出现死循环的。
#数字循环
#使用for循环遍历range()所指定的数字范围
for n in range(1,4)
	print('你好',n)
#你好1
#你好2
#你好3

字符串循环
#使用for循环遍历字符串
for m in 'abcd'
	print(m)
#a
#b
#c

for循环还能遍历很多我们没有讲到的东西,比如:元组、列表、对象...

#加密代码
text = input('请输入要加密的文字:')
secret = ''
for t in text:
    secret += chr(ord(t) + 1)
print(f'加密后的文字是:{secret}')

#解密代码
secret = input('请输入要解密的文字:')
text = ''
for s in secret:
    text += chr(ord(s) - 1)
print(f'经过解密的文字是::{text}')

while循环 和 for循环 的区别

九九乘法表

for row in range(1,10):
    for item in range(1,row+1):
        print(f'{item}*{row}={item*row}',end='\t')
    print() 


continue和break

continue:跳过本次循环剩余语句,随后进入下一次循环。 break:立即终止循环,不再执行后续循环。

TAGSpython