在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/ Python問答
愛礙唉 回答
>>> p = re.compile('\({2}(.*?)\){2}')
>>> p.findall(teststr)
['22222222', '33333333', 'iiiiiii']
誮惜顏 回答

python解釋器一般在/usr/bin/下面,你的路徑有問題吧。

眼雜 回答

https://stackoverflow.com/que...


終于閑下來了,完善一下答案。

ES 一直以來在堅持的一個原則便是完全避免 breaking changes,畢竟用戶的瀏覽器版本不是編程人員所能干涉的。如果用戶的升級導(dǎo)致某些網(wǎng)站的舊代碼失效了,組委會肯定會被噴死。這點和其他語言很不一樣。因此 Compatibility 是首要原因,新版 ES 必須完全兼容舊版 ES。

Readability 和 Generality 其實都是產(chǎn)生的附加效果。Generality 其實是個偽需求,空 Generator 都可以被有 0 條或 1 條 yield 語句的 Generator 替代,而且后者可讀性比前者更好。Readability 這點 ES 的確實比 Python 的要優(yōu)秀,至少只閱讀函數(shù)頭我便可以知道這是個 Generator 還是 Normal Function,但優(yōu)勢只有在讀長代碼時才明顯。僅憑這些不足以 diss Python 的設(shè)計。

而至于 Python 當(dāng)年為什么沿用了 def,其實沒有過多什么“意義”,僅僅是出于 Guido 的直覺而已:-)(參考 PEP 255)。

替身 回答
console.log(str.match(/[\u0000-\u00ff]/g))     //半角   
console.log(str.match(/[\u4e00-\u9fa5]/g))     //中文   
console.log(str.match(/[\uff00-\uffff]/g))     //全角   
涼心人 回答

Accept值設(shè)置的不對

headers = {
    'Accept': 'application/json, text/javascript, */*; q=0.01'
}
祈歡 回答

正確的 ignore 文件名應(yīng)該是 .gitignore 而不是 java.gitignore

# 因為這個地方涉及到了python中的元類,而我元類理解的不到家
# 所以就不詳細(xì)解釋了,只給樓主說下大致流程吧
# 免得元類那塊說錯了,再誤導(dǎo)樓主

# 因為樓主沒有寫,我就認(rèn)為樓主使用的插件是flask-wtf了
# 直接看Form的父類 flask_wtf.form.FlaskForm 和 wtforms.form就可以了

# 在 flask_wtf.form.FlaskForm 中定義了一個 Meta 內(nèi)部類
# 在這個內(nèi)部類中有如下方法,就是在這個方法中獲取的表單中的值的
def wrap_formdata(self, form, formdata):
  if formdata is _Auto:
    if _is_submitted():
      if request.files:
        return CombinedMultiDict((
          request.files, request.form
        ))
      elif request.form:
        return request.form
      elif request.get_json():
        return ImmutableMultiDict(request.get_json())

    return None

  return formdata

# 然后在wtforms.form.BaseForm中通過如下方法,為自定義的每個filed賦值
def process(self, formdata=None, obj=None, data=None, **kwargs):
  # 這個就是form表單中的內(nèi)容了
  formdata = self.meta.wrap_formdata(self, formdata)

  if data is not None:
    kwargs = dict(data, **kwargs)

  # 這里通過form表單中的值,為每個自定義filed賦值
  for name, field, in iteritems(self._fields):
    if obj is not None and hasattr(obj, name):
      field.process(formdata, getattr(obj, name))
    elif name in kwargs:
      field.process(formdata, kwargs[name])
    else:
      field.process(formdata)
# 注:
# 如下操作確實是會創(chuàng)建一個新的對象,但是因為這個新的對象中的 __init__ 方法
# 是會對這個對象進(jìn)行一定初始化的,而這個初始化的過程中會通過如上方式
# 獲取form表單中的值,并賦值給每個filed
# 所以才會出現(xiàn) POST 請求時 form.validate_on_submit() 為 True
form = NameForm()
有你在 回答

自問自答下。

我提這個問題的需求是使用python調(diào)用外部的第三方程序,類似shell腳本一樣。
如果是正常的多進(jìn)程編程協(xié)作完成一個任務(wù),那么當(dāng)然最好的方式是兩個進(jìn)程協(xié)作,即使用IPC的方式使父進(jìn)程傳遞給子進(jìn)程結(jié)束的信息,然后子進(jìn)程自己優(yōu)雅的退出。

而如果使用python調(diào)用外部的第三方命令,將其作為類似shell腳本的方式使用,由于無法修改外部程序的代碼,因此IPC的手段非常有限,僅僅限于向子進(jìn)程發(fā)送信號。

那么該問題的思路就很清晰了,我之前有一次是使用terminate()函數(shù)結(jié)束子進(jìn)程導(dǎo)致了子進(jìn)程無法正常釋放資源(linux系統(tǒng))。通過查詢文檔可知terminate()函數(shù)在linux系統(tǒng)下的行為是向進(jìn)程發(fā)送SIGTERM。那么,問題的原因則是該第三方程序接收到SIGTERM信號后的處理邏輯有問題。

因此,結(jié)束該進(jìn)程最好的方式是使用該第三方程序能夠接受的方式,這通過查閱該第三方程序的文檔可以得到。

比如說,命令行程序?qū)IGINT信號的考慮更完善,因為在終端使用時按Ctrl-C發(fā)送的就是SIGINT信號。因此,對于大部分的第三方程序,發(fā)送SIGINT信號更好:

p.process.signal(signal.SIGINT)    
墨染殤 回答

以我的項目為例——基于 flask 的 CRUD 操作

其中 models.py 里的定義如下(源碼地址:https://github.com/eastossifrage/flask-wtf-crud/blob/basic/app/models.py

class User(db.Model):
    '''Example for crud
    以用戶為例,來展示 CRUD 操作!
    '''
    __tablename__ = 'crud'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), unique=True, index=True)
    email = db.Column(db.String(64), unique=True, index=True)
    status = db.Column(db.Boolean, default=False)
    role = db.Column(db.Boolean, default=False)

    def __repr__(self):
        return '<User %r>' % self.username

根據(jù)你的例子,你的 UserRole 兩個類中,前者沒有定義 __repr__(self),而后者定義了 __repr__(self) 類,所以造成你的顯示結(jié)果出現(xiàn)了不同的情況。

再者,建議看看資料,定義類的時候,注意一下 __repr__(self)__str__(self) 兩個屬性。

簡單的說__repr__(self)是面向程序員的,而__str__(self)是面向用戶的。

最后,送你個福利http://blog.csdn.net/luckytanggu/article/details/53649156

焚音 回答

DEBUG=False 下,要python manage.py collectstatic

怪痞 回答
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')

# Make the grid
x, y, z = np.meshgrid(np.array([1]),
                      np.array([1]),
                      np.array([1]))   #起點(1, 1, 1)

# Make the direction data for the arrows
u = np.array([2])
v = np.array([4])
w = np.array([5])    # 方向(2, 4, 5)

ax.quiver(x, y, z, u, v, w, length=1, normalize=True) # 模長1
ax.set_xlim(0, 2)
ax.set_ylim(0, 2)
ax.set_zlim(0, 2)
plt.show()
朽鹿 回答
if int(mstr) == mint:
    print 'same'

你自己已經(jīng)寫出來了啊, mstr不知道類型是什么,如果不能轉(zhuǎn)換成int,會報ValueError,如果不想報異常

try:
    if int(mstr) == mint:
        print 'same'
except ValueError:
    print mstr

還是你的意思是想先判斷類型?

if type(mstr) == type(mint):
    if mstr == mint:
        print 'same'
    else:
        print 'value not same'
else:
    print 'type not same'

還是你既不想先判斷類型,還想報錯,函數(shù)重載?

class myint(int):
    def __eq__(self, other):
        if isinstance(other, int):
            return int(self) == other
        else:
            print 'type not same'
            return False

mint = myint(1)
1 == mint
mstr == mint
貓小柒 回答

出發(fā)點為: 在不可知數(shù) 多查詢條件下,怎么用torndo進(jìn)行查詢
自己研究了一下,用**kwargs方式解決了,

# python新手,代碼寫得不好,見笑!
 
import my_torndb as torndb # 用的py3,修改了torndb的代碼
 
conn = torndb.Connection('127.0.0.1', 'test', user='root', password='123456')
 
def get_where_template(**kwargs):
    where_template = ''
    if len(kwargs) > 0:
        where_template += " WHERE " + " AND ".join(map(lambda x: "%s like %%(%s)s" % (x, x), kwargs))
 
    return where_template
 
def get_list(**kwargs):
    sql = 'select * from users ' + get_where_template(**kwargs)
    print(sql)
    row = conn.query(sql, **kwargs)
    for x in row:
        print(x.get('name'))
 
get_list(id='1')
print('-------------------')
get_list(name='%%張%%',  title='%%管理%%',  role_id=1)
單眼皮 回答

幫你測了一下,應(yīng)該是找不到提交按鈕導(dǎo)致的。
你暫時使用回車來解決這個問題吧,原因我也沒搞明白。

...
from selenium.webdriver.common.keys import Keys

def search():
  ...
  # sub = ...
  input.send_keys(u'金融書籍')
  input.send_keys(Keys.ENTER)
  # sub.click()
  ...

補(bǔ)充:記得最后把driver關(guān)掉。

喵小咪 回答

后來發(fā)現(xiàn)是繼承的模版里面寫URL出錯?,已解決

紓惘 回答

telnet協(xié)議首先會建立tcp連接.
tcp連接的三個信號
c->s syn
c<- syn ack
c->s ack
其中第一個信號,如果服務(wù)端沒有監(jiān)聽的話是不會返回syn ack的.所以利用了這個特性來檢測端口是否啟動(在監(jiān)聽)

柚稚 回答

個人理解空間復(fù)雜度為O(1)的歸并排序是指內(nèi)存方面的空間復(fù)雜度,而忽略了堆棧里的O(logN)的空間復(fù)雜度(畢竟不在同一個空間)

//空間復(fù)雜度為O(1)的歸并排序
#include <iostream>
using namespace std;

void reverse_array(int a[], int n) {
    int i = 0;
    int j = n - 1;
    while (i < j) {
        swap(a[i], a[j]);
        ++i;
        --j;
    }
}

void exchange(int a[], int length, int length_left) {
    reverse_array(a, length_left);
    reverse_array(a + length_left, length - length_left);
    reverse_array(a, length);
}

void Merge(int a[], int begin, int mid, int end) {
    while (begin < mid && mid <= end) {
        int step = 0;
        while (begin < mid && a[begin] <= a[mid])
            ++begin;
        while (mid <= end && a[mid] <= a[begin]) {
            ++mid;
            ++step;
        }
        exchange(a + begin, mid - begin, mid - begin - step);
    }
}

void MergeCore(int a[], int left, int right) {
    if (left < right) {
        int mid = (left + right) / 2;
        MergeCore(a, left, mid);
        MergeCore(a, mid + 1, right);
        Merge(a, left, mid + 1, right);
    }
}

void MergeSort(int a[], int length) {
    if (a == NULL || length < 1)
        return;
    MergeCore(a, 0, length - 1);
}

int main() {
    int a[] = {1,0,2,9,3,8,4,7,6,5,11,99,22,88,11};
    int length = sizeof(a) / sizeof(int);
    MergeSort(a, length);
    
    for (int i = 0; i < length; i++)
        cout << a[i] << " ";
    cout << endl;
    return 0;
}