python学习笔记——语句

语句基础知识

1.1 print语句

print:

name='bob'
age='42'
print(name,age)
print(name,age,sep='_') #用_替换默认间隔符空格
print(name,age,end=' ') #用空格替换默认结束符换行符

1.2 import语句

1.2.1 模块

定义:module,可以看为一个工具类,可共用。其中能包含函数、类、变量、可执行代码

来源:python内置模块 第三方模块 自定义模块

模块内置属性:

  • name:若作为模块导入则为模块名,若为主函数执行则为__main__
  • file:当前模块绝对路径
  • dict:由模块的数据属性组成的字典
  • doc:模块中用于描述的文档字符串
  • package
  • path
  • bases:类的所有父类构成元素
1.2.2 包

定义:package,包含模块的文件夹。一个文件夹(包)包含一个__init__.py 用于组织包,方便管理各个模块之间的引用、控制着包的导入行为,导入时执行__init__.py

1.2.3 命名空间
  1. local namespace:每个函数都有一个local namespace,存储函数的变量
  2. global namespace:每个模块都有一个global namespace,存储模块的变量
  3. build-in namespace:可以被任意模块访问,包含了build-in function和build-in exception

变量搜索顺序:

  1. local namespace,搜索当前函数或类方法
  2. global namespace,搜索当前模块
  3. build-in,搜索build-in函数和变量,若还不是则会报错
  4. 对于闭包,若在local namespace找不到该变量,则下一个查找目标是父函数的local namespace
1.2.4 from module import和import module

from module iport是将模块module的函数或者变量引到当前的命名空间,调用时无需module.name

import module将module本身引入,包括其命名空间,调用时需module.name

1.2 赋值语句

序列解包:

x,y,z=1,2,3
x,y=y,x #交换x,y值
value=1,2,3
x,y,z=value

d={'x':'as'}
a,b=d

a,b,*c=1,2,3,4  c-->[3,4]

链式复制:

x=y=1

增强赋值

x+=1
x*=2
x/=5

1.4 条件语句

bool值:

  • False None 0 “” {} [] () 都为假
  • 其余值都为真

if语句和else语句:

name='Job'
if name.endwith('Job'):
    print('hello')
else:
    print('world')

条件表达式:

str="hello" if name.endwith('Job') else "world"

elif子句:

num=10
if num>0:
    print('s')
elif num>-1 and num=<0:
    print('asd')
else:
    print('asd')

常见条件:

  • x==y
  • x<y
  • x>y
  • x!=y
  • x is not y
  • x is y
  • x in y
  • x not in y
  • 1<x<10 支持链式比较
  • x>10 and x<100
  • x<0 or x>5
  • not x

断言(assert):

assert 0<age<100
assert 0<age<100,"the age must be realistic"

1.5 循环

while循环

x=1
while x<=100:
    x+=1

for循环:

word=['a','b','c']
for word in words:
    print(word)

for number in range(1,100)
    print(number)
    #打印0-99
    
d={'x':1,'y',2}
for key in d:
    print(d[key])

for key,value in d.items():
    print(key,value)

迭代工具:

  1. 并行迭代
names=['bob','jack']
ages=[44,12]
for name,age in zip(names,age):
    print(name,age)
    # 两个序列不一样长时zip取较短序列缝合
  1. 迭代时获取索引
for index, string in enumerate(strings):
    if 'ab' in strings:
    strings[index]='cd'
  1. 跳出循环
  • break
  • continue
  • 循环后跟else,正常结束才执行,break结束循环时不执行
for x in range(0,99):
    if x==50:
        break
else:
    print('asd')
  1. 简单推导
y=[x*x for x in range(10)]
#y  ----<[0,1,4,...,81]

z=[x+y for x in range(3) for y in range(4)] #嵌套for

y=[x*x for x in range(30) if x % 3 == 0]
#结合if

1.6 pass、del、exec语句

  • pass 占位符,python中代码块不能为空
  • del 删除对象,删除的是对象,不是值
  • exec执行字符串代码
exec("print('asd')")
#有可能会影响到当前命名空间的变量

#指定命名空间,将变量存储到字典中
scope={}
exec('x=1',scope)
scpoe['x']

#exec执行的是语句,不返回值,eval里的是表达式有返回值
eval("x*10")  #返回10
#eval('x=10') 会报错,x=10是表达式不是语句

1.7 区分表达式和语句

  • 表达式expression:x+1 x*10 fun() 执行一些操作返回一个值
  • 语句statement:(不一定返回值)分为简单语句和复杂语句
x=10   赋值语句
if x>10:
    pass   if语句
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值