BUG-Fly BUG-Fly
  • 首页
  • BUG-EXP
  • 编程开发
  • 电脑评测
  • 生活分享
  • 友情链接
  • Fly全站协议声明
首页 › Python › Python基础语法

Python基础语法

BUG-Fly
4 年前

一、基础语法

  • 注释:# 标注的文本
  • 数字
    • 整数:不区分long和int
    • 进制0xa,0o10,0b10
    • bool:True False
    • 浮点数:小数
    • 复数:1=2j
  • 字符串
    • 使用 ' " 单引号双引号引用字符串的序列
    • '''和"""可以跨行,可以在其中自由使用单双引号
    • 在字符串前面加r或者R前缀,表示该字符串不做特殊的处理
  • 转义序列
    • \\ \t \r \n \' \"
    • 前缀r,把里面所有的字符当做普通字符串处理
  • 缩进
    • 不使用C等语言的花括号,而是采用缩进表示层次关系
    • 约定使用4个空格缩进
  • 续行
    • 在行尾使用\
    • 如果使用各种括号,认为括号内是一个整体,内部跨行不用\
  • 标识符
  1. 一个名字,用来指代一个值
  2. 只能字母、下划线和数字
  3. 只能以字母或下划线开头
  4. 不能是Python的关键字,例如def class等作为标识符
  5. Python对大小写敏感

约定:

不允许使用中文

不允许使用歧义单词,例如class_

在Python中不随便使用下划线开头的标识符

  • 常量
    • 一旦赋值就不能改变值的标识符
    • Python中无法定义常量
  • 字面常量
    • 一个单独的量,例如12,'abc'
  • 变量
    • 赋值后可以改变值的标识符

二、Python的语言类型

  • Python是动态语言,强类型语言
  • 静态编译语言
    • 事先声明变量类型,类型不能在改变
    • 编译时检查
  • 动态编译语言
    • 不用事先声明变量类型,随时可以复制为其他类型
    • 编程时不知道是什么类型,很难推断
  • 强类型语言
    • 不同类型之间操作,必须强制类型转换为同一类型。print('Fly'+2)
  • 弱类型语言
    • 不同类型间可以操作,自动隐式转换

三、运算符

  • 算数运算符
    • + - * / % **
    • 自然数除/结果是浮点数,整除//。注:2.X中/和//都是整除
  • 位运算符
    • & | ~ ^ << >>
    • 常用方式:乘除2的倍数,32//4 相当于32>>2
    • ~12 = -13
  • 比较运算符
    • == != > < >= <=
    • 返回一个bool
    • 1<'1' 1=='1'
    • 链式比较操作符
      • 4>3>2
  • 逻辑运算符
    • 与或非 and or not
    • 短路运算符
      • and 如果第一个表达式为False,后边就没有必要计算,这个逻辑表达式一定是False
      • or 如果第一个表达式是True,后面没有必要计算,这个逻辑表达式一定是True
  • 赋值运算符
    • a = min(1.10)
    • += -= *= /= %=
    • x=y=z=100
  • 成员运算符
    • in, not in
  • 身份运算符
    • is, is not

运算符优先级(由高到低)

运算符描述
'expr'字符串转换
{key:expr,……}字典
[expr1,expr2……]列表
fun(expr,……)函数调用
x[index:index]切片
x[index]列表索引取值
x.attribute属性调用
~x按位取反
+x,-x正,负
x**y幂
x*y,x/y,x%y乘,除,取模
x+y,x-y加,减
x<<y,x>>y移位
X&Y按位与
x^y按位异或
x|y按位或
x<y,x>y,x!=y……比较
x is y,x is not y等同测试
x in y, x not in y成员判断
not x逻辑否
x and y逻辑与
x or y逻辑或
lambda arg,……:expr匿名函数
  • 算数运算符>位于运算符>身份运算符>成员运算符>逻辑运算符
  • 记不住,用括号
  • 长表达式多用括号

四、表达式

  • 由数字,符号,括号,变量等的组合
    • 算数表达式
    • 逻辑表达式
    • 赋值表达式
      • Python中,赋值即定义,如果一个变量已经定义,赋值相当于重新定义

五、内存管理

  • 变量无需事先声明,也不需指定类型
    • 动态语言的特性
  • 编程中一般无需关心变量的存亡,也不需要关心内存的管理
  • Python中使用引用计数记录所有对象的引用数
    • 当对象引用数变为0时,它就可以被垃圾回收GC
    • 计数增加:赋值给其它变量就增加引用计数
    • 计数减少:
      • 函数运行结束时,局部变量就会自动被销毁,对象引用计数减少
      • 变量被赋值给其它对象。例如x=3;y=x;x=4
  • 有关性能的时候,就需要考虑变量的引用问题,但是该释放内存,还是尽量不是放内存,看需求

六、分支

单分支

  • if 语句
    if condition:
    代码块
    condition必须是bool类型,这个地方有一个隐式转换bool(condition)
    if 1<2:
    print('少的')

真值表

对象/常量值
""空字符串假
"string"真
0假
>=1真
<=-1真
()空元组假
[]空列表假
{}空字典假
None假
真值表

多分支

  • if....elif....else语句
    if codition1:
    代码块1
    elif codintion2:
    代码块2
    ....
    else:
    代码块
a = 5
if a<0:
    print('negative')
elif a==0:
    print('zero')
else:
    print('positive')

分支嵌套

score = 80
if score < 0:
    print('wrong')
else:
    if score == 0:
        print('egg')
    elif score <= 100:
        print('right')
    else:
        print('too dog')

嵌套结构可以是分支,循环的嵌套,可以互相嵌套多层

七、循环

while语句

  • 语法
    while condition:
    block
    • 当条件满足,即condition为True,进入循环体,执行block
flag = 10
while flag:
    print(flag)
    flag -= 1

for语句

  • 语法
    for ele in iterable:
    block
    • 当可迭代对象中有元素可以迭代,进入循环体,执行block
  • range函数
flag = 10
for i in range(10):
    print(i+1)

for i in range(10):
    print(10-i)

continue语句

  • 中断当前循环的当次执行,继续下一次循环
  • 举例:计算10以内的偶数
for i in range(10):
    if not i%2:
        print(i)


for i in range(0, 10, 2):
    print(i)


for i in range(0,10):
    if i&1:
        continue
    print(i)

break语句

  • 终止当前循环
  • 举例:计算1000以内的被7整除的前20个数
count = 0
for i in range(0, 1000, 7):
    print(i)
    count += 1
    if count >= 20:
        break

总结

  • continue和break是循环的控制语句,只影响当前循环,包括while,for循环
  • 如果是嵌套循环。continue和break只影响语句所在的那一层循环
  • continue和break不是跳出语句块,所以if cond:break 不是跳出if, 而是终止if外的break所在的循环

循环else子句

  • 语法
while condition:
    block
else:
    block
for element in iteratable:
    block
else:
    block
  • 如果循环正常执行结束,就执行else子句;如果使用break终止,else子句不会执行
Python
6
0
BUG-Fly
写BUG飞起的Coder
某软件资源站采集
上一篇
Python内置数据结构——列表(list)
下一篇

评论 (0)

请登录以参与评论
现在登录
    发表评论

猜你喜欢

  • 如何优雅地在 Chrome Headless 模式下触发网站的 favicon 请求
  • Python 函数
  • Python内置数据结构——列表(list)
  • Flask 项目部署教程——宝塔部署

词云

2020 (1) Flask (1) Go (1) JS逆向 (1) Linux (1) Playwright (1) PySide2开发 (1) Python (13) Python实战项目 (5) 固原一中 (1) 国庆70周年 (1) 开源 (1) 数据结构和算法 (2) 数组 (1) 新年贺词 (1) 新月诗刊社 (3) 电脑评测 (3) 软件教程 (3) 雨雯公益 (1) 音乐 (3)

BUG-Fly

写BUG飞起的Coder
34
文章
5
评论
324
获赞
  • 首页
  • 友情链接
Copyright © 2019-08-20-2025 BUG-Fly. Designed by BUG-Fly.

Fly小站已经运行:

津ICP备19007312号
技术基佬基地: KRUNK ZHOU Legna 科技
  • Python13
  • Python实战项目5
  • 新月诗刊社3
  • 音乐3
  • 电脑评测3
  • 首页
  • BUG-EXP
  • 编程开发
  • 电脑评测
  • 生活分享
  • 友情链接
  • Fly全站协议声明