下面是我寫的python,我編程比較差。。。求更好的方法
import itertools
def main():
list1 = ['A', 'B', 'C', 'D','E']
list2 = [1,2,3,4]
result = itertools.permutations(list1, 4)
newlist = []
for item in result:
newlist.append(list(item))
newnewlist = []
for item in newlist:
item[0] = [list2[0],item[0]]
item[1] = [list2[1], item[1]]
item[2] = [list2[2], item[2]]
item[3] = [list2[3], item[3]]
for item in newlist:
print(item)
if __name__ == '__main__':
main()#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
# 程序主入口
if __name__ == "__main__":
"""模仿瀏覽器,請求web的html信息"""
url = 'https://www.shixiseng.com/interns/c-110100_st-intern_?k=Python'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.12 Safari/537.36'
}
request = requests.get(url, headers=headers)
html_text = request.text
print(html_text)
如果你需要分析拿到的html的話引入from bs4 import BeautifulSoup處理。
希望能幫到你……
https://weibo.com/aj/mblog/fs...
沒錯的話,獲取到的數(shù)據(jù)應該是這條。最后多一句,對象要找對,不然容易耽誤了一生。
如果沒有@socketio.on('request_for_response')這個裝飾器,你的程序就不完整。
建議看看看看我的這篇文章——基于 flask-socketio 的 CRUD 操作初探
你這代碼從頭到尾都不對啊。你問問題的時候能把代碼整理好嗎?使用的 python 版本也沒說明
我假設你使用的是 python2,你想從 subprocess 中讀到標準輸出,正確的寫法是:
a = subprocess.Popen('ls -l', shell=True, stdout=subprocess.PIPE)
b = a.stdout.read().replace('\n', '<br>')
如果是 python3,a.stdout.read() 得到的是 bytes,所以可以:
b = a.stdout.read().decode().replace('\n', '<br>')這樣做就好了:
b_list = list(map(lambda x: x + 1, a_list))
在 Python 3+, 很多迭代過程在迭代時,會返回迭代對象自身, 這樣不用保存完整的列表,多數(shù)情況下可以節(jié)省內(nèi)存的提高速度.
>>> b_list = map(lambda x: x + 1, a_list)
>>> print(b_list)
<map object at 0x7ff89514cac8>
map返回的是迭代對象, 這個迭代器只能迭代一次(list(b_list)),迭代完成就完了. 第二次list(b_list)執(zhí)行返回的是空. 但如果你把結果做為list放到內(nèi)存里, 就沒有這個問題了,只是如果list很大的話,內(nèi)存占用多,效率會下降,好的做是把這些操作串在一起, 一次完成.
'''""I""'''
服務端做了客戶端辨別,瀏覽器請求的時候會帶上user-agent,模擬爬蟲的時候,你也模擬一下user-agent即可
我理解的以及一個思路:
problem = [
['多選題', '多選題', '多選題', '多選題', '多選題文字', '多選題文字', '多選題文字', '單選題'],
['1', '1', '1', '1', '2', '2', '文字', '3'],
[0.0, 1.0, 1.0, 0.0, 0.0, 1.0, '文字2', 2.0],
[1.0, 1.0, 1.0, 0.0, 0.0, 1.0, '文字3', 3.0],
]
rule = problem[0]
nums = problem[1]
answers = problem[2:]
def generate_answer_string(answer):
answer_string = ''
index = 0
rule_length = len(rule)
while index < rule_length:
question_type = rule[index]
question_num = nums[index]
# 添加題號 + '$'
answer_string += question_num + '$'
# 多選題
if question_type == '多選題':
for i in range(4):
if answer[index] == 1.0:
answer_string += str(i + 1) + '|'
index += 1
answer_string = answer_string.rstrip('|')
# 多選文字題
elif question_type == '多選題文字':
for i in range(2):
if answer[index] == 1.0:
answer_string += str(i + 1)
index += 1
answer_string += '^' + answer[index]
index += 1
# 單選題
elif question_type == '單選題':
answer_string += str(int(answer[index]))
index += 1
# 添加結尾分割符 '}'
answer_string += '}'
return answer_string
for answer in answers:
# 去除最后一個 '}'
answer_string = generate_answer_string(answer).rstrip('}')
print(answer_string)1.onload 就是圖片加載完成之后,要做的操作。
2.瀏覽器不需要知道圖片有沒有加載完,需要用到圖片的時候,自然會去加載。至于是從緩存中加載,還是從遠端下載,這是瀏覽器要做的事情。而圖片預加載就是在圖片用到之前,先讓瀏覽器下載到緩存中,這樣用到的時候就不需要下載了。
3.通過js代碼,肯定是不知道圖片緩存在哪里的,因為這個是瀏覽器內(nèi)部做的事情。一般來說瀏覽器會做非常非常多的事情,包括渲染、下載、緩存等等。js代碼所做的事情是在瀏覽器已經(jīng)實現(xiàn)的功能基礎上,再做一點網(wǎng)站功能業(yè)務上的事情。至于這個功能業(yè)務用什么語言實現(xiàn)?其實瀏覽器并不在乎,flash、js甚至是其他什么script都行,對瀏覽器來說,不過是加一個執(zhí)行環(huán)境而已。
產(chǎn)生無線循環(huán)的根本原因是第一次執(zhí)行后a=2,while進入死循環(huán),你可以試著改為,這時候會一直打印a的值2
while a != 1:
print(a)#如果不加這個print就會無限循環(huán),為什么
#coding:utf-8
這是我對你的代碼改了一些,加了一些注釋,你看一下
def collatz(number):
if number % 2 == 0: #第一次,4%2 = 0,進入下一行,第2,3,4...次,2%2 = 0,進入下一行
a = number // 2 #第一次,,a=2,第2,3,4...次,a=1,執(zhí)行13行 print '單個while循環(huán)中,執(zhí)行collatz(2)的結完畢'
print(a)
else:
a = 3 * number + 1
print(a)
while a != 1: #進入死循環(huán),
collatz(a) #進入collatz(2),第2次
print(a) # 如果不加這個print就會無限循環(huán),為什么
print '單個while循環(huán)中,執(zhí)行collatz(2)的結完畢'
return a
print(collatz(4))是不是需要commit提交一下哦~
Promise
之前直接開啟loading狀態(tài)
resolve
后關閉loading
監(jiān)控用戶點擊另存為不是
oncontextmenu嗎
你這已經(jīng)是線性時間復雜度了,再低的話除非是對數(shù)時間
可以直接獲得
In [1]: print.__class__
Out[1]: builtin_function_or_method不管是添加還是刪除,都進行一下數(shù)據(jù)是否存在的判斷。
仔細查看error message就可以發(fā)現(xiàn)問題的。
所有attributes的名字,如果前面是兩個下劃線開頭的_,python解釋器會它實際的名字變成_<Class Name>__<Attributes Name>。
在QBDownloader類中,__flag_encoding變成了_QBDownloader__flag_encoding.
在QBDownloaderDayPrice類中,__flag_encoding變成了_QBDownloaderDayPrice__flag_encoding,saveto_csv()函數(shù)本身訪問的_QBDownloader__flag_encoding被_QBDownloaderDayPrice__flag_encoding替換。所以就找不到_QBDownloader__flag_encoding了
headless chrome不支持flash plugin。詳情見:https://bugs.chromium.org/p/c...
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產(chǎn)業(yè)鏈。利用北京大學優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術, 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。