循环结构中的for循环 数据类型的内置方法 字符编码 文件操作

循环结构中的for循环

数据类型的内置方法

字符编码

文件操作(用代码操作文件干活)

 

循环结构中的for循环

for循环能实现的事情while循环都可以实现,但是for循环在绝大多数时候语法比较简单快捷
name_list=['jason','tony','kevin','jerry']#表示循环打印列表中的每个元素

# while循环
# count = 0
# while count < 4:
#     print('>>>:',name_list[count])
#     count += 1

for循环
比较擅长用于循环取值

for 变量名 in 可替代对象(字符串,列表,字典,元组):
   for的循环体代码
    
for循环不像while循环,不需要添加结束的条件,自己取完值就会结束
name_list=['jason','tony','kevin','jerry']
for name in name_list:
    print(name)
    
res = 'hello world!' #(当值没有明确的类别时 变量名可以取i、j、k、item等)
for i in res:
    print(i)
    
    user_dict = {'username': 'jason', 'password': 123, 'hobby': 'read'}
for k in user_dict:
    print(k)
    #for循环字典只会取k值,v值无法直接获取
    
容器类型
    内部能够存档多个元素的数据类型都可以称之为容器类型
        列表 字典 元组 集合
for循环针对容器类型都可以循环取值 在此基础之上还可以对字符串取值

range用法

for i in range(0, 101):  
    print(i)
# 本质是一个迭代器(忽略) 你可以简单的看成是一个列表

for i in range(5):
    print(i)  
# 一个参数 默认从0开始(顾头不顾尾)

for i in range(5,10):
    print(i) 
#两个参数 第一个是起始位包含在内 第二个是终止位不包含(顾头不顾尾)
    
for i in range(0,250,25):
    print(i) 
# 三个参数 最后一个是数字间隔  类似于产生等差序列

数据类型内置方法

用英文的句号查看数据类型拥有的方法
pycharm会自动列出数据所有的方法无需担心

整型int

int()
    1.数据类型转换
    2.其他进制字符串转换十进制数
n = '11'
print(int(n))  # 正确

n1 = '11.11'
print(int(n1))  # 报错 小数点整型无法转

n2 = 'jason'
print(int(n2))  # 报错 数字以外根本无法转换
# 将十进制转换成二进制
print(bin(100))  # 0b1100100
# 将十进制转换成八进制
print(oct(100))  # 0o144
# 将十进制转换成十六进制
print(hex(100))  # 0x64
以后如果看到数字前面
    ob开头则是二进制数
    0o开头则是八进制数
    0x开头则是十六进制数
# 其他机制转十进制
print(int('0b1100100', 2))#二进制转十进制
print(int('0o144', 8))#八进制转十进制
print(int('0x64', 16))#十六进制转十进制
跟上面的操作刚好反过来

 

 

浮点型float

n1 = '11'
print(float(n1))  # 11.0

n2 = '11.11'
print(float(n2))  # 11.11

n3 = 'jason'
print(float(n3))  # 报错

字符串str

1.str可以将任意数据类型转换成字符串
res = 'hello world'
1.统计字符个数
print(len(res))  # 11
2.索引取值
print(res[0])  # h
3.切片取值
print(res[1:5])  # ello  顾头不顾尾
4.步长(间隔)  2表示间隔一个取一个 不写默认是1没有间隔
print(res[1:8:2])  # el o
5.移除字符串首尾指定的字符
name = '$$jason$$'
print(name.strip('$'))  # jason
print(name.lstrip('$'))  # jason$$
print(name.rstrip('$'))  # $$jason
name1 = '  jason  '
print(len(name1))  # 9
print(len(name1.strip()))  # 5  括号内不写参数默认移除空格
username = input('username>>>:').strip()
if username == 'jason':
    print('登录成功')
else:
    print('登录失败')

6.按照指定的字符切割数据
data = 'jason|123|teacher|read'
print(data.split('|'))  # ['jason', '123', 'teacher', 'read']
print(data.split('|', maxsplit=1))  # ['jason', '123|teacher|read']
print(data.rsplit('|', maxsplit=1))  # ['jason|123|teacher', 'read']
7.大小写转换
res = 'Yu0My'
print(res.upper())  # 转大写  YU0MY
print(res.lower())  # 转小写  yu0my
"""图片验证码之所以不需要校验大小写 内部就是统一转大小写再比对"""
print(res.isupper())  # 字符串是否是纯大写
print(res.islower())  # 字符串是否是纯小写
8.判断字符串是否是纯数字
print('123'.isdigit())  # True
print('jason123'.isdigit())  # False
9.统计字符出现的次数
res = 'my name is jason jason jason jason jason'
print(res.count('jason'))  # 5
10.替换指定的字符
res = 'my name is jason jason jason jason jason'
print(res.replace('jason', 'tony'))  # my name is tony tony tony tony tony
print(res.replace('jason', 'kevin', 2))  # my name is kevin kevin jason jason jason
11.按照指定的字符拼接字符串
l = ['jason','123','read']
print('|'.join(l))  # jason|123|read
name1 = 'jason'
pwd1 = '123'
hobby1 = 'study'
print(name1 + '|' + pwd1 + '|' + hobby1)  # jason|123|study

 列表list

只能够转支持for循环数据类型

l1 = [11, 22, 33, 44, 55, 66]
# 1.统计长度(元素的个数)
# print(len(l1))  # 6
# 2.索引取值
# print(l1[0])  # 11
# 3.切片操作
# print(l1[0:4])  # [11, 22, 33, 44]  顾头不顾尾
# 4.步长
# print(l1[0:4:2])  # [11, 33]  顾头不顾尾
# 5.添加元素
# 5.1尾部追加元素
# l1.append('jason')
# print(l1)  # [11, 22, 33, 44, 55, 66, 'jason']
# l1.append([111, 222, 333])  # 无论添加的元素是什么都只会当成列表的一个元素
# print(l1)  # [11, 22, 33, 44, 55, 66, 'jason', [111, 222, 333]]
# 5.2指定位置插入元素
# l1.insert(0, 'jason')
# print(l1)  # ['jason', 11, 22, 33, 44, 55, 66]
# l1.insert(2, [111, 222])  # 无论添加的元素是什么都只会当成列表的一个元素
# print(l1)  # ['jason', 11, [111, 222], 22, 33, 44, 55, 66]
# 5.3扩展列表
# l1.extend([111, 222, 333, 444])
# print(l1)
"""
如果不让你使用extend也完成扩展列表的操作  如何实现?
for i in [111,222,333,444]:
    l1.append(i)
"""
# 6.删除元素
# 6.1通用的删除操作
# del l1[0]
# print(l1)  # [22, 33, 44, 55, 66]
# 6.2弹出元素
# res = l1.pop(1)
# print(l1, res)  # [11, 33, 44, 55, 66]  22
# 6.3删除元素
# res = l1.remove(22)
# print(l1, res)  # [11, 33, 44, 55, 66]  None
# 7.统计元素出现的次数
# l2 = [11, 222, 33, 22, 33, 11, 11, 11, 22, 22, 33, 44, 44]
# print(l2.count(11))  # 4
# 8.排序
l3 = [55, 44, 22, 33, 11, 99, 77, 88]
l3.sort()  # 默认是升序
print(l3)  # [11, 22, 33, 44, 55, 77, 88, 99]
l3.sort(reverse=True)  # 倒序
print(l3)  # [99, 88, 77, 55, 44, 33, 22, 11]

 字典dict

字典内元素也是无序的
user_dict = {'username': 'jason', 'pwd': 123, 'hobby': 'read'}
1.统计长度(键值对的个数)
print(len(user_dict))  # 3
2.按键取值
print(user_dict['username'])  # jason
print(user_dict['xxx'])  # 键不存在会直接报错
print(user_dict.get('username'))  # jason
print(user_dict.get('xxx'))  # None  键不存在不会报错返回None
3.设置值(重点)
user_dict['username'] = 'jasonNB'
'''键存在则修改'''
print(user_dict)  # {'username': 'jasonNB', 'pwd': 123, 'hobby': 'read'}
user_dict['age'] = 18
'''键不存在则新建'''
print(user_dict)  # {'username': 'jasonNB', 'pwd': 123, 'hobby': 'read', 'age': 18}
4.删除值(字典的键值对是一个整体)
res = user_dict.pop('username')
print(user_dict, res)  # {'pwd': 123, 'hobby': 'read'}  jason
5.三个小方法
print(user_dict.keys())  # ['username', 'pwd', 'hobby']
print(user_dict.values())  # ['jason', 123, 'read']
print(user_dict.items())  # [('username', 'jason'), ('pwd', 123), ('hobby', 'read')]

集合

集合内元素是无序的
    1.去重
        集合内不允许出现重复的元素 会自动去重
    2.关系运算
        交叉并集
            eg:共同好友 共同关注 共同点赞
  
f1 = {'jason', 'tony', 'kevin', 'jack'}
f2 = {'jason', 'tom', 'jerry', 'tony'}
# 1.求两个人共同好友
    print(f1 & f2)  # {'tony', 'jason'}
# 2.求f1独有的好友
    print(f1 - f2)  # {'jack', 'kevin'}
# 3.求f2独有的好友
    print(f2 - f1)  # {'tom', 'jerry'}
# 4.求两个人所有的好友
    print(f1 | f2)  # {'jason', 'jerry', 'tony', 'jack', 'tom', 'kevin'}
# 5.求两个人各自的好友
    print(f1 ^ f2)  # {'kevin', 'jack', 'tom', 'jerry'}
# 6.父集 子集
    print(f1 > f2)
    print(f1 < f2)

 

posted @ 2021-08-13 16:11  ふじわらたくみ  阅读(107)  评论(0编辑  收藏  举报