我在我的Win7系统上安装了python 3.6并试图让它在git bash(MINGW64)中工作,到目前为止无济于事.
我已经将安装目录(当然不是.exe)添加到PATH,没有结果.
即使我直接cd
到安装目录,它也看不到它.
$ python
bash: python: command not found
$ echo $PATH
/c/Users/Aerovistae/bin:/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/mingw64/bin:/usr/bin:/c/Users/Aerovistae/bin:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/Program Files/Intel/WiFi/bin:/c/Program Files/Common Files/Intel/WirelessCommon:/cmd:/c/Program Files (x86)/Skype/Phone:/c/Program Files/Intel/WiFi/bin:/c/Program Files/Common Files/Intel/WirelessCommon: C:/Users/Aerovistae/AppData/Local/Programs/Python/Python36-32:/usr/bin/vendor_perl:/usr/bin/core_perl
$ cd C:/Users/Aerovistae/AppData/Local/Programs/Python/Python36-32
$ python
bash: python: command not found
$ python.exe
bash: python.exe: command not found
Run Code Online (Sandbox Code Playgroud)
如果我./python
在该目录中尝试,它只是在我按下回车时进入下一行,并允许我继续键入,因为它由于某种原因期望更多的命令../python
没有被认为是一个完整的命令,它正在等待关闭,好像我有一个开放的报价,但没有关闭报价.无法弄清楚为什么.
我在这里错过了什么?为什么即使我在目录中也不能运行.exe?
旁注,为什么它显示PATH
为具有冒号分隔符而不是分号分隔符?
我已经向我指出,("key" => "value", "key2" => "value2")
它不是一个哈希文字,而是一个列表,它的解释方式取决于你使用它的上下文.
我所知道的其他语言没有像这样的键/值语法,除了作者打算创建一个hash/map/associative-array/dictionary/etc之外,还可以用任何方式解释,所以我发现perl的这个方面有点难以掌握.
perl中有哪些上下文可以使用该语法而不打算创建这样的数据结构,其中它的工作方式是键/值对没有任何作用?
我正在向我的服务器发送电子邮件地址以进行验证。我既不创建资源也不读取资源,因此 POST 和 GET 似乎都不合适。这里有什么意义呢?
我一直在尝试缩短以下代码行:
const priceSet = price.value > 0 ? price.value : 0;
Run Code Online (Sandbox Code Playgroud)
我只是想知道是否有一种更聪明的编写方式。这并不重要,这不是优先事项,我想得太多,但现在我只是想知道。有没有办法用更少的字节写这个,或者没有三进制?
我的 firebase 前端中有以下代码:
document.querySelector('#sign-out').addEventListener('click', () => {
firebase.auth().signOut().then(() => {
document.location = '/sign-in';
}, (error) => {
console.error('Sign Out Error', error);
});
})
Run Code Online (Sandbox Code Playgroud)
这似乎有效。我看到网络请求成功,并且重定向到/sign-in
发生。
但是,当我导航到 时/chatroom
,我被视为已登录。我的 python/flask 后端在端点上具有以下代码:
@app.route("/chatroom")
def chatroom():
if 'idToken' in request.cookies:
id_token = request.cookies.get("idToken")
try:
decoded_token = auth.verify_id_token(id_token)
except:
print("INVALID TOKEN")
return redirect(url_for("sign_in"))
return render_template("chatroom.html")
else:
return redirect(url_for("sign_in"))
Run Code Online (Sandbox Code Playgroud)
/sign-in
Firebase不是在我点击此路径时将用户重定向到,而是验证令牌是否有效,因此即使我已注销,我也可以继续。
我错过了什么?
编辑:
出于调试目的将代码更改为此:
firebase.auth().signOut().then(() => {
firebase.auth().onAuthStateChanged((user) => {
if (user) {
console.log('still signed in');
} else {
console.log('signed out');
}
}); …
Run Code Online (Sandbox Code Playgroud) 创建新集合时,我被告知需要为其创建初始文档。我觉得这有点令人困惑。如果我正在为支持即时消息传递窗口的集合创建一个名为“消息”的集合,为什么我要在用户发送任何消息之前将初始文档放在那里(代表一条消息)?
使用可调用函数,我的目的是只允许登录用户调用它。
export const sendMessage = functions.https.onCall(async (data, context) => {
Run Code Online (Sandbox Code Playgroud)
从context
那里的参数中,我得到了身份验证令牌。但总的来说,我对 Firebase 还很陌生,我不想因为这里的误解而犯下严重错误。如果我注销了,context.auth
就变成空——很容易。但我是否需要确保身份验证令牌是有效的,而不是通过调用“编造”verifyIdToken
的?
如果不是,那么是否只是检查是否context.auth
为 null 足以确保用户已登录?
或者告诉我,如果我误解了我所看到的内容,请查看此链接.
http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.js
看看所有的变量如何像a,b,c一样,所有的代码都被压缩成没有空间?使它完全不可读,难以理解.我看到了很多.如果您查看代码,Google搜索页面的方式相同.
我猜这是一种混淆的策略,我想知道它是如何完成的.显然,当他们编写代码时,他们并没有真正的代码 - 必须通过某种转换来实现.这是怎么做到的?
在我的计算机科学课程中,我们已经被教会在C语言中使用子进程和分支和管道以及文件描述符等,但我们从未在C++中做过类似的事情.
您是否使用相同的库,或者C++是否有自己的一些(希望简化的)系统库?
s = "hello cats"
print(re.search(r"hello",s).groups())
Run Code Online (Sandbox Code Playgroud)
这打印()
.
根据文档,如果没有找到匹配项,groups()将返回一个空元组.那为什么不匹配呢?