(这是家庭作业)这就是我所拥有的:
L1 = list(map(int, input().split(",")))
Run Code Online (Sandbox Code Playgroud)
我遇到了
File "lab3.py", line 23, in <module>
L1 = list(map(int, input().split(",")))
AttributeError: 'tuple' object has no attribute 'split'
Run Code Online (Sandbox Code Playgroud)
是什么导致了这个错误?
我1, 2, 3, 4用作输入
我有一个像这样的脚本:
#myscript.py
import click
def step1(arg1):
print('Step 1: ' + arg1)
def step2(arg2):
print('Step 2: ' + arg2)
def main(arg1, arg2):
step1(arg1)
step2(arg2)
Run Code Online (Sandbox Code Playgroud)
大多数时候我想使用 运行脚本myscript arg1 arg2,但有时我可能只想运行一个步骤:例如myscript step1 arg1。如何设置点击来执行此操作?有没有一种方法可以让一个默认命令和其他可选命令一起使用?
这似乎是Click 不鼓励的一件事:
有时,从一个命令调用另一个命令可能会很有趣。Click 通常不鼓励这种模式,但尽管如此,这种模式还是有可能的。
我需要使用这个click.invoke()模式吗?
我正在创建一个您与之对话的程序,然后给它一个命令,然后它就会运行。问题是当我运行该程序并对其进行对话时,它可能会大写一些我在代码中没有大写的字母,因此它不会运行该命令。有没有办法让python不用担心单词是否大写?我已经尝试过将名称大写,但它似乎在需要时将它们大写。代码:
import speech
words = {"test1", "hello"}
test = speech.input("test: ")
tokens = test.split()
if words.intersection(tokens):
print 'hi'
else:
print 'test'
Run Code Online (Sandbox Code Playgroud) 我知道在一个std::pair或一个匿名struct类型的for循环中声明和初始化两个不同的变量,但这些不适用于我的目的.
假设我有以下类定义
class Object {
private:
int i;
public:
Object(int i) : i(i) { }
// everything else deleted
Object() = delete;
Object(const Object &) = delete;
Object(Object &&) = delete;
Object & operator=(const Object &) = delete;
Object & operator=(Object &&) = delete;
};
Run Code Online (Sandbox Code Playgroud)
有没有什么办法可以初始化Object和int中 for环线.我不想在for循环或类似的东西周围添加额外的块.我还好用std::tuple,std::pair匿名structs,不管,只是只要它的形式是
for(/* creates Object and int*/ ; /*whatever*/; /*whatever*/) { /* ... */}
Run Code Online (Sandbox Code Playgroud)
或(如果存在语法)
for( Object o(69), …Run Code Online (Sandbox Code Playgroud) 写一个只占左值的函数很容易
template <typename T>
void f(T&);
Run Code Online (Sandbox Code Playgroud)
但是由于通用引用,编写一个只接受rvalue引用的引用并不是直截了当的.有没有办法编写一个只接受rvalue refs的泛型函数?(返回类型不是真正的问题)
template <typename T>
void only_rvals(T&&);
Run Code Online (Sandbox Code Playgroud)
哪里
int i{};
only_rvals(i); // fails to compile
only_rvals(6); // successfully compiles
Run Code Online (Sandbox Code Playgroud) 我想获取nextPageToken下面的youtube数据api是我的代码,我想获取所有nextpageTokens。在循环中,我想重新分配nextPageToken
def get_next_videos():
while True:
r = requests.get("https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=50&channelId="+CHANNELID+"&order=date&key="+DEVELOPER_KEY)
json_data = r.json()
nextPageToken = json_data.get("nextPageToken")
second_r = requests.get("https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=50&channelId="+CHANNELID+"&order=date&key="+DEVELOPER_KEY+"\
&pageToken="+nextPageToken)
json_data = second_r.json()
nextPageToken = json_data.get("nextPageToken")
third_r = requests.get("https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=50&channelId="+CHANNELID+"&order=date&key="+DEVELOPER_KEY+"&\
pageToken="+nextPageToken)
json_data = third_r.json()
nextPageToken = json_data.get("nextPageToken")
fourth_r = requests.get("https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=50&channelId="+CHANNELID+"&order=date&key="+DEVELOPER_KEY+"\
&pageToken="+nextPageToken)
json_data = third_r.json()
nextPageToken = json_data.get("nextPageToken")
Run Code Online (Sandbox Code Playgroud) 在别名模板编写将演绎出某种类型的返回类型TS" operator->,到目前为止,我有这
template <typename T>
using arrow = decltype(std::declval<T&>().operator->());
Run Code Online (Sandbox Code Playgroud)
它适用于所有类类型,但不适用于指针.尝试实际调用时存在类似的问题->
template <typename T>
struct D {
T t;
arrow<T> f() {
// not valid to call .operator->() on pointers
return t.operator->();
}
};
Run Code Online (Sandbox Code Playgroud)
如何使这个函数获得声明的正确返回类型,并正确委托类类型和指针?
我试图通过subprocess命令将一些ID提取到列表中。下面是我的代码:
list1=[]
list2=[]
list1 = subprocess.Popen("pgrep -u root",stdout=subprocess.PIPE, shell = True)
for i in list1:
file1 = open(os.path.join('/proc',i,'status')).readlines()
for line in file1:
if line.startswith("Mem: "):
id = int(line.split()[5])
if line.startswith("Cpu: "):
toC = int(line.split()[8])
list2 = (id,toC)
for k in list2:
self.text.insert(INSERT,k[0])
self.text.insert(INSERT,k[1])
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:'Popen'对象不可迭代。我正在创建一个列表,并将ID提取到列表中,然后对于列表中的每个ID,我都试图获取mem和cpu信息。该信息再次输入到另一个空列表(list2)。我正在遍历list2以显示这些信息。我要去哪里错了?
从 gcc-7.1 更新到 gcc-7.2 后,我收到了很多关于未声明包含标准库头文件的错误。例如
$ bazel build //test:my_test
ERROR: /home/haining/my_project/BUILD:39:1: undeclared inclusion(s) in rule '//test:my_test':
this rule is missing dependency declarations for the following files included by 'test/test_range.cpp':
'/home/haining/gcc-7.2/include/c++/7.2.0/cstddef'
'/home/haining/gcc-7.2/include/c++/7.2.0/x86_64-pc-linux-gnu/bits/c++config.h'
'/home/haining/gcc-7.2/include/c++/7.2.0/x86_64-pc-linux-gnu/bits/os_defines.h'
'/home/haining/gcc-7.2/include/c++/7.2.0/x86_64-pc-linux-gnu/bits/cpu_defines.h'
'/home/haining/gcc-7.2/lib/gcc/x86_64-pc-linux-gnu/7.2.0/include/stddef.h'
'/home/haining/gcc-7.2/include/c++/7.2.0/functional'
'/home/haining/gcc-7.2/include/c++/7.2.0/bits/stl_function.h'
'/home/haining/gcc-7.2/include/c++/7.2.0/bits/move.h'
'/home/haining/gcc-7.2/include/c++/7.2.0/bits/concept_check.h'
'/home/haining/gcc-7.2/include/c++/7.2.0/type_traits'
'/home/haining/gcc-7.2/include/c++/7.2.0/backward/binders.h'
'/home/haining/gcc-7.2/include/c++/7.2.0/new'
'/home/haining/gcc-7.2/include/c++/7.2.0/exception'
... etc ...
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题
下面定义全局命名空间中的友元函数,声明与朋友相同的函数
class Cls {
friend void func(int) { }
friend void ::func(int);
};
Run Code Online (Sandbox Code Playgroud)
so.cpp:3:17: error: ‘void func(int)’ has not been declared within ‘::’
friend void ::func(int);
^~
so.cpp:2:17: note: only here as a ‘friend’
friend void func(int) { }
^~~~
Run Code Online (Sandbox Code Playgroud)
这对我来说应该没问题,它在全局命名空间中定义一个函数不是吗?gcc错误很明显,不喜欢它only是朋友.谁是对的?
c++ ×5
python ×5
c++11 ×3
python-3.x ×2
templates ×2
bazel ×1
c++17 ×1
linux ×1
list ×1
logic ×1
python-2.7 ×1
python-click ×1
subprocess ×1
youtube ×1