每周总结——week02
基本数据类型及其内置方法篇
1、基本数据类型之整型(int)
概述:
整型(int):
整型就是指各种整数,整型属于不可变数据类型,
语法结构:
变量名 = 整数数值
eg:
age = 18
内置方法:
整型类型转换
语法:
int()
通过int(其他数据类型)可以将其他类型的数据类型转换为整型。
eg:
string_demo = '138158168188198'
int(string_demo)
进制数转换
Python在进行数值转换的时候,因为其精确度低,如果需要进行精确的计算,需要借用模块 —— numpy
语法:十进制转换为其他进制
bin() 二进制
oct() 八进制
hex() 十六进制
语法:其他进制转换为十进制
int(0b) 二进制转十进制
int(0o) 八进制转十进制
int(ox) 十六进制转十进制
eg:
十进制转化其他进制
num = 368
rs = bin(num) 二进制
print(rs)
oct(num) 八进制
rs1 = oct(num)
print(rs1)
hex(num) 十六进制
rs2 = hex(num)
print(rs2)
其他进制转换十进制
int(0b101110000) 二进制数转十进制
int(0o560) 八进制数转十进制
int(0x170) 十六进制数转十进制
2、基本数据类型之浮点型(float)
概述:
浮点型(float):就是小数
语法结构:
变量名 = 小数
内置方法:
类型转换:
float(其他数据类型)
eg:
string_demo = '13.14' # 只能出现一个小数点
float(string_demo)
3、基本数据类型之字符串(str)
概述:
字符串(float):
由单个或者多个字符组成,写在单引号、双引号、三引号、三双引号之中。
之所以要这么多的引号,是因为防止冲突
语法结构:
变量名 = '字符或者字符串'(上面哪四种引号都可以)
eg:
teacher_speak = '北国风光,千里冰封,万里雪飘'
内置方法:
索引取值
'''
索引取值的起始位置是0,超出范围的直接报错
变量名[下标]
'''
str1 = '8567.189.FBI'
str1[0]
print(str1[0], type(str1))
# 下标为-1的值为字符串的最后一个字符
print(str1[-1])
切片操作以及改变切片的方向
'''
变量名[ : : ] #第一个数字为起始位置,第二个为结束位置,第三个为步长
'''
str1 = '8567.189.FBI'
# 从下标为0的位置开始切取,(其实初始位置默认是0),可以不写
# 一直切取到下标为5的数据值前面的那个下标为4的数据值,只切取到下标5之前
# 2表示步长,隔一个取一个
rs = str1[0:5:2]
# 输出的结果为原字符串,可以得知,字符串属于不可变数据类型
print(str1)
# 如果取赋值之后的变量名即可输出86.
print(rs)
'''
切片操作默认是从左到右进行取值,想要改变方向,需要把步长设置为-1。不可以从负数取到正数(可以取到0)。
'''
str1 = '8567.189.FBI'
# 步长设置为-1才可以取到
rs = str1[-1:-5:-1]
print(rs)
# 如果冒号前后都不写值,默认全都要
rs = str1[:]
print(rs)
# 如果第一个冒号前面不写,默认值为0
rs = str1[:5]
print(rs)
# 如果第一个冒号后面不写,默认为字符串的总长度
#步长的默认值是1,表示每一个都取
print(str1[:5:])
统计字符串中字符的个数
# 字符串长度获取方法len()
print(len(str1))
移除字符串首尾指定的字符
'''
.strip() 可以移除字符串首尾的字符,可以指定,如果不指定,默认是移除首尾的空格,指定的话,可以移除相应的字符,也可以指定移除左边lstrip(),或者指定移除右边rstrip().
'''
# 移除前后的全部空格
str1 = ' 8567.189.FBI '
print(str1.strip())
# 移除前后的全部$符号
str2 = '$$$8567.189.FBI$$$'
print(str2.strip('$'))
# 删除首尾的12字符串
str2 = '123.8567.189.FBI.321'
print(str2.strip('12'))
# 移除左边的字符串
str3 = '$$$8567.189.FBI$$$'
print(str3.lstrip('$'))
# 移除右边的字符串
str3 = '$$$8567.189.FBI$$$'
print(str3.rstrip('$'))
切割字符串中指定的字符
'''
split()方法可以通过指定的字符将一个字符串类型的数据切割为一个列表
'''
str1 = 'name|age|addr'
str1.split('|')
# 将变量str1通过识别‘|’解压赋值给sex、name、age三个变量
str1 = 'man|Jason|eleven'
sex, name, age = str1.split('|')
print(age, type(age))
# 从左到右切割指定个数 split() 默认的就是从左边开始切割
str1 = 'name|sex|addr|age|hobby'
rs = str1.split('|', maxsplit=2)
print(rs)
# 从右到左切割指定个数 maxsplit=1 表示最大切割个数
str1 = 'name|sex|addr|age|hobby'
rs = str1.rsplit('|', maxsplit=1)
print(rs)
字符串格式化输出
# format() 可以等价于占位符
# 在字符串中可以使用{},来代替原来所需的%s,在字符串后.format()中,填入自己所需的字符串即可
str1 = 'My name is {},welcome my hurt my {}'.format('HaiMan', 'Baby')
print(str1)
# format()占位符取名要做到见名知意
str2 = '亲爱的用户{name},您好!您本月共消费了{money}元,' \
'巧的是,您上月也消费了{money}元,' \
'再一次恭喜用户{name},成为我们的VIP用户!'.format(name='tony', money='8888')
print(str2)
# format() 索引取值并支持反复使用
str3 = '亲爱的用户{0},您好!您本月共消费了{1}元,' \
'巧的是,您上月也消费了{1}元,' \
'再一次恭喜用户{0},成为我们的VIP用户!'.format('tony', '8888')
print(str3)
'''
format()重点用法,获取用户输入的数据,完成字符串的格式化输出
'''
name = input('name>>>>:')
age = input('age>>>>:')
info_our = f'小伙子{name},你今年{age}岁了!'
print(info_our)
字符串中的大小写互换
'''
大小写相关
变量名.upper()
变量名.lower()
'''
str1 = 'Open The Door! FBI!'
# 全部大写 之所以要用变量名接收,是因为字符串类型是不可变类型
rs = str1.upper()
print(rs)
# 全部小写 之所以要用变量名接收,是因为字符串类型是不可变类型
rs = str1.lower()
print(rs)
实际应用——图片验证码忽略大小写
'''
图片验证码:生成没有大小写统一的验证码 展示给用户看
获取用户输入的验证码 将用户输入的验证码和当初产生的验证码统一转大写或者小写再比对
'''
code1 = '98TftF'
print(code1)
user_code = input('请输入验证码:')
if user_code.upper() == code1.upper():
print('验证通过!')
else:
print('验证失败!')
判断字符串中是否是纯数字
'''
变量名.isdigit()
'''
count = 0
age = '18'
while count < 3:
digit = input('请输入你要猜的年龄:').strip()
if digit.isdigit() == False:
print('请输入数字!')
elif digit != age:
print('动下脑子!')
count +=1
else:
print('您猜对了!')
break
替换字符串中指定的内容
'''
replace(' ',' ') 括号内里前面引号里是需要替换的内容,前面引号里是替换的内容
'''
str = 'My name is Jason,pleas love me!'.replace('Jason', 'tony')
print(str)
'''
可以从左向右按个数逐个进行替换
'''
str = 'My name is Jason,pleas love me!' \
',Jason,Jason,Jason,Jason'.replace('Jason', 'tony', 3)
print(str)
字符串的拼接
'''
直接使用加号拼接
'''
str1 = 'hello'
str2 = 'world'
str3 = str1 +' '+ str2
print(str3)
'''
'需要加入字符串'.列表
可以加入字符,然后该列表变为字符串
'''
ls = ['hello', 'world','hello', 'world']
ls1 = '|'.join(ls)
print(ls1, type(ls1))
统计指定字符出现的次数
'''
变量名.count('需要统计的字符')
'''
str1 = 'Shark babay do do do do do do do'
rs = str1.count('do')
print(rs)
判断字符串的开头或者结尾
'''
变量名.startswith('需要判断的字符')
'''
str1 = 'To live or to die is a question'
is_TO = str1.startswith('To')
is_tion = str1.endswith('tion')
print(is_tion)
print(is_TO)
4、基本数据类型之bool值
概述:
布尔值(bool):
只有两个结果True、False,用来表示对错。
默认为False的值:0、None、空字符串、空集合、空字典等
布尔值的命名规范:is_delect、is_alive
语法结构:
变量名 = True
变量名 = False
eg:
is_delect = False
is_alive = True
5、基本数据类型之元组(tuple)
概述:
元组: 不可变序列的Python对象序列
元组内的值不可随意改变
语法结构:
变量名 = (各种数据类型,各种数据类型)
eg:
tuple_student = ('Jason', 'tom', 'tony', 'Maria')
内置方法:
类型转换
'''
语法结构:
tuple()
支持for循环的数据类型都可以转成元组
'''
lst = [1, 2, 3, 4, 5, 6]
re = tuple(lst)
print(lst)
print(re)
索引取值
'''
语法结构:
变量名[下标]
'''
tup = (1, 2, 3, 4)
print(tup[0])
间隔、方向
'''
语法结构:
变量名[开始下标: 结束下标: 步长]
'''
tup = (1, 2, 3, 4)
print(tup[1: 3: 2])
统计元组内数据值的个数
'''
len(变量名)
'''
tup = (1, 2, 3, 4)
print(len(tup))
统计元组内某个数据值出现的次数
'''
统计元组内某个数据值出现的次数
变量名.count() 括号中填入需要统计的数据值
'''
tup = (1, 2, 3, 4)
print(tup.count(2))
统计元组内指定数据值的索引值
'''
统计元组内指定数据值的索引值
语法结构:
变量名.index() 括号内填入需要索引值的数据值
'''
tup = (1, 2, 3, 4)
print(tup.index(3))
元组的注意事项
1、元组内如果只有一个数据值那么逗号不能少
2、元组内索引绑定的内存地址不能被修改(注意区分 可变与不可变)
3、元组不能新增或删除数据
6、基本数据类型之集合(set)
概述:
集合:集合和字典一样都是无序的
集合内的数据是不可重复的
语法结构:
变量名 = {各种数据类型,各种数据类型}
eg:
set_Teacher = {'Jason', 'Tom', 'Tony', 'Maria'}
内置方法:
类型转换
'''
set()
集合内数据必须是不可变类型(整型、浮点型、字符串、元组)
集合内数据也是无序的,没有索引
'''
set_num = [1, 2, 3, 4, 5, 6, 7]
re = set(set_num)
print(re)
去重
'''
语法结构:
set()
直接使用类型转换就可以完成去重操作
集合去重是无法保留原有的数据的
'''
set_1 = {11, 11, 11, 22, 22, 11, 22, 11, 22, 33, 22}
set_1 = set(set_1)
print(set_1)
关系运算(群体之间多差异化校验)
'''
& 作用:
求共同拥有的数据值
& 的应用
eg:每个平台的用户ID都是唯一的
该运算符的结果是显示相同的数据值
'''
name = {'Jason', 'Tony', 'Tom', 'Sandy', 'Oscar'}
name1 = {'Jason', 'Jack', 'Mariya', 'Tony'}
print(name & name1)
'''
- 作用
求独有的数据值
- 的应用
eg:两个人好友列表内,各自独有的好友
该运算结果显示前面那个变量独有的数据
'''
name = {'Jason', 'Tony', 'Tom', 'Sandy', 'Oscar'}
name1 = {'Jason', 'Jack', 'Mariya', 'Tony'}
print(name - name1)
'''
| 作用
求所有的数据值
| 的应用
eg:两个人好友列表内,所有的好友
该运算结果显示两个变量的全部数据值(重复的只显示一个)
'''
name = {'Jason', 'Tony', 'Tom', 'Sandy', 'Oscar'}
name1 = {'Jason', 'Jack', 'Mariya', 'Tony'}
print(name | name1)
'''
^ 作用
求所有的数据值
^ 的应用
eg:两个人好友列表内,各自独有的好友
该运算结果显示两个变量各自独有的数据值
'''
name = {'Jason', 'Tony', 'Tom', 'Sandy', 'Oscar'}
name1 = {'Jason', 'Jack', 'Mariya', 'Tony'}
print(name ^ name1)
父集、子集
'''
父集、子集表示包含与被包含
'''
name = {'Jason', 'Tony', 'Tom', 'Sandy', 'Oscar', 'Jack', 'Mariya'}
name1 = {'Jason', 'Jack', 'Mariya', 'Tony'}
print(name > name1)
7、基本数据类型之字典(dict)
概述:
字典(dict):
它用于存放具有映射关系的数据。 字典相当于保存了两组数据,其中一组数据是关键数据,被称为key;另一组数据可通过 key 来访问,被称为value。整体称之为键值对。
语法结构:
变量名 = {'key': 数据值}
eg:
dict_demo = {'name': 'HaiMan',
'age': 18,
'sex': 'man'
}
内置方法:
类型转换
'''
字典类型转换:
dict(需要转换的数据)
字典的转换一般不使用关键字进行,而是采用手动转换
'''
字典取值
'''
按k取值(不推荐使用)
语法结构:
变量名['k键']
'''
user_dict = {'username': 'HanMan',
'age': 18,
'hobby': 'basketball'
}
print(user_dict['username'])
'''
get()方法取值(推荐使用)
语法结构:
变量名.get('k键')
get()和按K取值的区别:
按k取值,如果输入的k键字典内没有,程序会报错
get()方法取值,如果输入的k键字典内没有,会返回None
'''
print(user_dict.get('age'))
修改值的数据与新增键值对
'''
修改值的数据
语法结构:
变量名['K键'] = '修改的数据'
如果[]内的K键不存在,那么就会新增一个键值对
'''
user_dict = {'username': 'HanMan',
'age': 18,
'hobby': 'basketball'
}
print(user_dict['username'])
user_dict['hobby'] = 'PingPang'
print(user_dict)
user_dict['sex'] = 'man'
print(user_dict)
删除数据
'''
删除数据
语法结构:
del 变量名['K键']
del 删除的数据不可再被调用
变量名.pop('K键')
pop()方法删除的数据还可以调用一次
'''
user_dict = {'username': 'HanMan',
'age': 18,
'hobby': 'basketball'
}
del user_dict['username']
print(user_dict)
re = user_dict.pop('age')
print(user_dict)
print(re)
统计字典中键值对的个数
'''
统计字典中的键值对的个数
语法结构:
len()
'''
user_dict = {'username': 'HanMan',
'age': 18,
'hobby': 'basketball'
}
long = len(user_dict)
print(long)
字典三剑客:
一次性获取字典中所有的键
一次性获取字典中所有的值
一次性获取字典中所有的键值对数据
'''
语法结构:
一次性获取字典中所有的键
语法结构:
变量名.keys()
一次性获取字典中所有的值
语法结构:
变量名.values()
一次性获取字典中所有的键值对数据
语法结构:
变量名.items()
'''
user_dict = {'username': 'HanMan',
'age': 18,
'hobby': 'basketball'
}
print(user_dict.keys())
print(user_dict.values())
print(user_dict.items())
快速生成数据值相同的字典
'''
快速生成数据值相同的字典
语法结构:
dict.fromkeys(['K键1','K键2','K键3'],[数据值])
这个方法产生的数据值会赋给所有的K键,所有K键的数据值都是一样的
问题:怎么分别给k键赋值?
'''
dict_user = dict.fromkeys(['name', 'age', 'sex'], [])
print(dict_user)
dict_user['name'].append('HaiMan')
dict_user['age'].append('18')
dict_user['sex'].append('man')
print(dict_user)
向原有的字典中添加键值对
'''
字典中添加键值
语法结构:
变量名.setdefault('K键', '数据值')
如果字典中已经存在了你所添加的K键,那么就不会继续添加
,原有的数据值也不会被改变
'''
user_dict = {'username': 'HanMan',
'age': 18,
'hobby': 'basketball'
}
res = user_dict.setdefault('sex', 'man')
print(user_dict, res)
弹出键值对
'''
弹出字典中的键值对
语法结构:
变量名.popitem() 该方法不可指定弹出那个键值对,
弹出键值对采取的是后进先出,即最先弹出最后一个键值对,以此往前类推。
'''
user_dict = {'username': 'HanMan',
'age': 18,
'hobby': 'basketball'
}
user_dict.popitem()
print(user_dict)
标签:week02,内置,name,str1,数据类型,dict,user,print,变量名
From: https://www.cnblogs.com/HaiMan/p/16758084.html