python递归 return 问题
 class Solution:
    def canJump(self, nums):
        if len(nums) == 0:
            return False

        def DFS(nums):

            if len(nums) == 1:
                return True

            for i in range(1,nums[0]+1):
                return DFS(nums[i:])
          #上面这两行代码如果改成 return DFS(nums[1:]、  DFS(nums[2:]......)则可以运行,但是引入for循环后,return就变为None)


S =Solution()
S.canJump([2,0,0])

想知道怎么解决?卡了我好久

3个回答

在for循环里没有限制条件直接加return肯定有问题吧,每次运行到第一个就结束当前函数了,for循环里从第二个开始的都不会运行
你能说一下你想用这个函数干嘛么

qq_35292447
jeremie_SYSU 是的,在第一个循环就结束了,把return去掉,函数返回的是None,并不是我所希望达到条件后停止并返回True
一年多之前 回复

你这个东西写的挺别扭的,外边调用的是canJump,然后运行canJump的时候,又调不到DFS,那怎么用你说的那段代码

当用for循环时,nums【0】是2,i取值1。2,。第二轮的nums为【0,0】,【0】,当nums为【0,0】时,for 循环中i=range(1,1),range函数从start开始不包括end。这里就没值

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python递归的无法返回或者达到某一条件终止并return
``` class Solution: def canJump(self, nums): if len(nums) == 0: return False def DFS(nums): if len(nums) == 1: return True for i in range(1,nums[0]+1): DFS(nums[i:]) if DFS(nums) is False: print('1111') return True elif DFS(nums) is None: print('2222') return False S =Solution() S.canJump([2,0,0]) ``` 两个问题:1为什么我DFS函数没有返回TRUE ,返回的是None 2如果按照网上的方法在 DFS(nums[i:]) 前加上return 为什么我的i不会循环到2这个值,只能是1就停止了?
python递归式不能正常工作
我写了个个python方法想要归类wikipedia,然后在做递归式的时候想要把导入的parameter更换,可是却改变不了 import csv from bs4 import BeautifulSoup import urllib.request string_set=[] url_link=[] def get_first_category(url): k=urllib.request.urlopen(url) soup=BeautifulSoup(k) s=soup.find_all('a') for i in s: string_set.append(i.string) for i in range(-len(string_set), 0): if string_set[i] == ("Categories"): return (string_set[i + 1]) def join_with(k): return k.replace(" ","_") def get_category_page(k): p=["https://en.wikipedia.org/wiki/Category:",k] return "".join(p) def return_link(url): return (get_category_page(join_with(get_first_category(url)))) file=open("Categories.csv") categories=csv.reader(file) categories=zip(*categories) def find_category(url): k=get_first_category(url) for i in categories: if k in i: return [True,i[0]] return [False,k] category_url='' def main(url): j=find_category(url) if j[0]: return j[1] else: url=return_link(url) print(url) return main(url) #print(return_link('https://en.wikipedia.org/wiki/Category:Mathematics_of_infinitesimals')) print (main('https://en.wikipedia.org/wiki/Category:Charitable_organizations')) 这是我的code,然后 https://www.dropbox.com/s/647hpufvzq0fksk/Categories.csv?dl=0 这是csv的地址,按理说应该会一个个找下去可是parameter被改变一次就不再被改变,已经试了很多方法了可是还是没有办法
PYthon递归函数超过999就开始提示错误
我在测试递归函数,为什么输入999以内都是可以正常运行,一旦大于等于1000就开始提示错误了? def calc(n): if n == 1: return 1 return n+calc(n-1) print(calc(1000))
小新自学python遇到递归问题,有一点不明白
首先教程里说到递归就是函数自己调用自己,这个还能理解,然后把练习的代码放上。 ``` def sum_numbers(num): if num == 1: return 1 temp = sum_numbers(num - 1) return num + temp result = sum_numbers(5) print(result) ``` * 如题在函数,是当数==1的时候就跑出,相当于每一次执行到 temp = sum_numbers(num - 1)的时候只要不==1就会 一直调用函数,因为if里面有return.那么最后一条return num + temp这一条。应该不再 执 行 了。但实际运行的时候还是有执行 的。 * 当num == 1的时候到了return num + temp的时候这时候temp=1 ,num = 2 * 但是我不明白num =2是怎么得出 的。再执行 num = 3 temp=3 有点迷糊 了
python 递归函数的执行时间怎么处理
''' 代码 ''' import time import random myList=[] count=0 def decorate(function): def inner(*args): start=time.time() function(*args) end=time.time() print(end-start) return function return inner def QuickSort(myList,start,end): if start<end: i,j=start,end base=myList[i] while i<j: while(i<j) and (myList[j]>=base): j=j-1 myList[i]=myList[j] while(i<j) and (myList[i]<=base): i=i+1 myList[j]=myList[i] print(myList) myList[i]=base QuickSort(myList,start,i-1) QuickSort(myList,j+1,end) return myList for num in range(0,1000): myList.append(random.randint(0,1000)) myList=random.sample(myList,5) @decorate def quick(): QuickSort(myList,0,len(myList)-1) #myList.sort() quick() ''' 结果 ![图片说明](https://img-ask.csdn.net/upload/201811/05/1541384222_689705.png) ''' ''' 提问:为什么快速排序的算法速度会比python自带的sort()执行的时间慢,而且慢的很多? '''
关于python函数递归返回值的问题
这是一个匹配字典中词语的函数。 按理说已经匹配成功了 在return之前加个print 输出结果是对的 但是在外面调用输出来就是None 不知道为什么 求大神!! ``` def find_word(dictionary,word): if word in dictionary: return word else: if len(word)-1 == 0: return word else: word = word[0:len(word)-1] find_word(dictionary,word) dictionary = read_dic() print(find_word(dictionary,"热烈欢迎新")) ```
josephus问题递归求解,函数返回值问题,返回值为none?
# josephus问题递归求解,函数返回值问题 ``` def josephus(args,number):#传入列表和数字 tidailiebiao=[i for i in args]#为了多次调用,使用替代列表 print(tidailiebiao) if(len(tidailiebiao)<number):#递归结束条件 #print(tidailiebiao) #print(len(tidailiebiao)) return tidailiebiao#返回值 else: delete_people=tidailiebiao.pop(number-1)#删除元素 print("remove:%d"%delete_people) tidailiebiao=tidailiebiao[number-1:]+tidailiebiao[:number-1]#生成新列表 josephus(tidailiebiao,number)#递归 test=[i for i in range(1,42)] print(test) print(josephus(test,3))#测试 ``` ![图片说明](https://img-ask.csdn.net/upload/201912/26/1577355089_28075.png) 最后的返回值为none 尝试解决方案,将函数的返回值重新复制给一个新列表,返回新列表,不能解决问题 在函数中加入代码测试发现,当达到返回条件时,返回值不为空 求帮助,多谢各位了
ping-pong sequence 递归如何优化 python
![图片说明](https://img-ask.csdn.net/upload/201910/20/1571558706_354179.png) 测试数据小一点的话可以出结果,但稍微大一点就不行了,小白求问可以怎么优化程序鸭 ``` ```def num_sevens(n): if(n//10==0): if(n==7): return 1 else: return 0 else: if(n%10==7): return 1+num_sevens(n//10) else: return num_sevens(n//10) def pingpong(n): if n == 1: return 1 elif n == 2: return 2 elif (n - 1) % 7 == 0 or num_sevens(n - 1): return pingpong(n - 2) else: return pingpong(n-1)*2-pingpong(n-2) ```
python 无法停止递归 求解啊
def dfs1(x,y): show[x][y]='.' for i in f: for j in f: nx=x+i ny=y+j if(nx>=0 and ny>=0 and nx<10 and ny<10 and ans[nx][ny]==0 and(i!=0 or j!=0)and(i==0 or j==0)): dfs1(nx,ny) if(nx>=0 and ny>=0 and nx<10 and ny<10 and ans[nx][ny]!=0 and mine[nx][ny]!=1 and(i!=0 or j!=0)and(i==0 or j==0)): show[nx][ny]=ans[nx][ny] return 0 return 0
如何用递归计算Loga(n) java或者python
如何在java或者python中不用math库而用递归写出精确度高的计算loga(n)的方法? 以a为底 > def recursivelog(n, x, b, l=None, u=None): assert( n >= 0) assert( x >= 1) assert( isinstance(b, int) ) assert( b >= 2 ) float(x) if(x<b): return 0 else: return 1+ recursivelog(n-1,x/b,b) 我自己的程序精度太差而且返回的都是整数
python:用递归方法编写二分法查找函数 程序报错
在python上用递归方法编写二分法查找函数 程序如下: ``` def find_loc(x,arr): end = len(arr)-1 mid = end//2 if len(arr) < 1: x_loc = 0 print("None") elif len(arr) > 1: if x < arr[mid]: b = arr[:mid] x_loc = find_loc(x,b) elif x > arr[mid]: b = arr[mid:] x_loc = mid + find_loc(x,b) elif x == arr[mid]: x_loc = mid+1 return x_loc a=[1,2,3,4,5,6,7] print(find_loc(1,a)) ``` 报错如下: Traceback (most recent call last): File "binary_search2.py", line 19, in <module> print(find_loc(1,a)) File "binary_search2.py", line 10, in find_loc x_loc = find_loc(x,b) File "binary_search2.py", line 10, in find_loc x_loc = find_loc(x,b) File "binary_search2.py", line 16, in find_loc return x_loc UnboundLocalError: local variable 'x_loc' referenced before assignment 求助:为什么会出现local variable 'x_loc' referenced before assignment
关于递归调用的问题,有一个疑惑,求大佬帮忙解答
图片上的这段代码,第5行会执行递归吗?还是说必须return后的语句才会执行递归? 根据运行结果来看,到第六行才执行的递归,是不是意味着第五行的赋值不执行递归?为什么呢![图片说明](https://img-ask.csdn.net/upload/201704/01/1491039904_930043.png)
python在递归时使用列表切片【:-1】,回归到上一层时原函数没变,描述的不太清,请看解释,希望有人解惑。
在学回溯法的例子,集合求子集,遇到的问题。下面是代码: 其中加了很多print是为了更好的看程序是怎么一步步运行的。 ``` #-*-coding:utf-8-*- #求子集 #使用回溯法。对每个数据进行显示或不显示(1or0)的选择 def mybacktrack(a,k,data): print "1",a,k if is_a_solution(a,k,data): process_solution(a,k,data)#得到解 print "2",a,k else: print "3",a,k k+=1 #搜索深度+1 for i in range(2): print "4",a,k a.append(i) mybacktrack(a,k,data) #递归 print "5",a,k # a=a[:-1] #使用这一句递归后a没有变 a=a[:k-1]#改成这样就没问题 print "6",a,k def is_a_solution(a,k,data): #判断是否是合理的解 return len(a)==len(data) def process_solution(a,k,data): print "{", for j in range(len(a)): if a[j]: print data[j], print "}" data=[1,2,3,4] #集合 k=0 #初始搜索深度 a=[] #初始搜索根 mybacktrack(a,k,data) ```
为什么下面两段python代码运行速度大不相同?
//python3.5 ``` def fact(n): if(n<=1): return 1; else: s=1; for i in range(1,n+1,1): s*=i; return s; def fact_length(n): print(n,"!(length)=",len(str(fact(n))),'\n'); ``` 没有写递归,python中递归层数有限制,不便于后面测试! 切回正题:各位大神我用上面两段代码测试时发现,当测试数据为10000以上时,第二个函数的执行速度明显快于第一段,表示不解。第二段函数的中间还套着第一段函数,运行速度为啥比第一段还快? 猜测:是不是慢在输出上?当数据量大了输出很费时???我的猜测对吗? 求大神告知,先谢过了!
Python tkinter图形界面BUTTON事件控制和编辑框返回值出现异常
使用win7的Python3.73的IDLE界面编写图形界面程序,在编码过程中发现,如果定义一个主窗口后再定义一个局部窗口会导致后面的窗口的编辑框设置和取值异常。具体问题用一个测试程序来说明如下: ``` import tkinter as tk from tkinter import messagebox def newwin(title='test',geometry='300x300'): def ShowMessage(): tk.messagebox.showinfo(input.get()) window = tk.Tk() window.title(title) window.geometry(geometry) input = tk.StringVar() input.set('请输入任意内容!') tk.Label(window, text='请输入任意内容: ').place(x=10, y= 10) entry_new_name = tk.Entry(window, textvariable=input) entry_new_name.place(x=150, y=10) btn_show = tk.Button(window, text='显示输入', command=ShowMessage) btn_show.place(x=80, y=90) btn_newwin = tk.Button(window, text='新弹窗', command=newwin) btn_newwin.place(x=150, y=90) btn_exit = tk.Button(window, text='退出', command=exit) btn_exit.place(x=220, y=90) return window root = newwin() root.mainloop() ``` 上述代码执行后,显示一个窗口,内有:一个输入框,三个按钮,一个是显示输入框内容,一个是再次新建一个同样的窗口,一个是系统退出。执行后第一次打开窗口时相关功能正常,但当选择“新弹窗”弹出一个新的窗口后,编辑框的初始内容没有显示,且输入内容后,在新窗口显示编辑框的内容取得的值为变量初始化的值,没有取得新的输入。 关于以上代码,有如下几个问题: 1、为什么新弹窗中编辑框的显示和变化没有和变量关联起来? 2、上述代码中btn_newwin按钮定义如果改为:“btn_newwin = tk.Button(window, text='新弹窗', command=newwin)”中,如果newwin使用带实参格式,则会导致一启动就会不停新建窗口,导致递归调用过深异常出现才终止?这是为什么 ? 3、该代码存储到文件后,使用dos命令行方式执行文件无任何反应。是图形界面的程序无法在非图形界面解释器下执行吗?该怎么解决? 非常抱歉,本人没有C币,不知可有哪位大拿免费指教?谢谢!
这个递归怎么拯救o(╥﹏╥)o
def diguiji(n): if n==1: return 1 else: return n*diguiji(n-1) def diguihe(n): if n==1: return diguiji(1) else: return diguiji(n)+diguihe(diguiji(n-1)) n=int(input()) diguihe(n) 这个递归该怎么拯救
用python计算括号匹配序列最长公共子序列的问题?
网易的笔试题,代码已经写好,但一直无法100%通过测试,找不到问题所在,想请各位大神不吝赐教。 ``` ''' 一个合法的括号匹配序列被定义为: 1. 空串""是合法的括号序列 2. 如果"X"和"Y"是合法的序列,那么"XY"也是一个合法的括号序列 3. 如果"X"是一个合法的序列,那么"(X)"也是一个合法的括号序列 4. 每个合法的括号序列都可以由上面的规则生成 例如"", "()", "()()()", "(()())", "(((()))"都是合法的。 从一个字符串S中移除零个或者多个字符得到的序列称为S的子序列。 例如"abcde"的子序列有"abe","","abcde"等。 定义LCS(S,T)为字符串S和字符串T最长公共子序列的长度,即一个最长的序列W既是S的子序列也是T的子序列的长度。 小易给出一个合法的括号匹配序列s,小易希望你能找出具有以下特征的括号序列t: 1、t跟s不同,但是长度相同 2、t也是一个合法的括号匹配序列 3、LCS(s, t)是满足上述两个条件的t中最大的 因为这样的t可能存在多个,小易需要你计算出满足条件的t有多少个。 如样例所示: s = "(())()",跟字符串s长度相同的合法括号匹配序列有: "()(())", "((()))", "()()()", "(()())",其中LCS( "(())()", "()(())" )为4,其他三个都为5,所以输出3. 输入描述: 输入包括字符串s(4 ≤ |s| ≤ 50,|s|表示字符串长度),保证s是一个合法的括号匹配序列。 输出描述: 输出一个正整数,满足条件的t的个数。 输入例子1: (())() 输出例子1: 3 ''' ''' 思路:首先利用递归生成与目标序列长度相同的括号匹配序列,然后分别计算目标序列和生成序列的最长公共子序列。 计算方法:先求出目标序列和生成序列长度减1的所有子序列列表,比较两列表是否有公共子序列,若有,则输出子序列的长度,若无,则递归生成 目标序列和生成序列长度减2的所有子序列列表,继续比较,以此类推,直至找到公共子序列 ''' string = input() # 输入括号匹配序列 length = len(string) # 计算序列长度 def generate_string(l): # 利用递归生成与参数长度相同的序列 if l == 2: return ['()'] else: str_l = [i for i in map(lambda x: '()' + x, generate_string(l-2))] str_m = [i for i in map(lambda x: '(' + x + ')', generate_string(l-2))] str_r = [i for i in map(lambda x: x + '()', generate_string(l-2))] str_l.extend(str_m) str_l.extend(str_r) str_l = list(set(str_l)) return str_l g_strings = generate_string(length) # 根据已知的目标长度生成符合条件的序列列表 g_strings.remove(string) # 从生成的序列列表中移除目标序列 def get_children(s): # 得到比参数序列长度小1的子序列 children = [] for i in range(len(s)): children.append(s[:i] + s[i+1:]) children = list(set(children)) return children def lcs(str_as, str_bs): # 计算两个参数序列列表中最长公共子序列的长度 for each_a in str_as: # 若str_as和str_bs间有公共序列,则返回该序列的长度 if each_a in str_bs: return len(each_a) # 若str_as和str_bs间无公共序列 str_as_children = [] str_bs_children = [] for each_a in str_as: # 计算str_as序列列表中所有序列长度减1的子序列列表 str_as_children.extend(get_children(each_a)) for each_b in str_bs: # 计算str_bs序列列表中所有序列长度减1的子序列列表 str_bs_children.extend(get_children(each_b)) str_as_children = list(set(str_as_children)) # 删除重复项 str_bs_children = list(set(str_bs_children)) return lcs(str_as_children, str_bs_children) # 递归计算两个参数序列列表中最长公共子序列的长度 results = [] for each_str in g_strings: # 计算所有生成序列和目标序列的最长公共子序列的长度 results.append(lcs([each_str], [string])) max_lcs = max(results) # 计算需要题目要求输出的结果 count = 0 for each in results: if each == max_lcs: count += 1 print(count) ''' 此程序在测试'((())())'时结果不正确 正确的答案是9 此程序得到的答案是8 ''' ```
Python tkinter图形界面BUTTON时间控制和编辑框返回值出现异常?
使用win7的Python3.73的IDLE界面编写图形界面程序,在编码过程中发现,如果定义一个主窗口后再定义一个局部窗口会导致后面的窗口的编辑框设置和取值异常。具体问题用一个测试程序来说明如下: ``` import tkinter as tk from tkinter import messagebox def newwin(title='test',geometry='300x300'): def ShowMessage(): tk.messagebox.showinfo(input.get()) window = tk.Tk() window.title(title) window.geometry(geometry) input = tk.StringVar() input.set('请输入任意内容!') tk.Label(window, text='请输入任意内容: ').place(x=10, y= 10) entry_new_name = tk.Entry(window, textvariable=input) entry_new_name.place(x=150, y=10) btn_show = tk.Button(window, text='显示输入', command=ShowMessage) btn_show.place(x=80, y=90) btn_newwin = tk.Button(window, text='新弹窗', command=newwin) btn_newwin.place(x=150, y=90) btn_exit = tk.Button(window, text='退出', command=exit) btn_exit.place(x=220, y=90) return window root = newwin() root.mainloop() ``` 上述代码执行后,显示一个窗口,内有:一个输入框,三个按钮,一个是显示输入框内容,一个是再次新建一个同样的窗口,一个是系统退出。执行后第一次打开窗口时相关功能正常,初始界面如下(编辑框有初始文字显示): ![图片说明](https://img-ask.csdn.net/upload/201906/03/1559522244_111043.jpg) 编辑框输入内容后点击显示输入按钮后的窗口: ![图片说明](https://img-ask.csdn.net/upload/201906/03/1559522335_568410.jpg) 但当选择“新弹窗”弹出一个新的窗口后,编辑框的初始内容没有显示: ![图片说明](https://img-ask.csdn.net/upload/201906/03/1559522415_427087.jpg) 且输入内容后,在新窗口显示编辑框的内容取得的值为变量初始化的值,没有取得新的输入。新弹窗编辑框输入内容后点击显示输入按钮后的窗口: ![图片说明](https://img-ask.csdn.net/upload/201906/03/1559522568_856.jpg) 关于以上代码,有如下几个问题: 1、为什么新弹窗中编辑框的显示和变化没有和变量关联起来? 2、上述代码中btn_newwin按钮定义如果改为:“btn_newwin = tk.Button(window, text='新弹窗', command=newwin)”中,如果newwin使用带实参格式,则会导致一启动就会不停新建窗口,导致递归调用过深异常出现才终止?这是为什么 ? 3、该代码存储到文件后,使用dos命令行方式执行文件无任何反应。是图形界面的程序无法在非图形界面解释器下执行吗?该怎么解决? 非常抱歉,本人没有C币,不知可有哪位大拿免费指教?谢谢!
python环境,利用selenium爬取京东手机“每种套餐”价格问题
本人零基础,大龄搬砖男自学python,所以请忽略各种拼写,命名等小细节。而且目前还不会正则表达式,所以用了xpath的方法,循环点击各套餐,然后读取价格标签的text来获取价格。但是因为不同的产品,套餐种类可能不同,例如有点手机品牌有颜色、容量、运行商,版本等套餐。为了考虑多产品的兼容性,折磨了半天时间,想到用递归的思路进行实现 目前,遇到一个问题,就是递归的终止条件问题,目前总是卡在最后一个套餐,没有读取完就结束了。请前辈支招: ``` from bs4 import BeautifulSoup from selenium import webdriver driver = webdriver.Chrome() driver.get("https://item.jd.com/100000287115.html#crumb-wrap") driver.maximize_window() html = driver.page_source soup=BeautifulSoup(html,'lxml') select = soup.find("div",id="choose-attrs") #查找选择框 selectstyle = select.find_all("div",class_="li p-choose") #选择的类型有多少种,比如颜色,型号,容量等 selectstyletotal = len(selectstyle) #大类数量 print(selectstyletotal) def sonnum(n): #n为大类编号从1开始 '''求当前大类下面有多少个型号''' selectsun = selectstyle[n-1].find_all("div", class_="item") countsun = len(selectsun) # 查找当前类下,有多少个型号 return countsun for i in range(1,selectstyletotal+1): print("当前为第{}类,改类有{}个型号".format(i,sonnum(i))) def showprice(n): '''递归选择,并显示价格''' if n == 1: for a in range(1, sonnum(n) + 1): driver.find_element_by_xpath( '//*[@id="choose-attr-' + str(n) + '"]/div[2]/div[' + str(a) + ']').click() select_txt = driver.find_element_by_xpath( '//*[@id="choose-attr-' + str(n) + '"]/div[2]/div[' + str(a) + ']').text price = driver.find_element_by_xpath( "/html/body/div[8]/div/div[2]/div[4]/div/div[1]/div[2]/span[1]/span[2]").text # price_data.append(select_txt+"价格为"+price) print("选中{},价格为{}".format(select_txt, price)) for i in range(1,sonnum(n)+1): try: driver.find_element_by_xpath( '//*[@id="choose-attr-' + str(n) + '"]/div[2]/div[' + str(i) + ']').click() select_txt = driver.find_element_by_xpath( '//*[@id="choose-attr-' + str(n) + '"]/div[2]/div[' + str(i) + ']').text print("选中{}".format(select_txt)) showprice(n-1) price = driver.find_element_by_xpath( "/html/body/div[8]/div/div[2]/div[4]/div/div[1]/div[2]/span[1]/span[2]").text except: continue print("价格为{}".format(price)) showprice(selectstyletotal) ``` 运行结果如下:始终有1个套餐未点击完毕,大神支招啊, ''' ![图片说明](https://img-ask.csdn.net/upload/201811/04/1541340185_122754.png) 谢谢?
Kafka实战(三) - Kafka的自我修养与定位
Apache Kafka是消息引擎系统,也是一个分布式流处理平台(Distributed Streaming Platform) Kafka是LinkedIn公司内部孵化的项目。LinkedIn最开始有强烈的数据强实时处理方面的需求,其内部的诸多子系统要执行多种类型的数据处理与分析,主要包括业务系统和应用程序性能监控,以及用户行为数据处理等。 遇到的主要问题: 数据正确性不足 数据的收集主要...
volatile 与 synchronize 详解
Java支持多个线程同时访问一个对象或者对象的成员变量,由于每个线程可以拥有这个变量的拷贝(虽然对象以及成员变量分配的内存是在共享内存中的,但是每个执行的线程还是可以拥有一份拷贝,这样做的目的是加速程序的执行,这是现代多核处理器的一个显著特性),所以程序在执行过程中,一个线程看到的变量并不一定是最新的。 volatile 关键字volatile可以用来修饰字段(成员变量),就是告知程序任何对该变量...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
有哪些让程序员受益终生的建议
从业五年多,辗转两个大厂,出过书,创过业,从技术小白成长为基层管理,联合几个业内大牛回答下这个问题,希望能帮到大家,记得帮我点赞哦。 敲黑板!!!读了这篇文章,你将知道如何才能进大厂,如何实现财务自由,如何在工作中游刃有余,这篇文章很长,但绝对是精品,记得帮我点赞哦!!!! 一腔肺腑之言,能看进去多少,就看你自己了!!! 目录: 在校生篇: 为什么要尽量进大厂? 如何选择语言及方...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
GitHub开源史上最大规模中文知识图谱
近日,一直致力于知识图谱研究的 OwnThink 平台在 Github 上开源了史上最大规模 1.4 亿中文知识图谱,其中数据是以(实体、属性、值),(实体、关系、实体)混合的形式组织,数据格式采用 csv 格式。 到目前为止,OwnThink 项目开放了对话机器人、知识图谱、语义理解、自然语言处理工具。知识图谱融合了两千五百多万的实体,拥有亿级别的实体属性关系,机器人采用了基于知识图谱的语义感...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
微信支付崩溃了,但是更让马化腾和张小龙崩溃的竟然是……
loonggg读完需要3分钟速读仅需1分钟事件还得还原到昨天晚上,10 月 29 日晚上 20:09-21:14 之间,微信支付发生故障,全国微信支付交易无法正常进行。然...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
YouTube排名第一的励志英文演讲《Dream(梦想)》
Idon’t know what that dream is that you have, I don't care how disappointing it might have been as you've been working toward that dream,but that dream that you’re holding in your mind, that it’s po...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
相关热词 c#委托 逆变与协变 c#新建一个项目 c#获取dll文件路径 c#子窗体调用主窗体事件 c# 拷贝目录 c# 调用cef 网页填表c#源代码 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天
立即提问