Python(八)阶段小结

'''
for 迭代循环 计数循环
'''
# for i in 'PYTHON':
#     print(1)
# print(dir([1,2,3]))     # 有__iter__()方法证明列表是可迭代对象
# print(dir(123))     # 可以判断数值类型不是可迭代的,所以需要使用range()方法
'''
range()     范围函数
range(起始值,结束值,步长)   左闭右开
'''
# for i in range(2,11):
#     print(i)

# 实现for循环写出0-100的奇数
# for i in range(0,101):
#     if i%2 != 0:
#         print(i)
'''
list [元素,元素]
可变数据类型,可以增删改查
'''
# list1 = ['狮子','长颈鹿','老虎','大象','鸵鸟']
# print(list1[0:2])       # 打印['狮子', '长颈鹿']
# print(list1[:2])        # 默认从0开始切片取值,打印
# print(list1[0::2])     # 默认结束值为4的切片取值,打印['狮子', '老虎', '鸵鸟']

# # 列表推导式取出0-9的奇数
# list1 = [i for i in range(0,9) if i%2 != 0 ]
# print(list1)
'''
元组 tuple 需要在元素后加,
'''
# tu = (5)
# print(type(tu))     # 打印<class 'int'>
# tu = (5,)
# print(type(tu))     # 打印<class 'tuple'>
'''
用for循环打印九九乘法表:
    外层循环决定行
    内层循环决定列
'''
# for i in range(1,10):
#     for j in range(1,i+1):
#         print('{}*{}={}'.format(i,j,i*j),end='\t')
#     print()
'''
一个列表中有重复元素,编写程序,移除重复元素[1,1,5,5,7,5,3,3,9]->[1,5,7,3,9]
for循环 count()统计元素出现的次数
去除重复的元素:统计次数中大于1的就是重复的元素
'''
# list1 = [1,1,5,5,7,5,3,3,9]
# for i in list1.copy():      # copy()复制列表,以复制的列表修改原列表(复制的列表不随修改而改变)
#     if list1.count(i)>1:
#         list1.remove(i)
# print(list1)
'''
深浅复制:
在嵌套列表里面,被嵌套的列表没有进行复制,使用的还是同一个id
复制嵌套列表时要用深复制,否则数据会被污染
'''
# li = [5,6,7]
# li2 = li.copy()
# print(id(li))
# print(id(li2))

# lis = [5,6,7,[8,9]]
# lis2 = lis.copy()       # 浅复制
# print(id(lis))      # 2522501284744
# print(id(lis2))     # 2522501333128
# print(lis[3])
# lis[3][0] = 11
# print(lis)      # 打印[5, 6, 7, [11, 9]]
# print(lis2)     # 打印[5, 6, 7, [11, 9]]
# print(id(lis))      # 2115316482952
# print(id(lis2))     # 2115316531272
# print(id(lis[3]))       # 2522501333064
# print(id(lis2[3]))      # 2522501333064

# import copy     # 深复制模块
# lis = [5,7,8,[10,11]]
# lis1 = copy.deepcopy(lis)       # 通过调用copy模块中的deepcopy()深复制lis
# print(lis1)     # [5, 7, 8, [10, 11]]
# lis1[3][0] = 999
# print(lis1)     # [5, 7, 8, [999, 11]]
# print(lis)      # [5, 7, 8, [10, 11]]
# print(id(lis[3]))       # 2352025152776
# print(id(lis1[3]))      # 2352025260872
'''
序列类型:元组、列表、字符串,可以索引取值
散列类型:字典、集合,唯一性,没有下标取值
'''
'''
身份运算符:is,对于Python3来说,常用的数据(-5~256区间)会保存
成员运算符:in,序列类型可以用成员运算符
'''
# li = [5,7,9]
# print(5 in li)      # True
# a = 100
# b = 100
# print(a is b)       # True
# a = 100000000
# b = 100000000
# print(a is b)       # True
'''
找出两个列表中相同元素,并打印出来
    可通过集合的交集来做,set():转集合,list():转列表 
'''
# li1 = [5,7,8,9,10,12]
# li2 = [7,8,5,1,2,3,4]
# s1 = set(li1)
# s2 = set(li2)
# li = list(s1&s2)
# print(li)
'''
统计一串字符中,每个字母a~z的出现频率,忽略大小写
    思路:
        每个字母 for循环
        count()
        全部转大写:upper();全部转小写:lower()
        因为字典具有唯一性,所以用字典保存
'''
# dic = {}       # 创建一个字典
# num = 0
# while True:
#     str = input('请输入一串字符:')
#     str = str.lower()       # 全转化成小写
#     n = len(str)
#     if str == 'q':
#         break
#     else:
#         for i in str:
#             m = str.count(i)
#             dic[i] = m/n
#         print(dic)
'''
利用26个字母和10个数字,随机生成10个8位密码
'''
# import random
# str = 'abcdefghijklmnopqrstuvwxyz0123456789'
# for i in range(10):
#     pwd = random.choices(str,k=8)     # 从字符串里任取8个
#     print(''.join(pwd))

# or
# import random
# li = []
# for zimu in range(97,123):
#     li.append(chr(zimu))
# for shuzi in range(10):
#     li.append(str(shuzi))       # 将每个数值转换成字符串
# for i in range(10):
#     pwd = random.choices(li,k=8)     # 从列表里任取8个
#     print(''.join(pwd))

# or
# import string
# import random
# # print(string.ascii_lowercase)       # 打印abcdefghijklmnopqrstuvwxyz
# # print(string.ascii_uppercase)       # 打印ABCDEFGHIJKLMNOPQRSTUVWXYZ
# # print(string.ascii_letters)     # 打印abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
# li=[]
# zimu = string.ascii_lowercase
# shuzi = [str(i) for i in range(10)]     # 将每个数值转换成字符串
# zimu = list(zimu)
# lis1 = shuzi+zimu
# for i in range(10):
#     lis = random.choices(lis1,k=8)
#     lis = ''.join(lis)
#     li.append(lis)
# print(li)
'''
判断用户输入的是不是一个手机号码?
判断长度、是不是数字、是不是1开头
'''
# while True:
#     num = input("请输入一串电话号码:")
#     if len(num) == 11 and num.isdigit() and num[0] == '1':
#         print("这是一个电话号码")
#     else:
#         print("这不是一个电话号码")

文章到这里就结束了!希望大家能多多支持Python(系列)!六个月带大家学会Python,私聊我,可以问关于本文章的问题!以后每天都会发布新的文章,喜欢的点点关注!一个陪伴你学习Python的新青年!不管多忙都会更新下去!一起加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值