精华内容
下载资源
问答
  • 1、ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<... ")def get_char(r,b,g,alpha = 256):if alpha == 0:return ' 'length = len(ascii_char)gray = int(0.212...

    1、

    ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")

    def get_char(r,b,g,alpha = 256):

    if alpha == 0:

    return ' '

    length = len(ascii_char)

    gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)

    unit = (256.0 + 1)/length

    return ascii_char[int(gray/unit)]

    第一个问题 def后面的get_char单纯只是一个自己定义的名字吧?没有别的意义吧?其次get_char(r,b,g,alpha=256)这个是什么意思?这里有些疑惑

    2、

    if __name__ == '__main__':

    im = Image.open(IMG)

    im = im.resize((WIDTH,HEIGHT), Image.NEAREST)

    txt = ""

    for i in range(HEIGHT):

    for j in range(WIDTH):

    txt += get_char(*im.getpixel((j,i)))

    txt += '\n'

    print txt

    #字符画输出到文件

    if OUTPUT:

    with open(OUTPUT,'w') as f:

    f.write(txt)

    else:

    with open("output.txt",'w') as f:

    f.write(txt)

    第二段的if __name__ == '__main__': 我一直都不明白这个是什么意思,看到很多脚本都有这一个,不要用网上的内容了,看不懂。这一句的意思是:在什么情况会执行下面的代码?如果没有这一句可能会出现什么情况?而这段的代码意义在哪里? 也不用解释的太清楚,具体每一天什么意思我会去搞懂的。

    非常感谢各位的解答,谢谢。

    展开全文
  • //以下几行代码base是什么意思 base = base.length() == 0 ? "" : base + "/"; for (int i = 0; i < fl.length; i++) { zip(out, fl[i], base + fl[i]); } } else { out.putNextEntry(new Zip...
  • 我在用Java做操作系统的页面置换算法,实现FIFO,CLOCK和LRU这三种算法,在这三个算法实现的过程,都调用了ListUtils.java,但是我不懂ListUtils.java代码什么意思,导致我其他的代码也看不懂。向各位大神...
  • String str="abcjavadefjavadddjava"; String newStr="java"; int count=0; int i=0;//出现的下标 while(str.indexOf(newStr,i)>=0 && i... 就是不知道那个while语句是什么意思,麻烦大家详细解释一下,谢谢。
  • 在多处理/多线程代码中,您会(希望)经常会发现这种结构用于轮询队列或管道。在标准库中,您还可以在multiprocessing.Pool中找到:@staticmethoddef _handle_tasks(taskqueue, put, outqueue, pool, cache):thread = ...

    在多处理/多线程代码中,您会(希望)经常会发现这种结构用于轮询队列或管道。在标准库中,您还可以在multiprocessing.Pool中找到:@staticmethod

    def _handle_tasks(taskqueue, put, outqueue, pool, cache):

    thread = threading.current_thread()

    for taskseq, set_length in iter(taskqueue.get, None):

    task = None

    try:

    # iterating taskseq cannot fail

    for task in taskseq:

    ...

    else:

    util.debug('task handler got sentinel')

    不久前,我遇到了this博客条目,我很好地总结了iter(callable, sentinel)相对于{}的优势:Usually, when we iterate over an objects or until a condition happens, we understand the scope of the loop in its first line. e.g., when reading a loop that starts with for book in books we realize we’re iterating over all the books. When we see a loop that starts with while not battery.empty() we realize that the scope of the loop is for as long as we still have battery.

    When we say “Do forever” (i.e., while True), it’s obvious that this scope is a lie. So it requires us to hold that thought in our head and search the rest of the code for a statement that’ll get us out of it. We are entering the loop with less information and so it is less readable.

    展开全文
  • int splitFlag=0; int splitNextFlag=0; //int byteLength=1; //int byteLengthTemp=newBytes[2]& 0... System.out.println("车流量"+CommUtils2.toHexString(flowBytes2)); break;
  • String源码的“avoid getfield opcode”是什么意思 avoid getfield opcode其实是一段注释,看代码时不理解,就查了查在这记录一下。下面是一段String源码示例: public String trim() { int len = value....

    String源码中的“avoid getfield opcode”是什么意思

    avoid getfield opcode其实是一段注释,看代码时不理解,就查了查在这记录一下。下面是一段String源码示例:

    public String trim() {
        int len = value.length;
        int st = 0;
        char[] val = value;    /* avoid getfield opcode */
    
        while ((st < len) && (val[st] <= ' ')) {
            st++;
        }
        while ((st < len) && (val[len - 1] <= ' ')) {
            len--;
        }
        return ((st > 0) || (len < value.length)) ? substring(st, len) : this;
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    这个“avoid getfield opcode”字面意思是:避免getfield操作。那么首先需要知道什么是getfield操作。查《深入理解java虚拟机》得: 
    这里写图片描述

    现在有些理解了,String源码中避免的就是“获取指定类的实例域,并将其值压入栈顶”的操作。所以现在写两个代码,看看他们的字节码文件对比一下:

    public class Test {
    
        char[] arr = new char[100];
    
        public static void main(String[] args) {
            Test t = new Test();
            t.test();
        }
    
        public void test() {
            System.out.println(arr[0]);
            System.out.println(arr[1]);
            System.out.println(arr[2]);
        }
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    字节码是: 
    这里写图片描述 
    图中三个框框分别代表三条输出语句,getfield操作也有三次。

    下面看一下另一份代码:

    public class Test2 {
    
        char[] arr = new char[100];
    
        public static void main(String[] args) {
            Test t = new Test();
            t.test();
        }
    
        public void test() {
            char[] a = arr;
            System.out.println(a[0]);
            System.out.println(a[1]);
            System.out.println(a[2]);
        }
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    字节码是: 
    这里写图片描述 
    这次也是三部分,但是注意到getfield操作只有一次,就是第一次将arr赋值给a的时候

    总结:在一个方法中需要大量引用实例域变量的时候,使用方法中的局部变量代替引用可以减少getfield操作的次数,提高性能。

    展开全文
  • js something >>> 0是什么意思

    千次阅读 2019-06-15 19:49:36
    遇到与博主类似代码,搜索发现博主答案,觉得写得很好,现...今天在看lodash的源码slice这个函数实现的时候发现了里面有这么一行代码 length = start > end ? 0 : ((end - start) >>> 0) start ...

    转载:https://segmentfault.com/a/1190000014613703

    遇到与博主类似代码,搜索发现博主答案,觉得写得很好,现备份于此。

    原博文内容:

    今天在看lodash的源码中slice这个函数实现的时候发现了里面有这么一行代码

    length = start > end ? 0 : ((end - start) >>> 0)
    start >>>= 0

    当时就很疑惑,知道 >>是移位,那>>>又是什么鬼,还有移位0位又有什么意义呢,带着强烈的好奇心,我就去探究了一下 >>> 0它到底暗藏什么玄机。

    • >>>>>有什么不一样

    查了MDN原来>>>是无符号右移,>>是有符号移位,
    >>有符号移位:该操作符会将第一个操作数向右移动指定的位数。向右被移出的位被丢弃,拷贝最左侧的位以填充左侧

    -9 >> 2
    11111111111111111111111111110111  // -9 -> 11111111111111111111111111111101   // -3
    

    >>>无符号移位:该操作符会将第一个操作数向右移动指定的位数。向右被移出的位被丢弃,左侧用0填充。因为符号位变成了 0,所以结果总是非负的。(即便右移 0 个比特,结果也是非负的。

    9 >>> 2
    00000000000000000000000000001001   // 9 ->  00000000000000000000000000000010 // 2

    根据文档说明即使移动0位也可以将一个负数变成正数,甚至也可以将一个小数变成整数,将未定义的值转换为0,那到底移动0位是什么意思。

    • 移位0有什么意义

    查过一些资料,其中stackoverflow里面有一个高票回答,里面有这么一句话

    It doesn't just convert non-Numbers to Number, it converts them to Numbers that can be expressed as 32-bit unsigned ints.

    原来移位操作符在移位前做了两种转换,第一将不是number类型的数据转换为number,第二将number转换为无符号的32bit数据,也就是Uint32类型。这些与移位的位数无关,移位0位主要就是用了js的内部特性做了前两种转换。

    • Uint32类型是如何转换的

    1 . 如果不能转换为Number,那就为0
    2 . 如果为非整数,先转换为整数,参考公式sign(n) ⋅ floor(abs(n))

    function ToInteger(x) {
        x = Number(x);
        return x < 0 ? Math.ceil(x) : Math.floor(x);
    }

    3 . 如果是正数,返回正数,如果是负数,返回负数 + 2的32次方

    function modulo(a, b) {
        return a - Math.floor(a/b)*b;
    }
    function ToUint32(x) {
        return modulo(ToInteger(x), Math.pow(2, 32));
    }

    参考文章 Integers and shift operators in JavaScript

    • 总结

    x >>> 0本质上就是保证x有意义(为数字类型),且为正整数,在有效的数组范围内(0 ~ 0xFFFFFFFF),且在无意义的情况下缺省值为0。一个小小的表达式,隐藏着着多重的异常处理。js真是诡异啊。

    展开全文
  • 今天在看lodash的源码slice这个函数实现的时候发现了里面有这么一行代码 length = start > end ? 0 : ((end - start) >>> 0) start >>>= 0 当时就很疑惑,知道 >>是移位,那>>...
  • underscore.js 用来操作数组数据十分的方便,今天在阅读underscore.js源码的时候发现了一个判断语句,一时没看懂是什么意思,后来仔细分析了一下,也到网上查阅相关的资料。  代码如下 复制代码  if (obj...
  • #进阶4:常见函数/*概念:类似于java的方法,将一组逻辑语句封装在方法体,对外暴露方法名好处:1、隐藏了实现细节 2、提高代码的重用性调用:select 函数名(实参列表) 【from 表】;特点:①叫什么(函数名)②干...
  • #### **这是其中的一部分代码,我不明白res.currentTarget.dataset.cname这一串是什么意思,最让我困惑的是分隔字母的这个“.”** ``` var pages = getCurrentPages(); ``` **这一行代码应该是给pages定义 ...
  • 首先要明白这是什么意思:“无法读取未定义的属性length”。意思是你的js代码可能有某个地方使用a.length或者说你并没有使用length但是某个方法执行过程使用了length属性,而a是undefined未定义的。 这个错误麻烦...
  • //就像其文字所表达的意思,就是像数组,那就得想想数组有什么特性了 //此方法不可运行,需type,each方法配合 //附件里有可运行的代码 function isArrayLike (obj){ var length=obj.length; //判断...
  • 微信小程序火热发布测试,第一时间下了微信开发者工具和...在Demo的wx-action-sheet.js看到一段代码: for (var i = 0; i < items.length; ++i) { (function(itemName) { pageObject['bind' + itemName] =...
  • clear all; I=imread('E:\Desktop\Walking\img\0001.jpg'); figure(1);imshow(I); %%%%%%%%%%%%%%%%%%%%%%%%%%... xw代表什么意思? 另外为什么Y算出来的是偏差值,和meanshift公式不一样啊
  • # 写代码,有如下列表,按照要求实现每一个功能li = ['alex', 'eric', 'rain']# 计算列表长度并输出length = len(li)print(f'1-li的长度是:{length}')# 列表追加元素“seven”,并输出添加后的列表li.append('...
  • string A = "11,9,23,14,36,48,100,99,123,111"; string B = "23,56,46,123,199,323,187,23"; string C = A + "," + B; char[] buf = { ',' }; string[] datas = C.Split(buf);...这段代码什么意思
  • 21.在.net,配件的意思是? 答:程序集。(中间语言,源数据,资源,装配清单) 22.常用的调用WebService的方法有哪些? 答:1.使用WSDL.exe命令行工具。 2.使用VS.NET的Add Web Reference菜单选项 23..net...
  • 请看代码: index >= aImg.length && (index = 0); 这行代码到底是个什么意思
  • Array.prototype.distinct = function() { var ret = []; for (var i = 0; i < this.length; i++) { ... for (var j = i+1;...这段代码中的this.splice(j, 1)[0]是什么意思?? 后面的[0]又代表什么意思
  • 1、使用位运算(&)来实现取模运算(%) 在jdk1.7源码,hashmap有一方法,叫做indexFor(),该方法其实主要是将hash生成的整型转换成链表数组...那这段代码什么意思呢?其实,他就是取模。Java之所有使用位...
  • 只是感觉修改起来太麻烦 得从数据库修改入手 <strong>问题补充</strong><br/><div class="quote_title">lyw985 写道</div><div class="quote_div">所谓的性能差是什么意思? 1.修改方法难 ...
  • arguments[0]()做闭包时的的this对象

    千次阅读 2016-10-24 11:21:41
    var length = 10; function fn(){ alert(this.length) } var obj = { length: 5, method: function(fn) { arguments[0]() } ...这段代码中的arguments[0]()是第一个参数?带一对小括号是什么意思
  • 这两天做TCP协议,数据的传输都是二进制的,需要解释,于是用到了struct看到这样一句代码:Python代码 length=struct.unpack('>I',self.buffer[:4])[0]length = ...I"是什么意思,从google找了一下,有人说这个...
  • prevObject:m.fn.init[1] 这是什么意思 selector:”li” __proto__:Object[0] 这是什么意思 console.log(lis.style);//undefined为什么是未定义 解决办法如下: var lis = $(‘li’)是返回一个jquery对
  • 堆排序看字面意思是一种排序方法,那堆是什么呢?堆是一个近似完全二叉树的结构,并同时满足堆积的性质。其实堆排序是指利用堆这种数据结构所设计的一种排序算法。认识了堆排序,那你知道堆排序在python如何实现吗...
  • 最近学机器学习的时候,看到这样一段代码:x.reshape(-1,1),一直搞不懂参数-1是什么意思。最后就去看了看官方文档: 我们主要看一下红框框里面的内容: The new shape should be compatible with the original ...

空空如也

空空如也

1 2 3 4 5
收藏数 91
精华内容 36
关键字:

代码中length什么意思