1.几个概念
表达式:一个类似于数学公式的东西,由数字,算符等组成
- 表达式不会对我们的程序产生实质性的影响
- 表达式可以对什么产生作用呢?在交互模式中可以自动将表达式进行输出,仅仅用于计算一些结果;如果想让表达式产生影响,需要将表达式变成语句;
语句:语法上自成单元的体系;
- 语句的执行一般会对程序产生一定的影响,在交互模式中不一定会输出语句的执行结果;
- 在程序中一般用语句完成某种功能;例如:print() input() 在交互模式中不一定会输出语句的结果
- 代码块 在一个代码块中的程序或者都执行或者都不执行
- pass 空语句,在一个代码块中,如果没有语句,会报错,需要一个语句进行占位;
程序:
- 程序 :由一条一条的语句和表达式组成的, 按照一定的顺序执行 语句和表达式 表达式和语句构成程序中的最小单位
函数
- 函数:比如 print 就是最简单的函数,作用:打印功能
- 函数就是一个完成特定功能的语句
- 形如 xxx()的 叫函数
函数的分类:
- 内置函数(内建函数):python自带的函数
- 自定义函数:def xxx();
- 参数 ()中的内容是函数的参数,可以是1个,也可以是多个,多个用逗号隔开;
- 函数不一定有返回值,不是所有的函数都有返回值,
2.标识符
python 语言的组成
- 关键字
- 标识符
- 注释
- 变量和数据
- 语句
- 函数
- 序列
- 以上内容为其他语言共用的内容,学习时需要按照这样的思想记住,编程思想都是一样的,语句不同但是表达的思想一样
- 关键字:具有一些特殊功能的标识符,python内部使用了,我们就不能再使用了
- 查看关键字:import keyword keyword.kwlist
标识符:
- 开发人员在程序中定义的变量名 函数名 类名 不能是关键字名
- 命名方式 驼峰命名法
- 小驼峰 大驼峰
- 小驼峰 myName myDog
- 大驼峰 MyName MyDog
- 下划线命名法: my_name my_dog
3.基本数据类型
数据类型
- 数据类型 指的是变量值的类型,可以为变量赋哪些值,为了方便开发,数据类型的引入和引用,整数类型 int 小数类型:float
- 整数:固定的,整数的最大值:如果计算结果超过计算机的最大值,就会报内存错误
- 如果开发中遇到一个数字非常大,可以用_分开
- 比如 c = 123_456_789 print© 依旧打印123456789
- float 类型 10进制转化为2进制 表示时需要进制转化,然后可能会出现转换有差距,但是无限接近准确值
BOOL 值
- 作用:做逻辑判断
- True 和 False 是有数值的,True 为1 False 为0
- BOOL值类型实际上也属于整型
- 死循环 while True: while 1: 都是对的
- Null 不存在 空值 不存在
4.变量
- 内存中的一块区域,通俗的讲变量就是给数据起个名字
- 两个对象相等 和两个对象是同一个对象是两个概念
- 两个对象不是相同的对象,所以ID是不一样的
- 变量的运算
验证
- 在验证阶段,我测试了普通变量(数字和字符串)发现,对普通的变量,其内容一致的时候,对应的ID也是一样的,说明用的是一块空间;而对列表,如果是通过l=m这种方式赋值的,其共用一块空间,改动一个另一个也会变动,但是,如果直接赋值的话,两者的空间不同
import keyword
import copy
print(keyword.kwlist)
a = 1
b = 1
print(id(a))
print(id(b))
#这样直接赋值的话,两个值共用的是1个空间
#如果令其中一个变了,其ID是变化的,另一个不变
a = 2
print(id(a))
print(id(b))
#普通变量用的是一个空间,
str1 = '1234567'
str2 = '1234567'
str3 = '123456'
print('id(str1)=',id(str1))
print('id(str2)=',id(str2))
print('id(str3)=',id(str3))
l = [1,2,3,4,5,6]
k = [1,2,3,4,5,6]
print('id(l)=',id(l))
print('id(k)=',id(k))
#列表用的不是一样的空间
m = l
print(m)
print('id(l)=',id(l))
print('id(m)=',id(m))
l.append(7)
print('l=',l)
print('m=',m)
l.sort(reverse=True)
print('l=',l)
print('m=',m)
#字典操作
dic_a = {'name':'lcy'}
print(dic_a)
dic_b = copy.deepcopy(dic_a)
print(dic_a)
print('dic_a id is',id(dic_a))
print('dic_b id is',id(dic_b))
#通过copy实现的深度拷贝也地址也是不同的
5 字符串
- 什么是字符串
- 注意 单引号和双引号不能混合使用
- 单引号和双引号需要匹配,比如 ‘what‘s up’
就会报错,相同引号之间不能嵌套 可以通过“what’s up!”
如果不用这种方式,也可以用转义字符 以\ 开头,后跟一个或几个字符
所以可以用反斜杠 \ ‘what’s up!’
转义字符有很多 \t \n \(表示\ 转义转义符)
print('hello,world')
print('hello,','world')
c = 'hello,world'
print(c)
d = 'i\'m lcy'
e = "i'm lcy"
print(d)
print(e)
f = '大漠孤烟直,\n长河落日圆.'
print(f)
g = '大漠孤烟直,\t长河落日圆.'
print(g)
h = '大漠孤烟直,\\长河落日圆'
print(h)
i = 'c:\new.txt'
print(i)
j = 'c:\\new.txt'
print(j)
k = r'c:\new.txt'
#将转义视为字符
print(k)
l = r'i\'m lcy'#这样居然是可以的,先转义再让转义失效
print(l)
- 或者使用r:表示单纯字符串,\表示\
- dos = r’c:\news’ 此时不再转义
- 长字符串 文档字符串 三个引号表示一个字符串,可以换行,可以保留字符串的格式
lcy = '''
单车欲问边,属国过居延。
征蓬出汉塞,归雁入胡天。
大漠孤烟直,长河落日圆。
萧关逢候骑,都护在燕然。
'''
print(lcy)
运行结果:
单车欲问边,属国过居延。
征蓬出汉塞,归雁入胡天。
大漠孤烟直,长河落日圆。
萧关逢候骑,都护在燕然。
作业:
练习代码:
• 课程作业
• 练习课堂中老师敲的代码
• a,b = 6, 8 我想让a=8 b=6我该怎么办?用2种方式实现
• print()语句练习,用两种方式打印 hello,python
:
课堂复习:
表达式:不会对程序产生实质性的影响
语句 会对程序产生影响
但是不一定会对程序的输出产生影响
程序 由语句和表达式构成的
pass语句 代码块
函数 xxx()
分类:内建函数和自定义函数
返回值和参数
标识符
-
关键字 python定义的具有特殊功能的标识符
-
标识符:开发人员在开发时定义的一些符合规则的名称,
-
命名方式 驼峰命名和下划线命名
-
基本数据类型
-
整数常量和小数
-
布尔型和空值
-
变量
概念和引入
变量的运算
如果运算的过程中有浮点数,则返回的类型就是浮点型
变量 字符串
- 字符串
概念:
单引号和双引号不能混用
单引号 不能嵌套使用
转义字符 \ \n \t \
长字符串:
文档字符串
三引号表示一个长字符串
作业:
练习课堂中老师敲的代码
a,b = 6, 8 我想让a=8 b=6我该怎么办?用2种方式实现
第一种方式: 通过中间量
a,b=6,8
print('a=',a,'b=',b)
t = a
a = b
b = t
print('a=',a,'b=',b)
第二种方式: 注:找的参考
a,b = 6,8
print('a=',a,'b=',b)
a = a+b
b = a-b
a = a-b
print('a=',a,'b=',b)
#这种方式很巧妙啊,a=a+b b=a+b-b=a a=a-b=a+b-a=b
print()语句练习,用两种方式打印 hello,python
print('hello,python')
print('hello,','python')
print('hello')
print('python')
#测试证明这样输出的是有换行的,所以这样是不满足要求的
c = 'hello,python'
print(c)