Python的基本程序结构涉及代码格式、注释、关键字、英文字母大小等内容。
2.2.1 代码格式
1. 代码缩进
2. 语句换行符
使用"\"进行换行,可以用在if条件判定语句
3、字符串换行符
\,
'''三个单引号
"""三个双引号
各类括号 ()、[]、{}
3. 语句分隔符
";" 分号
4、关键字和命名规范
Python语言支持使用大小字母、数字、下划线、汉字多种组合给变量、函数命名,但是不能以数字开头,包含空格。
2.2.2 变量与对象
变量没有类型,变量的数据类型只变量所指向的内存中对应对象的数据类型
1. 对象和变量的引用关系
x=3 , 1)创建对象3这个对象, 2)检查系统是否已存在x变量,如果不存在创建
3)简历变量到对象3的引用关系
当变量所创建的对象没有任何变量引用时,对象会被回收
x =4 ,对象3就会被回收
2.对象赋值的差异 is or ==
2个对象的比较 is 是比较在内存中的对象, == 是比较对象的值
创建一个equal类,用来测试is 和 ==
class equals(object):
def __init__(self,x,y):
self.x = x
self.y = y
def equals(self):
if self.x is self.y:
print("x 和 y是一个对象",id(self.x),id(self.y))
elif self.x == self.y:
print("x 和 y对象的值相等");print("x:",id(self.x),", y:",id(self.y))
else :
print("x和y不一样")
元素组
aaa = (1,2,3)
bbb = (1,2,3)
c = tuple.equals(aaa,bbb)
c.equals()
结果 aaa 和 bbb 都指向都一对象:x 和 y是一个对象 4318694912 4318694912
list
aaa = [1,2,3]
bbb = [1,2,3]
c = tuple.equals(aaa,bbb)
c.equals()
执行结果
x 和 y对象的值相等
x: 4319508800 , y: 4319515328
这个例子说明is比较变量的内存地址是否相同,==是值是否相同,
非可变数据类型和可变数据类型在内存中存储方式的差异性
变量命名规范
1)带一个下划线的变量,用来标明这是一个受保护的变量。但外部对象还是可以访问该变量,但是不能使用import语句导入。
2)前后分别带两个下划线的变量,是指系统内置变量或私有属性,如__main__,该变量也不能通过import语句导入并且还限制尾部对象直接访问
3)变量使用全大写并在单词之间加下划线分割,是指不会改变的全局变量(可以理解为常量)
4)已两个下划线开始且结尾无下划线的为类的本地变量,如__xyz
赋值语句 Assignment statement
赋值语句 | 类型 | 赋值结果 | 数据类型 |
a=10 | 基本形式 | 把10赋值给a变量 | a是整型 |
a,b=10,20 | 元组赋值 | a=10 b=20 | a和b是整型 |
[a,b]=[10,20] | 列表赋值 | a=10 b=20 | a和b是整型 |
a,b='AB' | 序列赋值 | a=A b=B | a和b是字符串型 |
a,b=[10,20] | 序列赋值 | a=10 b=20 | a和b是整型 |
a,*b='hello' | 扩展的序列解包 (Python 3中特有) | a=h b=['e','l','l','o'] | a是字符串型 b是列表型 |
a=b=c=10 | 多目标赋值 | a=10 b=10 c=10 | a、b、c都是整型 |
a+=1 | 增强赋值 | 当a为不可变数据类型,等 式类似于a=a+1 | a是整型、元组、字符串或其 他不可变形式 |
增强赋值,可变数据类型和非可变数据类型存在差异
if __name__ =='__main__': x = y = [1,2] print('x->',x) print('y->',y) x += [6] print(x,y) x = x + [9] print(x,y)
运行结果为
x-> [1, 2]
y-> [1, 2]
[1, 2, 6] [1, 2, 6]
[1, 2, 6, 9] [1, 2, 6]
增强赋值是指改变原来变量地址修改,而普通的赋值语句+则对于可变数据类型,可能创建新的对象。
函数
除了python的内置函数,用户可以自定义函数,函数定义规则如下:
1)以def关键字开头,并在其后写入函数的名称以及圆括号
2)任何存入参数和变量都要写在圆括号内,
3)在圆括号之间可以放入自定义参数
4)函数内容代码要以冒号开始,并采取缩进格式
5)通常return语句代表函数的结束。
基本输入和输出
1. 输入函数input()
2. 字符串解析函数eval()
它能解析字符串内容并加以运算执行,但在eval函数括号内表达式的参数只能是字符串,byte,code object类型。
b = input('请输入一个整数->')
c = eval(b*2)
print('c->',c)
print('c->',eval('int(b)*2'))
请输入一个整数->6
c-> 66
c-> 12
3. 字符串转为整型函数 int()
4. 字符串转为浮点型函数 float()
5. 输出函数print()
可以指定分隔符和结尾符
print('kelly','cici','rose','lycoris',sep=', ',end=' good lucky!') 结果: kelly, cici, rose, lycoris good lucky!