python编程实战
1.计算对称平方数
题目描述
打印所有不超过n(n<256)的,其平方具有对称性质的数,如11*11=121。
输入描述
无
输出描述
每行一个数,表示对称平方数
def f(n):
flag = True
sum = n * n
sum_str_list = [i for i in str(sum)]
a, b = divmod(len(str(sum)), 2)
for i in range(0,len(sum_str_list)//2):
if b > 0:
if sum_str_list[len(sum_str_list)//2-i-1] == sum_str_list[len(sum_str_list)//2+i+1]:
continue
else:
flag = False
break
else:
if sum_str_list[len(sum_str_list)//2-i-1] == sum_str_list[len(sum_str_list)//2+i]:
continue
else:
flag = False
break
if flag:
print(n) else:
pass if __name__ == '__main__':
for i in range(1, 257):
f(i)
2、找出所有三位数组合
题目描述
有1、2、3、4四个数字,要求任选三个,组成一个三位数,每位数字各不相同,输出所有三位数组合。
输入描述
无
输出描述
打印所有三位数组合
a_list = ['','','',''] def get_num_list(num,arg):
arg.remove(num)
return arg for a in a_list:
for b in get_num_list(a,a_list.copy()):
if b == a:
continue
else:
for c in get_num_list(b,a_list.copy()):
if c == a or c == b :
continue
else:
print(c + a + b)
print(a + c + b)
print(c + b + a)
print(a + b + c)
print(b + a + c)
print(b + c + a)
2、找出所有三位数组合(改良)
上述程序输出有点繁琐,改良如下。
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if i!=k and i!=j and j!=k:
print(i,j,k)
3、斐波那契数列
题目描述
打印0,1,1,2,3,5,......
输入描述
无
输出描述
输出0,1,1,3,5,......规律的数
def feibo(n):
if n == 0:
return 0
if n==1:
return 1
return feibo(n-1)+feibo(n-2) for i in range(10):
print(feibo(i))
3、字符串查找
题目描述
给一字符串,查找字符串出现最多的字符,并打印该字符。
输入描述
输入一个字符串
输出描述
输出该字符传出现次数最多的字符
def get_str_dict(string):
str_dict = {}
for s in string:
if s in str_dict.keys():
str_dict[s] += 1
else:
str_dict[s] = 1
return str_dict def get_max_str_value(str_dict):
count = 0
s_char = ''
for key, value in str_dict.items():
if value > count:
count = value
s_char = key
return s_char, count if __name__ == "__main__":
string = input('>>:').strip()
str_dict = get_str_dict(string)
s,count = get_max_str_value(str_dict)
print(s,count)
4、日期累加
题目描述
设计一个程序能计算一个日期加上若干天后是什么日期。
输入描述
输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数。
输出描述
输出m行,每行按yyyy-mm-dd的个数输出。
import sys
import datetime def add_time(year,month,day,add_days):
in_time = datetime.date(year=year,month=month,day=day) add_time = datetime.timedelta(days=add_days)
out_time = in_time + add_time
print(out_time) if __name__ == "__main__":
n = sys.stdin.readline().strip()
for i in range(int(n)):
in_str = sys.stdin.readline().strip().split()
add_time(int(in_str[0]), int(in_str[1]),int(in_str[2]),int(in_str[3]))
5、贴邮票
题目描述
某人有8 角的邮票5 张,1 元的邮票4 张,1 元8 角的邮票6 张,用这些邮票中的一张或若干张可以得到多少中不同的邮资?
输入描述
无
输出描述
输出一行,表示题目所求。
a_list = []
for i in range(6):
for j in range(5):
for k in range(7):
a_list.append(i*8+j*10+k*18)
print(len(set(a_list)))
6.图片验证码生成
import random
from io import BytesIO from PIL import Image, ImageDraw, ImageFont class CodeImage(object): _source = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' _mode = 'RGB' _bg_color = (255, 255, 240) def __init__(self,size=(90, 30)):
# 初始化画布,初始化画笔
self._size = size
self.image = Image.new(self._mode, self._size, self._bg_color)
self.draw = ImageDraw.Draw(self.image, self._mode) def get_color(self):
'''获取随机rgb'''
return (random.randint(64, 200), random.randint(0,200), random.randint(0, 200)) def get_str(self, length):
'''获取随机字符串'''
code = random.sample(self._source, length)
return ''.join(code) def get_point(self):
'''获取坐标'''
point = (random.randrange(self._size[0])+1,random.randrange(self._size[1]+1))
return point def draw_text(self,code):
'''画文本内容'''
length = len(code)
font = ImageFont.truetype('Monaco.ttf', self._size[1]-3)
x = 10
y = 0
for i in range(length):
x = i * (self._size[0]/length) + 5
self.draw.text(xy=(x,y),text=code[i],font=font,fill=self.get_color()) def draw_point(self, num):
'''画干扰点'''
for i in range(num):
self.draw.point(xy=self.get_point(), fill=self.get_color()) def draw_line(self):
'''画干扰线'''
for i in range(random.randrange(4)):
self.draw.line((self.get_point(),self.get_point()), fill=self.get_color()) def save_image(self,num=500):
code = self.get_str(4)
self.draw_text(code)
self.draw_line()
self.draw_point(num)
self.image.save('code.jpg')
return code def save_image_io(self,num=500,image_format='png'):
'''保存图片为io流'''
code = self.get_str(4)
self.draw_text(code)
self.draw_line()
self.draw_point(num)
fp = BytesIO()
self.image.save(fp=fp,format=image_format)
return code,fp CodeImage().save_image()
7、两数之和
题目描述
给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
输入描述
nums = [2, 7, 11, 15], target = 9
输出描述
[0,1]
def twoSum(self, nums: List[int], target: int) -> List[int]:
for i in range(len(nums)):
num = target - nums[i]
for j in range(i+1,len(nums)):
if nums[j] == num:
return [i,j]
return []
方式二
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
adict = {}
for i,item in enumerate(nums):
num = target - item
if num in adict.keys():
return [i,adict.get(num)]
adict.update({item:i})
return []
python编程实战的更多相关文章
- python经典书籍:Python编程实战 运用设计模式、并发和程序库创建高质量程序
Python编程实战主要关注了四个方面 即:优雅编码设计模式.通过并发和编译后的Python(Cython)使处理速度更快.高层联网和图像.书中展示了在Python中已经过验证有用的设计模式,用专家级 ...
- Python 编程实战提高测试工作效率实例之svn 文件管理
#coding=utf-8 ''' Created on 2016年8月22日 @author:Tom Gao ''' importre importos importtime "" ...
- [Python编程实战] 第一章 python的创建型设计模式1.1抽象工厂模式
注:关乎对象的创建方式的设计模式就是“创建型设计模式”(creational design pattern) 1.1 抽象工厂模式 “抽象工厂模式”(Abstract Factory Pattern) ...
- 开始慢慢学习这本书了。。Python编程实战:运用设计模式、并发和程序库创建高质量程序
没办法,不到设计模式,算法组合这些,在写大一点程序的时候,总是力不从心...:( 一开始可能要花很多时间来慢慢理解吧,,这毕竟和<大话设计模式>用的C#语言有点不太一样... 书上代码是3 ...
- Python数据可视化编程实战pdf
Python数据可视化编程实战(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1vAvKwCry4P4QeofW-RqZ_A 提取码:9pcd 复制这段内容后打开百度 ...
- python数据可视化编程实战PDF高清电子书
点击获取提取码:3l5m 内容简介 <Python数据可视化编程实战>是一本使用Python实现数据可视化编程的实战指南,介绍了如何使用Python最流行的库,通过60余种方法创建美观的数 ...
- 给缺少Python项目实战经验的人
我们在学习过程中最容易犯的一个错误就是:看的多动手的少,特别是对于一些项目的开发学习就更少了! 没有一个完整的项目开发过程,是不会对整个开发流程以及理论知识有牢固的认知的,对于怎样将所学的理论知识应用 ...
- Python爬虫实战(4):豆瓣小组话题数据采集—动态网页
1, 引言 注释:上一篇<Python爬虫实战(3):安居客房产经纪人信息采集>,访问的网页是静态网页,有朋友模仿那个实战来采集动态加载豆瓣小组的网页,结果不成功.本篇是针对动态网页的数据 ...
- Python数据分析实战
Python数据分析实战(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1nlHM1IW8MYg3z79TUwIsWg 提取码:ux8t 复制这段内容后打开百度网盘手 ...
随机推荐
- net core体系-Standard-1概述
前言 早上起来.NET社区沸腾了,期待已久的.NET Core 2.0终于发布!根据个人经验,微软的产品一般在2.0时会趋于成熟,所以一个新的.Net开发时代已经来临!未来属于.NET Core. . ...
- UOJ#349. 【WC2018】即时战略
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ349.html 题解 被cqz D没了.我D cly 关你啥事(逃 首先链的情况直接rand就好了. 期望 ...
- Python ftplib模块
Python ftplib模块 官方文档:https://docs.python.org/3/library/ftplib.html?highlight=ftplib#module-ftplib 实例 ...
- C++结构体与Delphi结构体相互传参,结构体中包含结构体的嵌套,数组指针
//结构体的声明 typedef struct Mwinddirectbaseline { char* p; int s; int i; }Mwinddirectbaseline; typedef s ...
- mongo删除指定字段,可多个字段同时删除
参考代码: db.getCollection('Person').update({"email":{$exists:true}},{$unset:{"email" ...
- 如何修改SnipeIT的部分设置
作为一款开源的资产管理系统,Snipe-IT非常的好用又结实,但是原始设置对中国用户有些不方便,部分汉化没有完成,需要直接修改代码,下面把常用的修改记录如下: 1.修改资产打印标签中的文本名称 找到 ...
- 20181115 python-第一章学习小结part2
Python基本知识 变量,用来存储中间计算结果,在后面可进行调用被使用的东西,叫做变量. 变量的命名规则: 字母,数字,下划线组合 不能用数字开头 常见的关键字不能用啊 常量,不会变的量,称作常量. ...
- Html开发中document.getElementByTagName无法找到所有DOM元素的问题解决方法
let eleList = document.querySelectorAll('li') for (let i = 0; i < eleList.length; i++) { // 遍历操作 ...
- VB用API模拟截屏键PrintScreen
很多人用 SendKeys "{PRTSC}" 模拟截屏键 PrintScreen 的时候提示<错误:'70' 拒绝的权限>,于是经常遇到人问...干脆写下来 '声明 ...
- jQuery 动态绑定插件livequery的用法