在 Python 中,可以使用 f-strings 方便地格式化字符串:
a = 42
print(f"a = {a}") # prints "a = 42"
Run Code Online (Sandbox Code Playgroud)
是否可以在编译时在 C++ 中做这样的事情,或者是format("a = {}", a);最接近 f-strings 的东西?
编辑:我并不是说这些格式化方法应该在运行时工作。编译器不能只在编译时通过名称查找当前作用域中可见的变量吗?就像,如果它遇到字符串,f"foo = {foo}"它可以将此字符串替换为std::format("foo = {}", foo)代码
如何lst1根据列表从列表中删除项目lst2?
lst1 = ['abc__2','def__3','xyz__3','pqr__1']
lst2 = ['def','xyz','tuv']
Run Code Online (Sandbox Code Playgroud)
分裂我做了
lst3 = [k.split("__")[0] for k in lst1]
Run Code Online (Sandbox Code Playgroud)
删除我做了
new_list = [i for i in lst3 if i not in lst2]
Run Code Online (Sandbox Code Playgroud)
但这样一来,就失去了原单的独创性。
必填清单: new_list = ['abc__2','pqr__1']
在 Python 中,可以使用 f-strings 方便地格式化字符串:
num = 12
print(f"num is {num}") # prints "num is 12"
Run Code Online (Sandbox Code Playgroud)
有可能在 C 中做这样的事情吗?或者类似的东西?目前,要将变量添加到输出中,我正在使用此方法:
int num = 12;
printf("num is %d", num);
Run Code Online (Sandbox Code Playgroud)
这是将变量添加到 C 中的打印语句的唯一方法吗?
我有这个代码:
#include <stdio.h>
int main()
{
int arr2[5];
arr2[0] = 0;
arr2[1] = 1;
arr2[2] = 2;
arr2[3] = 3;
int arr3[5] = {1, 2, 3, 4};
}
Run Code Online (Sandbox Code Playgroud)
当我打印每个数组的第五个位置时,我得到不同的结果:
printf("Fifth: %d\n", arr2[4]); // Prints Random number
printf("Fifth: %d\n", arr3[4]); // Prints Zero!
Run Code Online (Sandbox Code Playgroud)
输出:
Fifth: -858993460
Fifth: 0
Run Code Online (Sandbox Code Playgroud)
我知道第一个是指向内存中第五个位置的指针,第二个是数组如何用 0 初始化。我不明白为什么他们给我两个不同的值。在这两种情况下我都将数组的大小设置为 5;为什么会发生这种情况?