⼤⼀python基础编程试卷_100道Python⼤题基本练习,算法练习,编程练习题实例—。。。
⼀:题⽬:
使⽤python打印⼀颗圣诞树
要求:使⽤最基本的语法实现
#!/usr/bin/env python
#coding:utf-8
height = 5
stars = 1
for i in range(height):
print((' ' * (height - i)) + ('*' * stars))
stars += 2
print((' ' * height) + '|')
⼆:题⽬:
使⽤python3从N个数组中,进⾏排列组合,打印排列后的所有列表。
要求:尝试使⽤笛卡尔算法
#!/usr/bin/env python
#coding:utf-8
class Cartesian():
# 初始化
def __init__(self, datagroup):
四川源码时代self.datagroup = datagroup
# ⼆维数组从后往前下标值
# 每次输出数组数值的下标值数组(初始化为0)
珀斯现在几点# 计算数组长度
def countlength(self):
i = 0
length = 1
while(i < len(self.datagroup)):
length *= len(self.datagroup[i])
i += 1
return length
# 递归处理输出下标
def handle(self):
# 定位输出下标数组开始从最后⼀位递增
python基础代码100例# 判断定位数组最后⼀位是否超过长度,超过长度,第⼀次最后⼀位已遍历结束
unterIndex] >= len(self.unterIndex]): # 重置末位下标
# 标记counter中前⼀位
# 当标记位⼤于等于0,递归调⽤
unterIndex >= 0:
self.handle()
# 重置标记
# 排列组合输出
def assemble(self):
length = untlength()
i = 0
while(i < length):
attrlist = []
j = 0
while(j
attrlist.append(self.datagroup[j][unter[j]])
postcode是什么意思j += 1
print(attrlist)
self.handle()
i += 1
if __name__ == "__main__":
# 构造⼆维数组
datagroup = [['aa1', ], ['bb1', 'bb2'], ['cc1', 'cc2', 'cc3']]
# 创建cartesian对象
cartesian = Cartesian(datagroup)
cartesian.assemble()
三:题⽬:
使⽤python把每隔⼀分钟访问200次的IP,加到⿊名单。
要求:每隔⼀分钟读取⼀下⽇志⽂件,把统计到的Ip添加到⿊名单。
import time
pin = 0
while True:
ips = []
fr = open('assce.log')
fr.seek(pin)
for line in fr:
ip = line.split()[0] # 因为⽇志⽂件中每⾏的⾸个字符串是ip,与后⾯字符之间的分割是符号空格,所以⽤split()分割后,返回的list中第⼀个值就是ip地址,取【0】
ips.append(ip)
new_ips = set(ips) # 转换为集合
for new_ip in new_ips:
unt(new_ip) > 200:
print('加⼊⿊名单的ip是:%s' % new_ip)
pin = fr.tell() # 记录读完的指针位置
time.sleep(60)
四:题⽬:
⼀辆卡车违反交通规则,撞⼈后逃跑.现场有三⼈⽬击事件,但都没有记住车号,只记下车号的⼀些特征.
甲说:牌照的前两位数字是相同的;
⼄说:牌照的后两位数字是相同的,但与前两位不同;
uicontrolstatehighlighted丙是数学家,他说:四位的车号所构成的数字正好等于某⼀个整数的平⽅.
请根据以上线索求出车号.
提⽰:四位整数中的完全平⽅数 的取值范围:32的平⽅—99的平⽅.
#!/usr/bin/env python
#coding:utf-8
from math import sqrt
for i in range(1,10):
for j in range(1,10):
number = 1000 * i + 100 * i + 10 * j + j
if sqrt(number)==int(sqrt(number)):
print(number)
五:题⽬:
要求对⽬录下的⽂件进⾏增和删除的监控,如果有增和删打印出来,并打印⽂件名。要求:使⽤python3使⽤最简单的⽅法。
#!/usr/bin/env python
#coding:utf-8
import os, time
path_to_watch = "."
before = dict ([(f, None) for f in os.listdir (path_to_watch)])
while 1:
time.sleep (10)
after = dict ([(f, None) for f in os.listdir (path_to_watch)])
added = [f for f in after if not f in before]
removed = [f for f in before if not f in after]
if added: print("Added: ", ", ".join (added))
if removed: print("Removed: ", ", ".join (removed))
before = after
六:题⽬:
使⽤python统计⼀下ip以及出现的次数。
要求:内存⽐较⼩,所以不能在内存⾥计算。
import re,time
def mail_log(file_path):
global count
log=open(file_path,'r')
C=r'\.'.join([r'\d{1,3}']*4)
find=repile(C)
count={}
for i in log:
for ip in find.findall(i):
count[ip]=(ip,1)+1
if __name__ == '__main__':
print(time.clock())
num=0
mail_log(r'assce.log')
R=count.items()
for i in R:
if i[1]>0: #提取出现次数⼤于0的IP
print(i)
num+=1
print('符合要求数量:%s耗时(%s)'%(num,time.clock()))
实战100例,精彩后敬请期待....想提前看到的
想要了解python或学习Python的可直接点击链接即可领取相关学习福利包:python⾼薪就业(视频、学习路线、免费获取)
python中的time模块www.jianshu
是安全⽹站放⼼,继续访问就可以领取了哦
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论