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 复制这段内容后打开百度网盘手 ...
随机推荐
- java集合遍历的几种方式总结及比较
集合类的通用遍历方式, 用迭代器迭代: Iterator it = list.iterator(); while(it.hasNext()) { Object obj = it.next(); } ...
- C# Common Log function
public int Log(string info) { info = "-----------------------------" + DateTime.Now.ToStri ...
- VS 中 无法嵌入互操作类型“……”,请改用适用的接口的解决方法
在引用COM组件的时候,出现了无法嵌入互操作类型"--",请改用适用的接口的错误提示. 选中项目中引入的dll,鼠标右键,选择属性,把"嵌入互操作类型"设置为F ...
- sqlserver2008 批量插入数据
private DataTable GetTableSchema() { DataTable dt = new DataTable(); dt.Columns.AddRange(new DataCol ...
- zabbix 安装rpm
zabbix安装 1 安装数据库 #yum install mariadb-server -y 配置配置文件 #vim /etc/my.cnf skip_name_resolve=on innodb ...
- UOJ#373. 【ZJOI2018】线图 搜索,树哈希,动态规划
原文链接www.cnblogs.com/zhouzhendong/p/UOJ373.html 前言 真是一道毒瘤题.UOJ卡常毒瘤++.我卡了1.5h的常数才过QAQ Orzjry 标算居然是指数做法 ...
- Python解析XML文件
XML与JSON的互相转化详见:XML模块 https://www.cnblogs.com/shengyang17/p/8606223.html <?xml version="1.0& ...
- list学习内容总结
list定义:list[]或者[]内任意类型的内容,多个用逗号分开 name1 = list(['Cyberpunk2077', 'Jim', 2077]) name2 = list('Cyberpu ...
- SpringBoot使用SOFA-Lookout监控
本文介绍SpringBoot使用蚂蚁金服SOFA-Lookout配合Prometheus进行监控. 1.SOFA-Lookout介绍 上一篇已经介绍使用Prometheus进行暴露SpringBoot ...
- ios6和ios5横竖屏切换
记录于2013/8/5 在切换横竖屏的时候调用到的一些委托方法: #pragma mark - UIApplicationDelegate //写在Appdelegate中,在具体的某一视图控制器 ...