python调用一个函数里返回的变量不成功 15C

我要写一个监控LOL击杀记录的功能,但是代码有问题,虽然可以监控到击杀记录,但是不能将监控的结果输出出来。

import win32gui
import win32api
import win32con
from win32gui import *
import time

from PIL import Image
from PIL import ImageGrab
import imagehash
import pymouse,pykeyboard,os,sys
from pymouse import *
from pykeyboard import PyKeyboard
import schedule
import cv2
import numpy as np
import matplotlib.pyplot as plt 
from threading import Thread,Lock
m = PyMouse()
k = PyKeyboard()
titles = set()
lock=Lock()
i=0
reward = 0

#获取电脑上的窗口句柄
def foo(hwnd,mouse):
    if IsWindow(hwnd) and IsWindowEnabled(hwnd) and IsWindowVisible(hwnd):
        titles.add(GetWindowText(hwnd))



def playGame():
    """Click the game icon in the simulator to enter and displays to the specified location"""
    EnumWindows(foo, 0)
    list = []
    for title in titles:
        if title:
           list.append(title)
    for title in list:
        a = 'League of Legends (TM) Client'
        if title.find(a) != -1:
            hwnd = win32gui.FindWindow(0,a)
            win32gui.SetWindowPos(hwnd, win32con.HWND_TOP,0,0,1282,790,win32con.SWP_SHOWWINDOW)
            hwnd = win32gui.FindWindow(0,a)
            size = win32gui.GetWindowRect(hwnd)
            #print(size)
            # 在模拟器点击游戏图标进入游戏
            #win32api.SetCursorPos([size[0] + 410, size[1] + 186])
            #win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0)
            #win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP | win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0)
            #time.sleep(10)
            return size


def jianc():
    """Click to implement in the game"""

    # 点击我知道
    reward = 0
    size = playGame()
    #time.sleep(15)
    #print(size)
    topx, topy = size[0], size[1]
    #print(topx)
    #print(topy)
    ImageGrab.grab((topx + 496, topy + 125, topx + 787, topy + 155)).save(r'C:\Users\Administrator\Desktop\game\model/cheshi'+str(i)+'.jpg','JPEG')
    pic = np.array(Image.open(r'C:\Users\Administrator\Desktop\game\model/cheshi'+str(i)+'.jpg'))
    N = 125
    for a in range(pic.shape[0]):
        for j in range(pic.shape[1]):
            if (pic[a][j][0] > N)&(pic[a][j][1] > N)&(pic[a][j][2] > N):
                pic.itemset((a,j,0),255)
                pic.itemset((a,j,1),255)
                pic.itemset((a,j,2),255)
            else:
                pic.itemset((a,j,0),0)
                pic.itemset((a,j,1),0)
                pic.itemset((a,j,2),0)

    #plt.imshow(pic) 
    plt.axis('off')
    cv2.imencode('.jpg', pic)[1].tofile(r'C:\Users\Administrator\Desktop\game\model\检测/cheshi'+str(i)+'.jpg')
    #cv2.imwrite(r'C:\Users\Administrator\Desktop\game\model/检测/cheshi'+str(i)+'.jpg',pic) 
    #plt.savefig("result.jpg")
    #plt.show()
    #im.save(r'C:\Users\Administrator\Desktop\123/'+str(c)+'.jpg','JPEG') #设置保存路径和图片格式
    hash_size = 6
    hash1 = imagehash.average_hash(Image.open(r'C:\Users\Administrator\Desktop\game\model/检测/cheshi'+str(i)+'.jpg'), hash_size=hash_size)
    hash2 = imagehash.average_hash(Image.open(r'C:\Users\Administrator\Desktop\game\截图\击杀了一名.png'), hash_size=hash_size)
    hash3 = imagehash.average_hash(Image.open(r'C:\Users\Administrator\Desktop\game\截图\你已经被击杀.png'), hash_size=hash_size)
    hash4 = imagehash.average_hash(Image.open(r'C:\Users\Administrator\Desktop\game\截图\摧毁防御塔.png'), hash_size=hash_size)
    hash5 = imagehash.average_hash(Image.open(r'C:\Users\Administrator\Desktop\game\截图\双杀.png'), hash_size=hash_size)
    hash6 = imagehash.average_hash(Image.open(r'C:\Users\Administrator\Desktop\game\截图\三杀.png'), hash_size=hash_size)
    a = (1 - (hash1 - hash2) / len(hash1.hash) ** 2)
    a1 = (1 - (hash1 - hash3) / len(hash1.hash) ** 2)
    a2 = (1 - (hash1 - hash4) / len(hash1.hash) ** 2)
    a3 = (1 - (hash1 - hash5) / len(hash1.hash) ** 2)
    a4 = (1 - (hash1 - hash6) / len(hash1.hash) ** 2)
    #print("你被击杀了",a1)
    if a > 0.76 and a<0.83:
        reward=1
        print("你击杀了",reward,"人!!!")
        #win32api.SetCursorPos([topx + 290, topy + 310])
        #win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0)
        #win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP | win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0)
    elif a1>0.84:
        reward=-1
        print("你被击杀了",reward,"人!!!")
        return reward
    elif a2>0.9:
        reward=1
        print("你摧毁了防御塔",reward,"人!!!")
    elif a3>1:
        reward=2
        print("你双杀了","人!!!")
    elif a4>1:
        reward=3
        print("你三杀了","人!!!")
        return reward
    #
    #
def main(reward):
    n=0
    print(reward)
    schedule.every(4).seconds.do(jianc)#执行定时截屏
    while True:                                     #循环
        schedule.run_pending()
        n = n+1
        time.sleep(4)
        reward=jianc()
        return reward




if __name__ == '__main__':
    #print(reward)
    lock.acquire()
    l=0
    while True:                                     #循环
        l = l+1
        time.sleep(4)
        main(reward)
        print('得分',reward)
    lock.release()

这就是代码,识别准确率比较低,但是最重要的是最后得到的结果不能输出,
我想要的是,识别一张图片输出一个reward,然后在识别下一个图片。
应该怎么改呀,大佬们。

if a > 0.76 and a reward=1
print("你击杀了",reward,"人!!!")
#win32api.SetCursorPos([topx + 290, topy + 310])
#win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0)
#win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP | win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0)
elif a1>0.84:
reward=-1
print("你被击杀了",reward,"人!!!")
return reward
elif a2>0.9:
reward=1
print("你摧毁了防御塔",reward,"人!!!")
elif a3>1:
reward=2
print("你双杀了","人!!!")
elif a4>1:
reward=3
print("你三杀了","人!!!")
return reward

            这一段代码怎么改才能把reward返回出来,求大佬出来指点一下




            把循环拿到外面就好了
import win32gui
import win32api
import win32con
from win32gui import *
import time

from PIL import Image
from PIL import ImageGrab
import imagehash
import pymouse,pykeyboard,os,sys
from pymouse import *
from pykeyboard import PyKeyboard
import schedule
import cv2
import numpy as np
import matplotlib.pyplot as plt 
from threading import Thread,Lock
m = PyMouse()
k = PyKeyboard()
titles = set()
lock=Lock()
i=0
#reward = 0

#获取电脑上的窗口句柄
def foo(hwnd,mouse):
    if IsWindow(hwnd) and IsWindowEnabled(hwnd) and IsWindowVisible(hwnd):
        titles.add(GetWindowText(hwnd))



def playGame():
    """Click the game icon in the simulator to enter and displays to the specified location"""
    EnumWindows(foo, 0)
    list = []
    for title in titles:
        if title:
           list.append(title)
    for title in list:
        a = 'League of Legends (TM) Client'
        if title.find(a) != -1:
            hwnd = win32gui.FindWindow(0,a)
            win32gui.SetWindowPos(hwnd, win32con.HWND_TOP,0,0,1282,790,win32con.SWP_SHOWWINDOW)
            hwnd = win32gui.FindWindow(0,a)
            size = win32gui.GetWindowRect(hwnd)
            #print(size)
            # 在模拟器点击游戏图标进入游戏
            #win32api.SetCursorPos([size[0] + 410, size[1] + 186])
            #win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0)
            #win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP | win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0)
            #time.sleep(10)
            return size


def jianc():
    """Click to implement in the game"""

    # 点击我知道
    #reward = 0
    size = playGame()
    #time.sleep(15)
    #print(size)
    topx, topy = size[0], size[1]
    #print(topx)
    #print(topy)
    ImageGrab.grab((topx + 496, topy + 125, topx + 787, topy + 155)).save(r'C:\Users\Administrator\Desktop\game\model/cheshi'+str(i)+'.jpg','JPEG')
    pic = np.array(Image.open(r'C:\Users\Administrator\Desktop\game\model/cheshi'+str(i)+'.jpg'))
    N = 125
    for a in range(pic.shape[0]):
        for j in range(pic.shape[1]):
            if (pic[a][j][0] > N)&(pic[a][j][1] > N)&(pic[a][j][2] > N):
                pic.itemset((a,j,0),255)
                pic.itemset((a,j,1),255)
                pic.itemset((a,j,2),255)
            else:
                pic.itemset((a,j,0),0)
                pic.itemset((a,j,1),0)
                pic.itemset((a,j,2),0)

    #plt.imshow(pic) 
    plt.axis('off')
    cv2.imencode('.jpg', pic)[1].tofile(r'C:\Users\Administrator\Desktop\game\model\检测/cheshi'+str(i)+'.jpg')
    #cv2.imwrite(r'C:\Users\Administrator\Desktop\game\model/检测/cheshi'+str(i)+'.jpg',pic) 
    #plt.savefig("result.jpg")
    #plt.show()
    #im.save(r'C:\Users\Administrator\Desktop\123/'+str(c)+'.jpg','JPEG') #设置保存路径和图片格式
    hash_size = 6
    hash1 = imagehash.average_hash(Image.open(r'C:\Users\Administrator\Desktop\game\model/检测/cheshi'+str(i)+'.jpg'), hash_size=hash_size)
    hash2 = imagehash.average_hash(Image.open(r'C:\Users\Administrator\Desktop\game\截图\击杀了一名.png'), hash_size=hash_size)
    hash3 = imagehash.average_hash(Image.open(r'C:\Users\Administrator\Desktop\game\截图\你已经被击杀.png'), hash_size=hash_size)
    hash4 = imagehash.average_hash(Image.open(r'C:\Users\Administrator\Desktop\game\截图\摧毁防御塔.png'), hash_size=hash_size)
    hash5 = imagehash.average_hash(Image.open(r'C:\Users\Administrator\Desktop\game\截图\双杀.png'), hash_size=hash_size)
    hash6 = imagehash.average_hash(Image.open(r'C:\Users\Administrator\Desktop\game\截图\三杀.png'), hash_size=hash_size)


    return hash1,hash2,hash3,hash4,hash5,hash6
    #
    #
def main(hash1,hash2,hash3,hash4,hash5,hash6):
    a = (1 - (hash1 - hash2) / len(hash1.hash) ** 2)
    a1 = (1 - (hash1 - hash3) / len(hash1.hash) ** 2)
    a2 = (1 - (hash1 - hash4) / len(hash1.hash) ** 2)
    a3 = (1 - (hash1 - hash5) / len(hash1.hash) ** 2)
    a4 = (1 - (hash1 - hash6) / len(hash1.hash) ** 2)
    #print("你被击杀了",a1)
    return a,a1,a2,a3,a4




def defen():
    #print(reward)


    schedule.every(4).seconds.do(jianc)#执行定时截屏
    #lock.acquire()
    reward=0
    hash1,hash2,hash3,hash4,hash5,hash6=jianc()
    a,a1,a2,a3,a4=main(hash1,hash2,hash3,hash4,hash5,hash6)

        #time.sleep(4)
        #reward=jianc()                                     #循环

    if a > 0.76 and a<0.83:
        reward=1
            #print("你击杀了",reward,"人!!!")
        #win32api.SetCursorPos([topx + 290, topy + 310])
        #win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0)
        #win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP | win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0)
    elif a1>0.84:
        reward=-1
            #print("你被击杀了",reward,"人!!!")
        #return reward
    elif a2>0.9:
        reward=1
            #print("你摧毁了防御塔",reward,"人!!!")
    elif a3>1:
        reward=2
            #print("你双杀了","人!!!")
    elif a4>1:
        reward=3
            #print("你三杀了","人!!!")
    else :
        #print(reward)
        reward=0





        #print('得分',a,a1,a2,a3,a4,reward)
    #time.sleep(4)
    #lock.release()
    return reward


if __name__ == '__main__':
    l=0
    while True:                                     #循环
        schedule.run_pending()
        l = l+1
        #defen()
        reward=defen()
        #print(reward)
        time.sleep(4)

weixin_45536989
weixin_45536989 我是新手自学的python,基础比较差,后来菜发现,return不出来是因为函数里面有一个死循环,改一下就好了
7 个月之前 回复

1个回答

weixin_45536989
weixin_45536989 大佬,你好,这个用法不是很懂,我return的不是只有reward一个值吗?
7 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python中在一个函数模块调用另一个函数模块变量怎么搞
已经设置了global全局变量还是出现了未定义问题,大神们指教 ![图片说明](https://img-ask.csdn.net/upload/201708/12/1502531709_232612.png) ![图片说明](https://img-ask.csdn.net/upload/201708/12/1502531721_424792.png)
从模块中调用的函数中有用到globals(),如何获取主文件中的全局变量值?
比如说模块为: m1.py: ``` class a: @classmethod def show_key(cls): print(globals().keys()) ``` main.py ``` from m1 import a class b(a): pass def main(): a.show_key() print(globals().keys()) if __name__ == '__main__': main() ``` 好像a.show_key( ) 中就只能显示a,但print(globals().keys())中可以显示啊a, b. 想请问,模块(m1)中怎样写,才能达到:main.py里调用该函数时,该函数能吧整个正在运行的程序中(包括所有其他被import到main.oy里面的模块)所有的全局变量的keys都打印出来呀?
c++调用python 无结果返回问题,求教!
问题描述: 程序执行至调用函数前都没有错误,但返回的结果为空,即pReturn为空。想请教各位这是什么原因?另外,在释放python对象指针代码处,VS2010编译报错(之前灰掉这块了): “ 无法解析的外部符号 __imp___Py_Dealloc,该符号在函数 _main 中被引用 1>TT.obj : error LNK2019: 无法解析的外部符号 __imp___Py_NegativeRefcount,该符号在函数 _main 中被引用 1>TT.obj : error LNK2001: 无法解析的外部符号 __imp___Py_RefTotal” 请大神指点!以下是代码块。 python代码 ``` #-*- coding:gb2312 -*- def hello(a,b) : return a+b ``` c++代码 ``` #include<iostream> #include<Python.h> using namespace std; int main() { Py_Initialize();//使用python之前,要调用Py_Initialize();这个函数进行初始化 PyObject * pModule = NULL;//声明变量 PyObject * pFunc = NULL;// 声明变量 PyObject *pDict = NULL; PyObject *pArgs = NULL; pModule =PyImport_ImportModule("test_call");//这里是要调用的文件名 if ( !pModule ) { printf("can't find pytest.py"); getchar(); return -1; } pDict = PyModule_GetDict(pModule); //pFunc= PyObject_GetAttrString(pModule, "hello");//这里是要调用的函数名 pFunc = PyDict_GetItemString(pDict, "hello"); if ( !pFunc || !PyCallable_Check(pFunc) ) { printf("can't find function [hello]"); getchar(); return -1; } pArgs = Py_BuildValue("i",3); pArgs = Py_BuildValue("i",4); PyObject *pReturn = NULL; pReturn = PyEval_CallObject(pFunc, pArgs);//调用函数 if(!pReturn) { cout<<"null.\n"; return -1; } int result = -1; if (pReturn && PyArg_ParseTuple(pReturn,"i", &result)) { cout << "3+4 = " << result << endl; } Py_DECREF(pModule); Py_DECREF(pFunc); Py_DECREF(pDict); Py_DECREF(pArgs); Py_Finalize();//调用Py_Finalize,这个根Py_Initialize相对应的。 return 0; }
python的一个文件中定义了几个函数,但调用时提示变量未定义??
![![图片说明](https://img-ask.csdn.net/upload/201802/24/1519440332_531887.png)图片说明](https://img-ask.csdn.net/upload/201802/24/1519440320_69228.png)
python关于两个函数之间变量传递问题?请详细解答,感谢。
``` from sympy import* def z(l): print(l.subs(x,1)) def f(): x = symbols('x') l = x*x z(l) f() ``` 运行后,在f()调用z()时x未定义。但是改为如下就能成功: ``` from sympy import* def z(l): print(l.subs(x,1)) if __name__=='__main__': x = symbols('x') l = x*x z(l) ``` 请问对于第一个代码如何修改,能通过调用f()函数得到结果
python中有子程序吗?如果没有,如何在函数中优雅地修改传递进来的参数?
我以前是使用fortran的。在fortran中,函数和子程序传递参数时都使用的是传址调用,也就是调用函数或子程序都能改变传递进来的参数,只不过有个约定俗成的规矩,当需要修改传递进来的参数时,使用子程序,当参数为只读时,使用函数。 例如以下fortran代码,显示a+1后的结果,为2 ``` subroutine add(num) implicit none real :: num num=num+1 return end program main implicit none real:: a=1.0 call add(a) write(*,*) a end ``` 但在python中,函数中的变量都为局部变量,以下python代码显示结果为1,而且好像没有子程序的概念,那么如果我需要使用函数来改变传递进来的参数,除了声明为全局变量外(听说全局变量会使代码混乱),应该怎么做? ``` def add(num): num+=1 return a=1 add(a) print(a) ```
关于调用python构造函数子方法的参数问题
例如: ``` import XXX class A: def __init__(): ...... def a(): needNum=666 def b(): ...... def uselessFunctionA(): ...... def uselessFunctionB(): ...... ``` 那么我到底该如何获取参数needNum呢?之前一直试着把needNum当成类变量调用,显示失败,现在有点懵,求帮助T T
Python多线程通信问题
新人第一次提问, 最近在学习Python多线程, notify()与wait()语句。这是我写的一个作业, 要求是: 现在的你,是一个农场主。农场中养着10头小牛,牛吃草长大,但只有当下雨的时候草才会长大,每天有20%的概率下雨,草经过3次成长后就可以喂给牛吃了。每头小牛吃过5次草之后就会长大了。要求使用多线程来完成。小牛(消费者)线程和草(生产者)之间需要通信。 以下是我的代码: ``` import threading import random from time import sleep """ 声明全局变量: num_cows: 牛的数量, 整形,十头。 cows: 牛的集合, 列表(数组)。 长度:10 num_grass: 草的数量, 整形,若干。 区间:50-101棵。 为了确保每头牛都可以长大,小草必须至少有50棵。 grass: 草的集合, 列表(数组)。 长度:num_grass initial_stat: 草/牛的初始状态,整形,设置为0。 increment: 用于改变状态的变量,整形,设置为0。 """ # 定义全局变量 num_cows, initial_stat, num_grass = 10, \ 0, \ random.randint(50, 101) cows, grass = [], [] for i in range(num_grass): # 设置草儿数量,初始化每一棵小草状态 grass.append(initial_stat) for i in range(num_cows): # 初始化每一头牛 cows.append(initial_stat) # TODO 草儿生长类 class GrassGrow(threading.Thread): """草成长线程""" # TODO 重写run函数 def run(self): global grass global cows while True: ct.acquire() print("一天过去了...小草会不会生长呢?") grass = rain(grass) # 淋雨的草儿成长一次,数位进一, 呼叫rain函数, 传入参数grass列表 if len(grass) > 0: # 判断还有没有需要生长的草儿 if grassgrow(grass): # 检查草儿,若有一株淋到三次雨,通知牛儿吃草 print("提醒牛儿该吃草了") ct.notify() # 提醒牛儿线程该吃草了 ct.release() print("草线程解锁") sleep(1) print("通知牛儿吃草了") elif len(grass) <= 0: # 如果草儿被吃完了,结束进程 print("草儿被吃光啦") ct.release() # 解锁 break # 退出程序 # TODO 牛儿生长类 class CowGrow(threading.Thread): """牛儿成长线程""" print("start") # TODO 重写run函数 def run(self): print("1") global cows global grass # TODO 随机一头牛吃草 while True: print("2") ct.acquire() print("3") ct.wait() print("4") if grassgrow(grass) and 5 not in cows: print("牛有草能吃了") # 长大的小草中,随机吃掉一株,从草儿列表中移除 index = [] for i in range(len(grass)): if grass[i] >= 3: index.append(i) delete = index[random.randint(0, len(index) - 1)] del grass[delete] cows[random.randint(range(len(cows)))] += 1 # 随机一头牛吃草,状态进1 print("有一头牛把吃了一颗草,现在的牛儿们是:{}".format(cows)) # 判断牛儿中是否有长大的牛儿 elif 5 in cows: # 移除所有已经长大的牛儿 for cow in range(len(cows)): if cows[cow] == 5: del cows[cow] # 判断是不是所有的牛儿都长大了,如果都长大了,结束进程 elif len(cows) == 0: print("所有的牛儿都长大啦") ct.release() break ct.wait() ct.release() # sleep(1) # TODO 下雨函数 def rain(grass_list): """ :param grass_list: 接收 草儿列表作为参数 :return: 返回 新的,淋雨之后的草儿列表 """ # 遍历草列表中的每一株草 rain_probability = random.randint(1, 101) # 每天有20%几率局部下雨。如果未下雨,则所有小草都不会成长。如果下雨了,局部小草会成长。 if rain_probability <= 20: for a_grass in range(len(grass_list)): grass_grow_prob = random.randint(1, 101) if grass_grow_prob <= 50 and 0 <= grass_list[a_grass] <= 2: grass_list[a_grass] += 1 print("今天下雨啦,现在的小草们:{}".format(grass)) print("今天没有下雨,没有小草生长...") return grass_list # TODO 判断草长大函数 def grassgrow(grass_list): """ :param grass_list: 接收 草儿列表作为参数 :return: 返回 若有生长好的小草则返回真,否则为假 """ if 3 not in grass_list: print("目前为止还没有小草生长完成") return False else: print("有小草生长完成了,现在的小草们:{}".format(grass)) return True if __name__ == "__main__": ct = threading.Condition() # 定义线程变量, 用于多线程通信 cow_thread = CowGrow() grass_thread = GrassGrow() cow_thread.start() print("牛等待吃草") grass_thread.start() ``` rain函数用来20%几率下雨, grasgrow函数用来判断有没有草淋了三次雨, 一旦有草淋到三次雨就可以了通知CowGrow线程吃草了。 我的解题思路是: 创建一个列表grass代表草, 一个列表cows代表牛。类GrassGrow中当判断grassgrow函数为真时, 唤醒牛线程。然后随机一头牛吃了一颗草之后,阻塞自己等待。而当我实际运行的时候,牛在一开始被阻塞之后一直没有被唤醒 以下是运行结果: ============================================= start 1 2 3牛等待吃草 一天过去了...小草会不会生长呢? 今天没有下雨,没有小草生长... 目前为止还没有小草生长完成 一天过去了...小草会不会生长呢? 今天下雨啦,现在的小草们:[1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1] 今天没有下雨,没有小草生长... 目前为止还没有小草生长完成 一天过去了...小草会不会生长呢? 今天没有下雨,没有小草生长... 目前为止还没有小草生长完成 一天过去了...小草会不会生长呢? 今天下雨啦,现在的小草们:[1, 1, 1, 0, 0, 2, 1, 1, 1, 2, 0, 0, 1, 1, 2, 1, 2, 2, 1, 0, 1, 1, 0, 1, 2, 1, 0, 2, 1, 1, 0, 1, 2, 1, 1, 0, 1, 0, 2, 1, 2, 2, 2, 0, 0, 2, 1, 2, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 0, 1, 1, 2, 2, 2, 0, 2, 1, 2, 1, 2, 1, 0, 1, 0, 2, 1, 1, 1, 2, 1, 1, 1] 今天没有下雨,没有小草生长... 目前为止还没有小草生长完成 一天过去了...小草会不会生长呢? 今天下雨啦,现在的小草们:[2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 0, 1, 1, 2, 2, 2, 3, 2, 1, 1, 1, 0, 1, 2, 2, 1, 2, 2, 2, 0, 1, 3, 1, 2, 0, 1, 0, 3, 2, 3, 3, 3, 0, 1, 2, 1, 2, 0, 1, 1, 2, 2, 1, 0, 1, 1, 1, 1, 3, 1, 1, 1, 3, 2, 2, 3, 1, 2, 2, 1, 3, 2, 1, 1, 2, 3, 2, 2, 1, 2, 1, 3, 1, 2, 2, 1, 1, 0, 3, 2, 2, 1, 3, 2, 2, 1] 今天没有下雨,没有小草生长... 有小草生长完成了,现在的小草们:[2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 0, 1, 1, 2, 2, 2, 3, 2, 1, 1, 1, 0, 1, 2, 2, 1, 2, 2, 2, 0, 1, 3, 1, 2, 0, 1, 0, 3, 2, 3, 3, 3, 0, 1, 2, 1, 2, 0, 1, 1, 2, 2, 1, 0, 1, 1, 1, 1, 3, 1, 1, 1, 3, 2, 2, 3, 1, 2, 2, 1, 3, 2, 1, 1, 2, 3, 2, 2, 1, 2, 1, 3, 1, 2, 2, 1, 1, 0, 3, 2, 2, 1, 3, 2, 2, 1] 提醒牛儿该吃草了 草线程解锁 通知牛儿吃草了 一天过去了...小草会不会生长呢? ============================================== 可以看到牛只有一开始调用了一次...之后再也没有被唤醒, 而且前几次小草没有sleep就运行了好多次,之后才开始运行sleep,打印"提醒牛儿该吃草了", "草线程解锁", "通知牛儿吃草了"才开始运行。谷歌和本站都查了一些问题,但和我的情况都不太相似。真心像各位请教...拜托了..
linux使用clion进行c++和python的交叉编译,无法导入python的第三方库
在ubuntu14.04下使用clion进行c++调用python编写的模块,当python中import第三方库(如numpy时),出现错误。具体如下: 这是我的代码: cmakelist: ``` cmake_minimum_required(VERSION 3.5) project(image_pretreat) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -util -ldl -pthread") # 添加Python.h头文件路径 include_directories(/home/neil/.pyenv/versions/3.6.4/include/python3.6m) # 添加python动态链接库文件目录 link_directories(/home/neil/.pyenv/versions/3.6.4/lib/python3.6/config-3.6m-x86_64-linux-gnu) set(SOURCE_FILES main.cpp) add_executable(image_pretreat ${SOURCE_FILES}) # 依赖库文件 target_link_libraries(image_pretreat libpython3.6m.a) target_link_libraries(image_pretreat ${CMAKE_DL_LIBS}) target_link_libraries(image_pretreat util) ``` main函数 ``` #include <Python.h> #include <iostream> using namespace std; int main() { Py_Initialize(); //声明python对象(模型、函数、参数、返回值) PyObject *pModule, *pFunction, *pArgs, *pRetValue; PyRun_SimpleString("import sys"); PyRun_SimpleString("sys.path.append('/home/neil/ClionProjects/image_pretreat')"); //调用python模块 pModule = PyImport_ImportModule("test123"); if (!pModule) { printf("import python failed!!\n"); return -1; } //调用python模块中的函数 pFunction = PyObject_GetAttrString(pModule, "add"); if (!pFunction) { printf("get python function failed!!!\n"); return -1; } //新建python元组对象 pArgs = PyTuple_New(2); PyTuple_SetItem(pArgs, 0, Py_BuildValue("i", 1)); PyTuple_SetItem(pArgs, 1, Py_BuildValue("i", 2)); int r1,r2; r1=r2=0; pRetValue=PyObject_CallObject(pFunction, pArgs); PyArg_ParseTuple(pRetValue, "i|i", &r1, &r2); printf("%d,%d",r1,r2); //关闭 Python 脚本解释器 Py_Finalize(); return 0; } ``` Python模块 ``` import numpy as np def add(a,b): return a+b,a-b ``` 报错: import python failed!! Process finished with exit code 255 已采取方法: 1、将python3.6各个路径都包含进了PYTHONPATH和PYTHONHOME环境变量 2、主函数中手动设置py_SetPythonhome函数
如何在pygame中做一个按钮调用函数并且关闭当前界面
用tkinter写的主页面 并且在主页面中用按钮实现了调用游戏界面并且关闭主页面的方法,现在需要一个返回按钮 返回tk的主页面 我现在点按钮可以返回但是无法关闭当前的pygame的窗口 求助各位大神 import pygame, sys from pygame.locals import * import main pygame.init() #初始化pygame screen=pygame.display.set_mode([640,480]) #窗口大小:640*480 screen.fill([255,255,255])#用白色填充窗口 myimage=pygame.image.load("1.png") #把变量myimage赋给导入的图片 screen.blit(myimage,[500,0]) #在100,100的地方画出这个图片(100和100为左部和上部) pygame.display.flip() while True: for event in pygame.event.get():#获得事件 if event.type==pygame.MOUSEBUTTONDOWN and 500<=event.pos[0]<=640 and \ 0<=event.pos[1]<=57: #判断鼠标位置以及是否摁了下去。 #做需要做的事情,如开始游戏。 main.zhuyemian() pass
求助 Python for循环中局部变量出错
就是写了一个爬虫,一直调用一个函数扣数据,其中用到for循环,运行次数少的时候,代码是没问题的,到了1000次以上,就提示我recruitInformation和companyInformation局部变量的范围有问题,就是和全局变量在函数里错当局部变量的错误一样,错误提示我忘留下了。下面是代码。 ``` def get_one_data(soup0,url0): global T,F,recruitInformation,companyInformation #扣取招聘标题title title0 = soup0.select('.inner-left > h1:nth-of-type(1)') for tt in title0: title = tt.get_text() # print(title) #扣取招聘公司company company0 = soup0.select('body > div.terminalpage.clearfix > div.terminalpage-right > div.company-box > p > a') for co in company0: company = co.get_text() # print(company) #扣取职位福利 welfare0 = soup0.select('.welfare-tab-box') for ww in welfare0: welfare = list(ww.stripped_strings) # print(welfare) #扣取招聘信息 recruitInformation0 = soup0.select('body > div.terminalpage.clearfix > div.terminalpage-left > ul') for re in recruitInformation0: recruitInformation = list(re.stripped_strings) dd="" #临时存储其中一个信息 i=0 #控制list中的个数 dao=[] #塞进整个招聘信息 m=1 #在recruitInformation的长度为17时,控制信息个数,总共8个 if(len(recruitInformation)==16): for d in recruitInformation: if i < 2: dd = dd + d i = i + 1 else: dao.append(dd) # print(dd) dd = d i = 1 dao.append(dd) # print(dao) else: for d in recruitInformation: if m==2: if i<3: dd=dd+d i=i+1 else: dao.append(dd) m=m+1 dd=d i=1 continue if i<2: dd=dd+d i=i+1 else: dao.append(dd) m=m+1 dd=d i=1 dao.append(dd) # print(dao) #扣取职位描述 positionDescribe0=soup0.select('body > div.terminalpage.clearfix > div.terminalpage-left > div.terminalpage-main.clearfix > div > div:nth-of-type(1)') for po in positionDescribe0: positionDescribe = po.get_text() # print(positionDescribe) #扣取公司基本信息 companyInformation0=soup0.select('body > div.terminalpage.clearfix > div.terminalpage-right > div.company-box > ul') for ci in companyInformation0: companyInformation = list(ci.stripped_strings) cidd = "" #临时存储其中一个信息 i = 0 #控制list中的个数 cidao = [] #塞进整个公司基本信息 for d1 in companyInformation: if i < 2: cidd = cidd + d1 i = i + 1 else: cidao.append(cidd) # print(dd) cidd = d1 i = 1 cidao.append(cidd) # print(cidao) #扣取公司简介 allData = { "url": url0, "title": title, "company": company, "welfare": welfare, "recuritInformation": dao, "positionDescribe": positionDescribe.replace(" ", ""), "companyInformation": cidao, "companyIntroduction": "none" } print("抽取数据正常") m=inputData(allData,dd) print("存取数据可进行") if m==1: T=T+1 else: F=F+1 print("成功了"+str(T)+"个,失败了"+str(F)+"个") ``` 将recruitInformation和companyInformation注明global是试试能不能解决问题,一开始只是加了recruitInformation,后来提示了companyInformation也出错。我加了companyInformation后正在跑跑看。
关于python语法的一些问题
1.python生成器,以下是书上的一个例子: ``` >>>def my_range(first=0,last=10,step=1): ... number=first; ... while number<last: ... yield number ... number+=step ... ``` 调用这个函数: ``` >>>range=my_range(1,5) >>>for x in ranger: ... print(x) ... 1 2 3 4 ``` 这里我就想问问yield number那里,这里应该是返回number的值,可是下面为什么还会有代码,python的函数的返回值可以不放在函数最后吗?另外看不明白my_range函数的意思,有没有大神能解释一下? 2.python命名空间和作用域的问题 ``` >>>animal='fruitbat' >>>def change_and_print_global(): ... print('inside change_anf_print_global:',animal) ... animal ='wombat' ... print('after the change:',animal) ... >>>change_and_print_global() ``` 执行上面这段代码会报错,local variable 'animal' referenced before assignment 然而,执行下面这段代码却不会报错 ``` >>>def change_local(): ... animal='wombat' ... print('inside change_local:',animal,id(animal)) ... >>> change_local() inside change_local: wombat 4330406160 ``` 以上这2段都是书上的代码,第一段代码会报错,可是第二段同样是在函数中使用了一个同名的变量,并给其附了值,第一段也是在函数内使用了同名变量,改变值。我看不出这2段代码有什么不同,可是为什么一段会报错,而另一段不会报错?求大神解析解析
C++调用python脚本(test.py这个脚本中import numpy)程序崩溃
我想在c++中调用python的一个脚本,这个脚本中我只是import了一个numpy就报错了,而如果是简单的脚本(没有import第三方库)就不会出错,我已经把: INCLUDEPATH += C:/Python27/include/ LIBS += C:/Python27/libs/python27.lib 添加进去了, ``` pyrun_simplestring("import sys"); pyrun_simplestring("import numpy"); pyrun_simplestring("sys.path.append('c:\python27\lib\site-packages\')"); pyerr_print(); pyobject * pmodule = null; pyobject * pfunc = null; pmodule =pyimport_importmodule("test_my"); //test001:python文件名 pfunc= pyobject_getattrstring(pmodule, "testdict"); //add:python文件中的函数名 pyobject *pargs = pytuple_new(1); pyobject *pdict = pydict_new(); //创建字典类型变量 pydict_setitemstring(pdict, "name", py_buildvalue("s", "wangyao")); //往字典类型变量中填充数据 pydict_setitemstring(pdict, "age", py_buildvalue("i", 25)); //往字典类型变量中填充数据 pytuple_setitem(pargs, 0, pdict); //0---序号 将字典类型变量添加到参数元组中 pyobject *preturn = null; preturn = pyeval_callobject(pfunc, pargs); //调用函数 int size = pydict_size(preturn); cout << "返回字典的大小为: " << size << endl; pyobject *pnewage = pydict_getitemstring(preturn, "age"); int newage; pyarg_parse(pnewage, "i", &newage); cout << "true age: " << newage << endl; py_finalize(); ``` 这是python的脚本: ``` #import numpy as np def HelloWorld(): print "Hello World" def add(a, b): #tmp=np.random.randint(10,88) return a+b def TestDict(dict): print dict dict["Age"] = 17 return dict class Person: def greet(self, greetStr): print greetStr #print add(5,7) #a = raw_input("Enter To Continue...") ``` 老是报错,但如果我把import numpy去掉就没问题,求大神解答,困扰好久了~~~
PyQt5调用QApplication.processEvents()函数,界面没刷新
``` sta_btn.setEnabled(False) sta_label.setText("Updating") pro_label.setText("0%") QApplication.processEvents() ``` 我在线程函数里执行修改label文本操作,调用QApplication.processEvents()刷新文本值,但是窗体中label对应的文本没有改变,还是默认值,这是为啥呀? sta_label = self.Status_label_1 sta_btn = self.Start_Button_1 pro_label = self.Progress_label_1 在这里给控件变量赋值了
python正则表达式如何封装
一个文本处理函数,需要经常调用正则表达式,文档结构类似于: ``` def function(): match=re.match(pattern,string) # 省略 ``` 现在的问题是,这个function是经常被其它函数调用的: (1)如果把正则表达式的定义写在function里面,每调用一次function就会重新对这个正则表达式进行编译,会占用很多时间; (2)如果把正则表达式的定义和编译写在function外面作为全局变量,由于需要用到的正则表达式很多,每个正则表达式都声明为一个全局变量不太合适,请问如何封装比较好?
python中未申明方法为何可以直接调用
下面是一个aiohttp例程,这里的init函数中的loop变量为什么可以直接调用create_server方法? ``` from aiohttp import web import asyncio def index(request): return web.Response(body=b'<h1>Hello World!</h1>') async def init(loop): app = web.Application(loop=loop) app.router.add_route('GET', '/index', index) server = await loop.create_server(app.make_handler(), '127.0.0.1', 8000) return server def main(): loop = asyncio.get_event_loop() loop.run_until_complete(init(loop)) loop.run_forever() if __name__ == '__main__': main() ```
tk.label和tk.Button的内容怎么能随数组变化而变化?
用python tkinter编程的时候 先定义了一个数组List 然后有 root=tk.Tk() ............ img=drawImage(List) tk.label(root, image=img).pack() tk.Button(root, text=List, command=lambda:changeList(List)).pack() .......... root.mainloop() 这样的句子,drawImage函数根据数组List的内容画图,在label里显示出来,button的文本是数组List的内容,点击一下button就调用changeList函数改变该List的内容 预想的是点一下button,List变量,显示的图片和button的文字就跟着改变,但是实际运行的时候点了没反应 要怎么改?
再看DANN的源码,在forword里有一处看不懂,类名.apply()在python3里是什么意思?
在看DANN的源码,看到这个: ``` def __init__(self): super(CNNModel, self).__init__() self.feature = nn.Sequential() self.class_classifier = nn.Sequential() self.domain_classifier = nn.Sequential() self.feature.add_module………… ………… def forward(self, input_data, alpha): input_data = input_data.expand(input_data.data.shape[0], 3, 28, 28) feature = self.feature(input_data) feature = feature.view(-1, 50 * 4 * 4) reverse_feature = ReverseLayerF.apply(feature, alpha) class_output = self.class_classifier(feature) domain_output = self.domain_classifier(reverse_feature) ``` 没用过python2,对apply不熟,查了一下用法感觉没看懂,附一下其他需要的代码段: ``` class ReverseLayerF(Function): @staticmethod def forward(ctx, x, alpha): ctx.alpha = alpha return x.view_as(x) @staticmethod def backward(ctx, grad_output): output = grad_output.neg() * ctx.alpha return output, None alpha = 2. / (1. + np.exp(-10 * p)) - 1 class_output, domain_output = my_net(input_data=inputv_img, alpha=alpha) ``` forward里reverse_feature = ReverseLayerF.apply(feature, alpha)这句不太明白,我看出来ReverseLayerF是单独为该处重写了前向传播和反向传播,但apply函数里也是只有两个变量没有函数名啊,这是怎么调用的?而且要改成python3要怎么写? 另外,单独写了几句试了试,居然还跑通了 ``` feature = torch.rand([2,2]) alpha = 1000 reverse_feature = ReverseLayerF.apply(feature, alpha) ``` 结果是调用了类内的forward()使得reverse_feature=feature,且ReverseLayerF.alpha=1000. 那么这个类名.apply()到底是什么?有没有人能解释一下
基于keras写的模型中自定义的函数(如损失函数)如何保存到模型中?
```python batch_size = 128 original_dim = 100 #25*4 latent_dim = 16 # z的维度 intermediate_dim = 256 # 中间层的维度 nb_epoch = 50 # 训练轮数 epsilon_std = 1.0 # 重参数 #my tips:encoding x = Input(batch_shape=(batch_size,original_dim)) h = Dense(intermediate_dim, activation='relu')(x) z_mean = Dense(latent_dim)(h) # mu z_log_var = Dense(latent_dim)(h) # sigma #my tips:Gauss sampling,sample Z def sampling(args): # 重采样 z_mean, z_log_var = args epsilon = K.random_normal(shape=(128, 16), mean=0., stddev=1.0) return z_mean + K.exp(z_log_var / 2) * epsilon # note that "output_shape" isn't necessary with the TensorFlow backend # my tips:get sample z(encoded) z = Lambda(sampling, output_shape=(latent_dim,))([z_mean, z_log_var]) # we instantiate these layers separately so as to reuse them later decoder_h = Dense(intermediate_dim, activation='relu') # 中间层 decoder_mean = Dense(original_dim, activation='sigmoid') # 输出层 h_decoded = decoder_h(z) x_decoded_mean = decoder_mean(h_decoded) #my tips:loss(restruct X)+KL def vae_loss(x, x_decoded_mean): xent_loss = original_dim * objectives.binary_crossentropy(x, x_decoded_mean) kl_loss = - 0.5 * K.mean(1 + z_log_var - K.square(z_mean) - K.exp(z_log_var), axis=-1) return xent_loss + kl_loss vae = Model(x, x_decoded_mean) vae.compile(optimizer='rmsprop', loss=vae_loss) vae.fit(x_train, x_train, shuffle=True, epochs=nb_epoch, verbose=2, batch_size=batch_size, validation_data=(x_valid, x_valid)) vae.save(path+'//VAE.h5') ``` 一段搭建VAE结构的代码,在保存模型后调用时先是出现了sampling中一些全局变量未定义的问题,将变量改为确定数字后又出现了vae_loss函数未定义的问题(unknown loss function: vae_loss) 个人认为是模型中自定义的函数在保存上出现问题,但是也不知道怎么解决。刚刚上手keras和tensorflow这些框架,很多问题是第一次遇到,麻烦大神们帮帮忙!感谢!
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
【资源】一个C/C++开发工程师的学习路线(已经无路可退,唯有逆风飞翔)【内附资源页】
声明: 1)该文章整理自网上的大牛和专家无私奉献的资料,具体引用的资料请看参考文献。 2)本文仅供学术交流,非商用。所以每一部分具体的参考资料并没有详细对应。如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除。 3)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢谢。 4)此属于第一版本,若有错误,还需继续修正与增删。还望大家多多指点。大家都共享一点点,一起为祖国科研的推进...
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
20道你必须要背会的微服务面试题,面试一定会被问到
写在前面: 在学习springcloud之前大家一定要先了解下,常见的面试题有那块,然后我们带着问题去学习这个微服务技术,那么就会更加理解springcloud技术。如果你已经学了springcloud,那么在准备面试的时候,一定要看看看这些面试题。 文章目录1、什么是微服务?2、微服务之间是如何通讯的?3、springcloud 与dubbo有哪些区别?4、请谈谈对SpringBoot 和S...
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
2020 年,大火的 Python 和 JavaScript 是否会被取而代之?
Python 和 JavaScript 是目前最火的两大编程语言,但是2020 年,什么编程语言将会取而代之呢? 作者 |Richard Kenneth Eng 译者 |明明如月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 以下为译文: Python 和 JavaScript 是目前最火的两大编程语言。然而,他们不可能永远屹立不倒。最终,必将像其他编程语言一...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
神级宝库!GitHub 标星 1.2w+,Chrome 最天秀的插件都在这里啦!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个沉迷 Chrome 不能自拔的蒟蒻… 作为一个在远古时代用过什么 IE、360、猎豹等浏览器的资深器哥,当我第一次了解 Chrome 的时候,就被它的美貌给吸引住了… 就在我用了一段时间之后,我坚决的卸载了电脑上其它碍眼的浏览器,并觉得在之前的搬砖生涯中,我不配当哥,我只配是个沙雕… ...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
张朝阳回应迟到 1 分钟罚 500:资本家就得剥削员工
loonggg读完需要2分钟速读仅需 1 分钟大家我,我是你们的校长。前几天,搜狐的董事局主席兼 CEO 张朝阳和搜狐都上热搜了。原因很简单,就是搜狐出了“考勤新规”。一封搜狐对员工发布...
立即提问