今天老师主要讲的内容如下:
day02-实训2
1、数据类型
字符串长度
求解字符串长度,无论是英文还是中文,求解的是里面字符的个数
ascii表格,就是常用字符和二进制之间的对应关系
字符0-9 48-57
A-Z 65-90
a-z 97-122
中文对应关系:两个字节 65536个 这种编码称之为gbk、gb2312
但是互联网出现了,互联网现在用的字符集都是utf8编码,unicode(万国码)
utf8如果存储英文,用的是一个字节,如果存储汉字,用的是3个字节
字符提取
下标提取,下标从0开始,不能越界
从右向左,下标从-1开始,不能越界
转义字符
\n \t(制表符)
让转义字符失去意义,在前面再加一个 \
让里面所有的转义字符失去意义,字符串前面加 r
字符串的+和*
+ : 字符串的拼接
* : 该字符串重复多少次
字符串的切片
string[start:end] 区间是左闭右开
string[0:3]
string[:3]
string[-6:-3]
string[-2:]
string[-4:-7:-1]
string[:6:2]
string[::-1] 字符串的逆序
字符串的格式化
%s : 给字符串占位置
%d : 给整型占位置的
%10d : 一共10位,前面不够补空格
%010d : 一共10位,前面不够补零
%f : 给浮点占位置
%f : 默认保留6位小数
%.2f : 保留两位小数
%10.2f : 一共10位,保留两位小数,前面补空格
%010.2f :一共10位,保留两位小数,前面补零
%o : 八进制输出
%x : 十六进制输出
string = '我叫{},我的身高为{},我喜欢{},我的月薪为{}千'
string = '我叫{2},我的身高为{1},我喜欢{0},我的月薪为{3}千'
string = '我叫{goudan},我的身高为{maodan},我喜欢{fendan},我的月薪为{lvdan}千'
列表(list)
里面可以存放任何类型数据
访问数据,从左到右,从0开始,从右到左,从-1开始,不能越界
lt[-1][1]
列表的+和*
+ : 将两个列表里面的所有元素拼接到一起
* :列表里面的元素重复多少次
列表整体赋值
[a, b, c] = lt
列表的切片
和字符串一摸一样,只不过,列表切片之后还是列表,字符串切片之后还是字符串
求解列表的长度
len(lt)
元组(tuple)
元组的用法和列表的用法一摸一样
【注】元组里面如果只有一个元素,需要添加一个逗号
访问元素和列表一样
元组的切片
切片之后还是元组
+和*号
+ : 元组元素拼接到一起
* : 元素重复几次
元组里面的元素不能修改,列表里面的元素可以修改
len(tp)
集合(set)
集合的特点:无序性、唯一性
集合的操作见代码
len(s1)
字典(dictionary) dict
生活中:新华字典(拼音-汉字的意思)、牛津字典(英-汉语的意思)
键-值:你想要的是值,但是你得通过键查找得到
键能不能重复?baby 不能重复,是唯一的
值能不能重复?可以重复
定义格式:键值之间使用冒号隔开,键值对中间使用逗号隔开
根据键获取值
dic['键名']
如果键不存在报错
dic.get('键名')
如果键不存在,返回None
根据键修改值
如果键存在,修改键值对,如果键不存在,增加键值对
得到字典的长度
len(dic) 得到键值对的个数
2、类型转化
字符串、布尔、列表、整型、浮点、字典、元组、集合
相加:整型可以和整型、浮点相加,字符串只能和字符串相加
str() : 可以转化整型、浮点、列表、字典
int() : 将纯的数字字符串转化为整型
float() : 将纯的浮点字符串转化为浮点
bool() :
数字:非0为真,0为假
字符串:空字符串为假,其它都是真
列表:空列表为假,其它为真
字典:空字典为假,其它为真
list() :
可以转化字符串
元组
字典:得到所有的键
集合:
tuple()
和list用法一模一样,只不过一个转化为列表,一个转化为元组
set()
可以转化字符串、列表、元组
dict()
列表里面有元组,元组有两个元素,就可以转化成功
3、运算符
算术
+ - * / ** // %
+ :只能相同类型相加
- :只能整型或者浮点之间运算
* :整型或者浮点之间相乘,字符串乘以整型,列表乘以整型
/ : 整型或者浮点之间相除 得到的是浮点
** : 求幂
// : 求商
% : 求余数
作用:对2取余,可以得到奇偶性,余数有0和1
对5取余,得到结果有5中可能 01234
判断能否整除?余数是0,代表能整除,非0,不能整除
赋值
a = 100
100 = 5
将等号右边的值赋给等号左边,等号左边只能是变量
复合
+= -= *= /= **= //= %=
比较
> >= < <= == !=
比较的结果返回bool值,成立就是真,不成立就是假
【注】比较只能比较数字和英文,中文比较没有任何意义
中文字符串只能比较相等不想等
逻辑
表达式:由变量和运算符组成的式子就叫做表达式
逻辑与、逻辑或、逻辑非
逻辑表达式的值是一个bool值
表达式1 and 表达式2 整个表达式的值
真 假 假
真 真 真
假 假 假
假 真 假
用一句话概括:只要有一个为假,整个表达式就是假的 并且
逻辑或
表达式1 or 表达式2 整个表达式的值
真 假 真
真 真 真
假 假 假
假 真 真
用一句话概括:只要有一个为真,整个表达式就是真的 或者
逻辑非
not 表达式
如果为假,整个就是真
如果为真,整个就是假
成员
in not in
应用字符串、列表、字典
字典:判断键在不在字典里面
优先级
不用背,记得添加小括号即可
4、流程控制
什么叫做流程控制呢?
原来写的代码,都是一行一行接着执行,当学习了流程控制之后,这一段代码要不要执行,或者要不要重复执行,是要看条件的
(1)
if 表达式:
语句块
(2)
if 表达式:
语句块1
else:
语句块2
(3)
if 表达式1:
语句块1
elif 表达式2:
语句块2
elif 表达式3:
语句块3
else:
语句块4
if结构可以来回嵌套
晚上简单练习:
#1、输入一个整数,打印其16进制格式
#a = int(input('请输入一个整数-'))
#print(hex(a))
#2、输入一个整数,打印其8进制格式
#print(oct(a))
#3、输入小时、分钟、秒,打印时间格式
#4、输入一个字符串,打印逆序后的字符串
#string = input('请输入一个字符串-')
#print(string[::-1])
#5、输入一个小写字母,打印这个字母的大写字母
# str = input('请输入小写字母-')
# print(str.upper())
#6、输入一个大写字母,打印小写字母
# str = input('请输入大写字母-')
# print(str.lower())
#7、输入一个字符,判断是不是小写字母,是打印yes,不是打印no
# str = input('请输入一个字符-')
# if str[0].islower() == 1:
# print('yes')
# else:
# print('no')
#8、输入一个字符,判断是不是数字字符,是打印yes,不是打印no
# str = input('请输入一个字符-')
# if str[0].isdigit() == 1:
# print('yes')
# else:
# print('no')
#9、输入一个字符,判断是不是字母,是打印yes,不是打印no
# str = input('请输入一个字符-')
# if str[0].isalpha() == 1:
# print('yes')
# else:
# print('no')
#10、输入两个数,打印出来较大的那
# a = input('请输入第一个数-')
# b = input('请输入第二个数-')
# if a > b:
# print(a)
# else:
# print(b)
#11、输一个3位数,分别打印出来个位、百位、十位
# str = int(input('请输入一个三位数-'))
# a = int(str/100)
# b = int((str/10)%10)
# c = int(str%10)
# print(a,b,c)
#12、输入一个年份,判断是不是闰年,是打印yes,不是打印no,能被4整除但是不能被100整除 or 能被400整除
# str = int(input('请输入一个年份-'))
# if (str%4==0 and str%100!=0) or (str%400==0):
# print('yes')
# else:
# print('no')
#13、输入一个数,如果这个数既能被3整除又能被5整除,是打印yes,不是打印no
# str = int(input('请输入一个数-'))
# if str%3==0 and str%5==0:
# print('yes')
# else:
# print('no')
#14、输入两个数,分别存放到a,b中,然后交换a和b的值,打印交换前和交换后的a和b
# a = input('请输入第一个数-')
# b = input('请输入第二个数-')
# print(a,b)
# temp=a
# a=b
# b=temp
# print(a,b)