我试图在Python中重现我在一本书中找到的两个例子(最初是用Java编写的).
这两个函数检查字符串是否包含重复的字符.第一个函数使用integer(checker)作为位向量,而第二个函数只使用一个布尔列表.我期望使用带有位的功能有更好的性能,但实际上它表现更差.
这是为什么?从Java翻译到Python时,我写错了吗?
注意:为简单起见,我们只使用小写字母(a到z),尤其是位向量函数.
import sys
import timeit
def is_unique_chars_bit(my_str):
checker = 0
for char in my_str:
val = ord(char) - ord('a')
if ((checker & (1 << val)) > 0):
return False
checker |= (1 << val)
return True
def is_unique_chars_list(my_str):
if len(my_str) > 128:
# Supposing we use ASCII, which only has 128 chars
return False
char_list = [False] * 128
for char in my_str:
val = ord(char)
if char_list[val]:
return False …Run Code Online (Sandbox Code Playgroud) 我正在编写一个应用程序,其中大部分状态存储在客户端。状态在某种程度上是私人信息,因此我想将其保留在客户端。有一些严格的政策禁止此信息到达我的服务器。到目前为止我一直在使用它localStorage,这是一个完美的解决方案。
不幸的是,Safari 在 localStorages 和 iframe 方面存在一些问题(1、2、3 )。如果我使用cookie,浏览器会将它们发送到服务器,这是不可接受的。所有存储的数据均使用 javascript 进行管理,不使用 http Set-Cookie 标头。
基本用例如下:应用程序在域 A 中有一个“主”页面,用户可以在其中更改其设置,并且在其他域 (B) 中有一个页面,该页面有一个指向某个特殊页面的 iframe在域A中,使用postMessage和onmessage来交换一些信息。域A的母版页和域B中嵌入的iframe必须共享一些存储才能运行。
有这方面的想法吗?
编辑1
一种想法如下:在 iframe 和“主”页面上向用户询问密码,并使用该密码来加密私人信息。加密的私人信息可以存储在cookie中,因为我的服务器没有用户密码。这是迄今为止最好的解决方案,但对于用户来说并不舒服。
可选验证器允许空值和该值不存在的情况(来自文档):
类 wtforms.validators.Optional(strip_whitespace=True)
允许空输入并停止验证链继续。
如果输入为空,还会从字段中删除先前的错误(例如处理错误)。
我在一个字段上有一些额外的验证器,我希望即使输入是空字符串,这些验证器也能运行。如果输入是空字符串,内置Optional验证器将跳过其余验证器。是否有内置或任何其他方式来实现这一目标?
我正在使用此表单来验证PUT请求。假设我有一个用户实体,其中usernames 作为 ID,middlenames 作为可选字段。那么字段的验证器将类似于:
class UserUpdateForm(Form):
username = fields.StringField('username', [
validators.Optional(),
validators.Length(min=5, max=500)
])
middlename = fields.StringField('middlename', [
validators.Optional()
])
Run Code Online (Sandbox Code Playgroud)
因此,我将允许PUT没有username或middlename参数的请求,并且这些请求将使字段保持不变。但是,当参数存在并且是空字符串时,我希望username字段验证由于Length验证器而失败,但我允许将该middlename字段设置为空字符串。
从另一个角度来看:我想区分不存在的参数和空字符串参数。
function titleCase(str) {
var one = str.split('');
for(var i = 0;i>one.length;i++) {
one[i] = one[i].charAt(0).toUpperCase() + one[i].slice(1);
}
var final = one.join("");
return final;
}
titleCase("I'm a little tea pot"); // yields "I'm a little tea pot", unchanged
Run Code Online (Sandbox Code Playgroud)
你能解释一下为什么它不起作用吗?我应该把这个字符串中每个单词的首字母大写.
我尝试将变量的值valuem从0增加到10,如果值为valuem10,则应该减小,直到值为0,然后再次增加到10,依此类推.
例如:0 1 2 3 4 5 6 7 8 9 10 9 8 7 6 5 4 3 2 1 0 1 2 ...
什么是最简单,最有效的方法呢?
var valuem = 0;
$('#number').text(valuem);
function count() {
valuem++;
$('#number').text(valuem);
if (valuem == 10) {
valuem--;
$('#number').text(valuem);
}
}
setInterval(count, 1000);
Run Code Online (Sandbox Code Playgroud) 我正在使用 Node js 渲染一个 React 类......
var express = require('express');
var router = express.Router();
var React = require('react');
var reactDom = require('react-dom/server');
var App = React.createFactory(require('../components/index'));
router.get('/', function(req,res) {
var reactHtml = reactDom.renderToString(App({}));
res.render('../../tutorHub/views/index.jade', {reactOutput: reactHtml});
});
module.exports = router;
Run Code Online (Sandbox Code Playgroud)
页面渲染得很好,但我添加的函数没有被调用。例如,在我的App班级...
class App extends React.Component {
constructor(props) {
super(props);
}
getClass() {
return "a_class";
}
render() {
return (
<div className={this.getClass}></div>
);
}
}
module.exports = App;
Run Code Online (Sandbox Code Playgroud)
该getClass函数未被调用。相反,类名变成了代码
class = getClass() {
return "a_class";
}
Run Code Online (Sandbox Code Playgroud)
而不是简单地 …
javascript ×4
python ×2
arraylist ×1
cookies ×1
for-loop ×1
iframe ×1
loops ×1
node.js ×1
performance ×1
reactjs ×1
validation ×1
web ×1
while-loop ×1
wtforms ×1