03 基本数据类型
1.几个概念
1.1 表达式
定义:表达式,就是由数字、算符、数字分组符号(括号)、自由变量和约束变量等,以能求得数值的有意义排列方法所得的组合。例如:1+12*4
表达式特点:
(1)表达式一般仅仅用于计算一些结果,不会对程序产生实质性的影响
(2)如果在交互模式中输入一个表达式,解释器会自动将表达式的结果输出
1.2 语句
定义:一个语法上自成体系的单位,它由一个词或句法上有关连的一组词构成。在程序中,语句一般是要完成某些功能,如print();input();for XXX in yyy......
语句的执行一般会对程序产生一定的影响,在交互模式中不一定会输出语句的执行结果。
代码块:Python程序是由代码块构造的。块是一个python程序的文本,是作为一个单元执行的。一个模块,一个函数,一个类,一个文件等都是一个代码块。
而作为交互方式输入的每个命令都是一个代码块。例如:条件控制语句。
pass语句:python中的空语句,只是用来保证我们程序结构的完整性(没想好怎么写的时候)
1.3程序
定义:程序就是由一条一条的语句和一条一条的表达式构成的,表达式和语句是构成程序的最小基本单位。
1.4函数
(1)定义:函数就是一种语句,函数专门用来完成特定的功能。函数形如:xxx() , 比如:max() min() len() print() input()
(2)函数的分类:
内置函数 : 或者称为内建函数,就是由语法规定存在的函数,这些函数,包含在编译器的运行时库中,程序员不比单独书写代码实现它,只需要调用既可。(详见官网)
自定义函数 : 由程序员自主的创建的函数 当我们需要完成某个功能时,就可以去调用内置函数,或者自定义函数。
(3)函数的2个要素:
参数:函数中括号的内容,可以有一个,可以有多个,若有多个,用英文逗号,隔开。比如print(a,b)。也可以没有内容。
返回值 :就是函数返回的结果。
2. 标识符
2.1 关键字
python语言的组成:
(1)关键字(2)标识符(3)注释(4)变量和数值(5)运算符(6)语句(7)函数(8)序列
定义:所谓的关键字,就是python一些具有特殊功能的标识符,是python已经使用的了,所以不允许开发者自己定义和关键字相同的名字的标识符 。
python的关键字2.2 标识符概念
(1)定义:开发人员在程序中自定义的一些符号和名称。标识符是自己定义的,如变量名 、函数名、类名等。由26个英文字母大小写,数字 0-9 符号 _$ 组成
(2)标识符的规则:
#标识符中可以包含字母、数字、下划线_,但是不能使用数字开头,例如:name1 name_1 _name1 1name(不行)
#Python中不能使用关键字和保留字来作为标识符
(3)命名方式:
#驼峰命名法
小驼峰式命名法: 第一个单词以小写字母开始;第二个单词的首字母大写,例如:myName、aDog
大驼峰式命名法: 每一个单字的首字母都采用大写字母,例如:FirstName、LastName
#下划线命名法
不过在程序员中还有一种命名法比较流行,就是用下划线“_”来连接所有的单词,比如 get_url buffer_size
3. 基本数据类型
定义:数据类型,指的就是变量的值的类型。
3.1 整数和小数
整数 : 所有整数 例如 : a = 1 b = 100 c =999 都是int类型。如果数值太大,可以隔三位用下划线_分开
小数常量 : 所有小数 例如 a = 1.2 b=6.66 用float类型表示。
浮点型运算,特点是会保留近似值,是因为二进制转换成十进制的原因,比如0.3=0.30000000000000004
3.2 布尔值和空值
(1)布尔值: 只有2个值一个是真值True 一个是假值False,布尔常量是做逻辑判断的。
######### 它们也属于特殊的整型,True相当于1,False相当于0
(2)None常量:只有一个数值就是None 也就是空值
4 变量
4.1 变量的概念
(1)定义:变量是计算机内存中的一块区域,存储规定范围内的值,值可以改变,通俗的说变量就是给数据起个名字。
(2)变量命名规则:
变量名由字母、数字、下划线组成要符合标识符的命名规范:数字不能开头,不能使用关键字。
#注意 : 两个对象相等,和两个对象是同一个对象,是两个概念,即:两个对象的值相等,不代表他们是同一个对象,例如:
d1 = {'Jerry':'Python'} #字典
import copy
d2 = copy.deepcopy(d1) # 把d1的值copy给d2
print(d2) # 结果是:{'Jerry': 'Python'}
print(id(d1),id(d2)) #返回的结果是两个不同的对象id:2159738099816 2159738100616,说明是不一样的对象
print(d1==d2) #返回的结果:True,说明两个对象的值是相等的
4.2变量的运算
加法 乘法变量的运算就是正常的四则运算 ,需要注意的是:在运算过程中含有浮点数,那么它返回的结果就是一个浮点数类型。
5 字符串
5.1 什么是字符串
(1)定义:字符串是由数字、字母、下划线组成的一串字符
(2)注意:
#单引号和双引号不能混合使用
#Python中用一对单引号,或者一对双引号包裹的内容就是字符串
#嵌套:"Let's play!"
5.2 转义字符
(1)定义:转义字符是一种特殊的字符常量,告诉解释器它不是用于包裹字符串的。转义字符以反斜线"\"开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符
(2)总结:
\t 表示制表符,跳到下一个Tab的位置
\n 表示换行符,写在新一行开头
\\ 表示反斜杠
\' 表示 '
\ '' 表示 ''
......
5.3 长字符串
(1)定义:长字符串,又叫做文档字符串,我们使用三重引号来表示一个长字符串''' '''
(2)注意:三重引号可以换行,并且会保留字符串中的格式,
例如:
love='''我爱你,
赵云'''
print(love)
结果:
我爱你,
赵云
5.4 格式化字符串
第一种格式化字符串 拼串
用加号+拼接字符串(其他类型【如整数】和字符串不能拼接),用于如:拼接url url = 'https:' + /xxx/xxxx.img
举例1:
>>>'6'+'6'
'66'
举例2:
s = 'hello'
print('s = '+ s)
s = hello
第二种格式化字符串 参数传递
print函数里面可以有多个参数,参数之间就是用逗号,连接
举例1:
print('abc','nba')
abc nba
举例2:
s ='hello'
print('s = ',s)
s = hello
第三种格式化字符串 占位符
%s 字符串占位
%f 浮点数占位
%d 整数占位
举例1:
>>>'I love %s'%'study'
'I love study'
举例2:
>>>a='I love %s'
>>>a % 'python'
'I love python'
举例3:
print('s = %s' % 'hello')
s = hello
举例4:
s ='s = %s, s2 = %s' % ('hello','python') #若%后只有一个字符串,或者有两个但是没有放在元组()里,就会报错TypeError: not enough arguments for format string
print(s)
s = hello, s2 = python
举例5:
a='云今天跑了 %d 公里,%s竟然比他跑得更多。'%(4,'信''和''守约')
print(a)
云今天跑了 4 公里,信和守约竟然比他跑得更多。
举例6:
a='云今天跑了 %d 公里,比他跑得更多的竟然是%s'%(4,'信''和''守约''。')
print(a)
云今天跑了 4 公里,比他跑得更多的竟然是信和守约。
第四种格式化字符串 f+str & r+str & str.format
(1) f+str (即f'{变量1}{变量2}......')
举例1:
baby1='赵云'
baby2='百里守约'
x=f'王者荣耀里,我爱{baby1},也爱{baby2}。'
print(x)
#王者荣耀里,我爱赵云,也爱百里守约。
举例2:
babe='赵云'
h=f'i love {babe}'
print(h)
i love赵云
(2)r+str (正则表达式*除外)
举例1:
x=r'python'
print(x)
python
举例2:
x=r'python','suck'
print(x)
('python', 'suck')
(3) str.format
错误例子:
s = 'i like {a}'
a = s.format('python')
print(a)
不行,没找到a,KeyError: 'a'
正确例子:
s = 'i like {}'
a = s.format('python')
print(a)
i like python
或者花括号里多加一个0 也可以(加一个1就不行,会报错IndexError: tuple index out of range,越界了,所以啥也不写最好)
s ='i like {0}'
a = s.format('python')
print(a)
i like python
有两个的话同理,花括号里可以啥也不写,也可以填入0和1 ( 写1和2就不行,又出现IndexError: tuple index out of range)
s = 'i like {0},{1}'
a = s.format('python','java')
print(a)
i like python,java
举例1:
a='我最喜欢赵云的英雄皮肤是{},{}'
b=a.format('龙胆','白执事')
print(b)
我最喜欢赵云的英雄皮肤是龙胆,白执事
举例2:
a='我最喜欢的女英雄是{}'
b=a.format('花木兰')
print(b)
我最喜欢的女英雄是花木兰
练习
(1)占位符方法
d = '张三 %d 岁. %s岁数更大'%(22,'李四') #括号是元组
print(d)
张三22 岁. 李四岁数更大
(2)str.format 方法
d = '张三 {0} 岁. {1}岁数更大'
r = d.format(22,'李四')
print(r)
张三22 岁. 李四岁数更大
(3)f+str 的方法
age =22
name ='李四'
w =f'张三{age} 岁,{name}岁数更大'
print(w)
张三22岁,李四岁数更大
5.5 字符串的其他操作
(1)len() 用于字符串的长度(有多少个字,包括空格)
举例1:
print(len('i love zhaoyun'))
14
举例2:
print(len('iloveyou'))
8
(2)max() 最大值 -----比较的是ascii码的值
举例1:
x='abc'
print(max(x))
c
举例2:
a=10
b=33
c=21
x=a,b,c
print(max(x))
(3)min() 最小值
x='abc'
print(min(x))
a
综合举例:
a ='Jerry Python'
print(max(a),min(a))
y #最大值是y,最小值是空格
用ord()函数可以去查找字符所对应ascii值
print(ord('y'),ord(' '))
121 32
特殊:一个反斜杠有转义的作用,所以测不出来,两个才代表一个反斜杠
print(ord('\\'))
92
拓展:
判断一个字符串是否在这个字符串当中,用in,如果在返回True 如果不在返回Fasle
举例:
c='abc'
print('a' in c)
True
否则:
print('j' in c)
False
(4)split() 分割字符串,分割之后会把结果返回到一个列表里面
应用举例:分割网址,要选择最好的分割方式,如/ . =
https://www.jianshu.com/writer#/notebooks/12284287/notes/73041915
举例1:
s ='I love china'
r=s.split(' ') ----单引号间为分割方式,此处是空格
print(r)
['I', 'love', 'china'] ----列表
举例2:
s1 ='www.baidu.com'
r = s1.split('.') -----单引号间是.
print(r)
['www', 'baidu', 'com']
(5)join() 拼接字符串,语法:str.join(seq) str是拼接的方式,seq是序列的内容
a ='abc' #以 - 拼接,效果是a-b-c
r ='-'.join(a)
print(r)
a-b-c
去空格
(1)s.strip() 左右两边去空格
s.strip()左右两边去空格
s =' Python ' ----左右两边有空格
r = s.strip()
print(s)
Python ----直接打印s的话,左右两边有空格
print(r)
Python ----用了s.strip()的r,打印出来就去掉了两边的空格
(2)s.lstrip() 去左边空格
s =' Python '
print(s.lstrip())
Python ----右边仍有空格
(3)s.rstrip() 去右边空格
s =' Python '
print(s.rstrip())
Python ----左边仍有空格
字符串大小写
(1)s.upper() 全部大写
a ='I Love China'
print(a.upper())
I LOVE CHINA
(2)s.lower() 全部小写
a ='I Love China'
print(a.lower())
i love china
(3)s.isupper() 判断是不是大写,如果是就返回True,如果不是则返回False
b ='HELLO'
print(b.isupper())
True
(4)s.islower() 判断是不是小写,如果是就返回True,如果不是则返回False
b ='HELLO'
print(b.islower())
False
###今日作业
1. 练习课堂中老师敲的代码
2.现在 a,b = 6, 8 ,如果想让a=8 b=6,该怎么办?用2种方式实现。
两种交换变量的方式参考文章:https://www.cnblogs.com/oldfish123/p/11780271.html
3.print()语句练习,用两种方式打印 “hello,python”。
有4种方法
网友评论