本文目录一览:
- 1、pythonchallenge难吗
- 2、matlab clipboard怎么用
- 3、pythonchallenge 去除验证码干扰线用什么算法好
- 4、pythonchallenge第一关什么意思
- 5、python 随机排序(.random.shuffle)后发生的错误
pythonchallenge难吗
不难学习,面向对象的都是
java应用比较多,上手快 真要学通学精要一段时间!
自己看是赚钱还是学习吧 如果就是为学习 可以先python 再java
matlab clipboard怎么用
Matlab提供了名为clipboard的函数,用于设置或读取clipboard中的文本。这个函数有一个非常严重的限制,那就是只能操作文本。虽然使用pastespecial参数通过数据导入工具将文本表格转化为Matlab矩阵,但不管怎么说,操作的都是clipboard中的文本,不能是其它类型的数据。
这次我们对clipboard添加了一个扩展,使其能够读取clipboard中的图像对象。这个功能当然是通过Java实现的,所以想要使用它,Matlab得有Java虚拟机的支持。clipboardex.m的全部代码如下:
function dat = clipboardex(varargin)
% 2013.06.26 PM 09:26
% Matlab 2013a
% xialulee
if strcmp(varargin{1}, 'copy')
clipboard(varargin{:});
return;
else
dat = clipboard(varargin{:});
end
if ~strcmp(dat, '')
return;
end
import java.awt.*
clipb = Toolkit.getDefaultToolkit().getSystemClipboard();
df = clipb.getAvailableDataFlavors();
data_type = 'not sure';
for idx = 1 : numel(df)
if isequal(df(idx), datatransfer.DataFlavor.imageFlavor)
data_type = 'image';
break;
end
end
switch data_type
case 'image'
dat = clipb.getContents([]).getTransferData(datatransfer.DataFlavor.imageFlavor);
grabber = image.PixelGrabber(dat, 0, 0, -1, -1, false);
grabber.grabPixels();
pixels = grabber.getPixels();
isgray = isa(pixels, 'int8');
pixels = typecast(pixels, 'uint8');
if isgray
pixels = reshape(pixels, dat.getWidth(), dat.getHeight()).';
else
pixels = reshape(pixels, 4, dat.getWidth(), dat.getHeight());
pixels = permute(pixels, 3:-1:1);
pixels = pixels(:, :, 3:-1:1);
end
dat = pixels;
otherwise
error('Not supported data type.');
end
end
上面的代码中,用来获取clipboard数据的代码就两行,
clipb = Toolkit.getDefaultToolkit().getSystemClipboard();
dat = clipb.getContents([]).getTransferData(datatransfer.DataFlavor.imageFlavor);
如果clipboard中的内容是图像的话,dat的类型是java.awt.image.BufferedImage。之后的代码,就是利用PixelGrabber将dat中的像素数据提取出来,构造成Matlab图像矩阵。之所以看起来有点复杂,是因为Java什么的都是使用Row-Major,而Matlab使用Column-Major。如果图像是一副灰度图像还好说,通过矩阵转置即可完成数据的重新排列,但是含有RGB分量的图像,由于对应三维数组,需要使用permute这样的“广义转置”来排列数据。这些内容在之前的《xialulee大战pythonchallenge——level11(续)》中就已经提到过了。
使用方法。首先clipboard中应该有一副图像。比如,从FireFox中复制了一副图像,如下图
在Matlab中执行
img = clipboardex('paste');
此时,变量img就是clipboard中的图像,用imshow查看
imshow(img)
pythonchallenge 去除验证码干扰线用什么算法好
struct模块还提供了pack_into() 和 unpack_from()的方法用来解决这样的问题,也就是对一个已经提前分配好的buffer进行字节的填充,而不会每次都产生一个新对象对字节进行存储。
pythonchallenge第一关什么意思
物信息、统计、网页制作、计算等多个领域都体现出了强大的功能。python和其他脚本语言如java、R、Perl 一样,都可以直接在命令行里运行脚本程序。工具/原料
python;CMD命令行;windows操作系统
方法/步骤
1、首先下载安装python,建议安装2.7版本以上,3.0版本以下,由于3.0版本以上不向下兼容,体验较差。
2、打开文本编辑器,推荐editplus,notepad等,将文件保存成 .py格式,editplus和notepad支持识别python语法。
脚本第一行一定要写上 #!usr/bin/python
表示该脚本文件是可执行python脚本
如果python目录不在usr/bin目录下,则替换成当前python执行程序的目录。
3、编写完脚本之后注意调试、可以直接用editplus调试。调试方法可自行百度。脚本写完之后,打开CMD命令行,前提是python 已经被加入到环境变量中,如果没有加入到环境变量,请百度
4、在CMD命令行中,输入 “python” + “空格”,即 ”python “;将已经写好的脚本文件拖拽到当前光标位置,然后敲回车运行即可。
python 随机排序(.random.shuffle)后发生的错误
def main():
import random
items = ['红桃A', '黑桃A',........,]
x = random.shuffle(items)
#########################################################################
请注意你这里的用法, random.shuffle(items)是直接操作items的,相当于把items传址调用了,改变了items的元素顺序,shuffle跟sorted等是一样的直接操作传进去的参数,没有返回 值(或者说返回值是None)。
你用 x = random.shuffle(items)那么x永远是None了,你这里可以这样用啊:
def main():
import random
items = ['红桃A', '黑桃A',........,]
x = items[:] # 得到一个items的深拷贝
random.shuffle(x)
# 下面你再用这个打乱的x就可以了,如果你的items后面没什么用的话,可以下面直接用items了像下面这样:
def main():
import random
items = ['红桃A', '黑桃A',........,]
random.shuffle(items)
# 下面用到x的地方用items替换掉。