
''' 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)) # 打印# tu = (5,) # print(type(tu)) # 打印
'''
用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的新青年!不管多忙都会更新下去!一起加油!