回应我在关于C ++ :我建议扔掉 scanf()
离开,永远不要使用它,而是使用 fgets()
和 sscanf()
。
这样做的原因是,至少在默认情况下,在类似于Unix的系统中,您的CLI程序运行的终端在您的程序看到它之前对用户输入进行了一些处理。它可以缓冲输入,直到输入新线,并允许进行一些基本的线编辑,例如使BackSpace工作。
因此,您永远无法一次获得一个字符,或者几个字符,只是一条完整的线。但这不是Eg scanf(“%d”)
处理,而是仅处理数字,并在此处停止,而其余的则在c库中进行了缓冲未来 stdio
要使用的功能。如果您的程序具有EG
printf("Enter a number: ");
scanf("%d", &a);
printf("Enter a word: ");
scanf("%s", word);
,并且您输入行 123 ABCD
,它将同时完成 scanf()
s给出。第一个 scanf()
在用户达到空间时不会返回,即使这是数字结束的地方(因为那时行仍在终端的线缓冲区中);第二个 scanf()
不等待您输入另一行(因为输入缓冲区已经包含足够的足够填充%s
转换)。
这不是用户通常期望的!
取而代之的是,他们希望击中Enter完成输入,如果您击中Enter,则会获得默认值或错误,并可能有一个建议真正给出答案。
您不能真正使用 scanf(“%d”)
来实现这一目标。如果用户只是输入,则什么都不会发生。因为 scanf()
仍在等待该数字。终端发送线路,但您的程序看不到它,因为 scanf()
食用它。您没有机会对用户的错误做出反应。
这也不是很有用。
因此,我建议使用 fgets()
或 getline()
一次读取完整的输入行。这与终端提供的内容完全匹配,并在用户输入线路后始终提供您的程序控件。您对输入行的处理取决于您,如果您需要一个数字,则可以使用 atoi()
, strtol()
,甚至 sscanf( buf,“%d”,& a)
分析数字。 sscanf()
与 scanf()
没有相同的不匹配,因为它读取的缓冲区的大小有限,并且结束时,它结束时 - 功能等不及更多。
( fscanf()
在常规文件上也可以很好 fgets()
和 sscanf()
。)
因此,而不是我上面的东西,请使用类似的东西:
printf("Enter a number: ");
fgets(buf, bufsize, stdin);
sscanf(buf, "%d", &a);
或者,实际上,检查返回值 sscanf()
也可以检测到空行,否则无效数据:
#include <stdio.h>
int main(void)
{
const int bufsize = 100;
char buf[bufsize];
int a;
int ret;
char word[bufsize];
printf("Enter a number: ");
fgets(buf, bufsize, stdin);
ret = sscanf(buf, "%d", &a);
if (ret != 1) {
fprintf(stderr, "Ok, you don't have to.\n");
return 1;
}
printf("Enter a word: ");
fgets(buf, bufsize, stdin);
ret = sscanf(buf, "%s", word);
if (ret != 1) {
fprintf(stderr, "You make me sad.\n");
return 1;
}
printf("You entered %d and %s\n", a, word);
}
当然,如果您希望该程序坚持,您可以创建一个简单的功能来循环循环 fgets( )
和 sscanf()
,直到用户被否定执行他们告诉他们的操作;或立即出现错误的退出。取决于您认为如果用户不想打球应该做什么。
您可以通过循环 getchar()
读取字符,直到返回 scanf(“%d”)
返回,从缓冲区,但这对用户只是在空线上输入输入的情况并没有任何作用。无论如何, fgets()
将读取直到newline,因此您不必自己做。
在我的解决方案,您将在员工在第一个示例中显示的员工在这里的时间内拥有一个具有ID和布尔值的数据框。
import pandas as pd
#Your initial Dataframe
df = pd.DataFrame([[123,"2022-06-13 09:03", "2022-06-13 22:12"],[633, "2022-06-13 08:15", "2022-06-13 13:09"]], columns=['IdNum', 'BeginDate', 'Exitdate'])
#The dictionnary where I'll stock the result
dico_res = {}
for i in range(df.shape[0]):
#I define a range of dates to know if your enter and exit is in the range
enter = pd.to_datetime(df.loc[i]["BeginDate"])
exit = pd.to_datetime(df.loc[i]["Exitdate"])
start = pd.to_datetime(enter.strftime("%d/%m/%Y"))
range_15_minutes = pd.date_range(start=start, end=end,freq="15min")
list_boolean, idx = [], []
for date in range(len(range_15_minutes)-1):
if enter >= range_15_minutes[date] and enter < range_15_minutes[date+1]:
list_boolean.append(True)
elif exit >= range_15_minutes[date] and exit < range_15_minutes[date+1]:
list_boolean.append(True)
elif exit < range_15_minutes[date] or enter > range_15_minutes[date]:
list_boolean.append(False)
else:
list_boolean.append(True)
idx.append(range_15_minutes[date].strftime("%H:%M") + "-" + range_15_minutes[date+1].strftime("%H:%M"))
dico_res[df.loc[i]["IdNum"]]=list_boolean
dataframe_solution = pd.DataFrame(dico_res, index=idx).T
因此,经过多次尝试和长时间的研究,我几乎使用UseContext来完成这项工作,但是最后我找到了解决方案,这些步骤是:
- 首先,我添加了一个新的组件
&lt; adminottions /&gt; < /code>其中包含渲染我的
&lt; adduser /&gt; < /code> and
&lt; deleteuser /&gt; < /code> and
&lt; updateusers /questusers /&gt; < /code>的所有逻辑。
- 我通过最后一个孩子(
&lt; item /&gt; < /code>)传递了一个函数,将其调用并通过某些参数传递给parent code>&lt; gassindash /&gt; < /code的父组件。 >告诉单击哪个项目并渲染哪个项目。
- 然后,我使用这些参数,然后再次将它们传递到我的新组件`以渲染该特定项目,它有点复杂且许多层次结构,但对我来说是一个完美的解决方案。
admindash
const[componentId, setComponentId]= React.useState(false);
const [show, setShowComponent] = React.useState(false);
const handleClick=(id)=>{
if(id===componentId){
setShowComponent(!show);
}
else{
setComponentId(id);
setShowComponent(true);
}
}
return (
//Here I pass the handleClick hooks to the childs
<SideMenu handleClick={handleClick} />
//my new component who will render the items component
<AdminOptions whatToShow={componentId} show={show} />
);
sidemenu
//passing again the handleClick to childs
<Items handleClick={props.handleClick} />
项目
//I'm passing again the handleClick and giving each item an ID to differentiate between them
<Item
Name="addUser"
Id="AddUser"
handleClick={props.handleClick} />
<Item
Name="deleteUser"
Id="DeleteUser"
handleClick={props.handleClick} />
<Item
Name="updateUser"
Id="UpdateUser"
handleClick={props.handleClick} />
<ul>
//here in the onClick i pass the function handleclick with an item id as a parameter
<li
onClick={()=>{props.handleClick(props.Id)}}
>
<div> {props.Name} </div>
</li>
</ul>
//So here is a switch case conditional rendering depending on Item's ID
switch (props.whatToShow){
case "AddUser":
return(props.show && <AddUser />);
case "DeleteUser":
return(props.show && <DeleteUser />);
case "UpdateUser":
return(props.show && <UpdateUser />);
default :
return (<> </>);
管理使用该项目ID的那个处理,并使管理员在admindash中显示该项目组件,
我尽力使它尽可能清楚,任何有疑问的人都将其留在评论中。
您之所以发出此错误消息是因为您正在调用一个函数,该函数期望其参数不需要梯度计算。更具体地说, nn.bceloss
期望目标(第二参数)不需要梯度。
您可以通过从图表中分离参数来解决此问题:
lossFn(outputs, outputs.detach())
功能 t()
什么都没有返回,或无
。您可以按照上一个答案暗示并返回self
进行操作,但这通常不是一个好主意。如果您只想C,请使用:
SecondTest = test(3,4)
SecondTest.t(30,40)
print(SecondTest.c)
最简单的方法是将 geom_smooth
与loess: geom_smooth(method =“ loess”,span = 0.5)
并播放 span
parameter要获得更光滑或摇摆的形状。
不可能编写一个可以压缩每个字符串的函数。充其量您可以编写一个可以压缩最多但不是全部的功能。
压缩通过在某种程度上降低冗余而起作用。您的示例字符串似乎没有很多冗余,因此可能不是很容易压缩。
使用 re.findall
我们可以尝试:
inp = "document.getElementById('dlbutton').href = \"/d/05UJmMTa/\" + (213059 % 51245 + 213059 % 913) + \"/Cool%20Customer%20-%20In%20Your%20Face%20%28Original%20Mix%29.mp3\";"
parts = re.findall(r'\.href\s*=\s*"(.*?)"\s*\+\s*\((.*?)\)\s*\+\s*"(.*?)"', inp)
print(parts[0])
此打印:
['/d/05UJmMTa/',
'213059 % 51245 + 213059 % 913',
'/Cool%20Customer%20-%20In%20Your%20Face%20%28Original%20Mix%29.mp3']
这是我在 href =“ - 在一定程度上,这是一个猜测,因为我无法测试它,因为您没有发布可运行的最小,可再现的例子。
warning_shown = False # Define global variable.
class MyClass:
...
def setinitqty(self):
global warning_shown # IMPORTANT.
if self.btqty.get() == '':
msg.showerror('Error','Set Bt Address Quantity')
else:
self.count = 0
with open('C:/Users/user/Desktop/Test/test.txt','r') as f:
for line in f:
if line.strip():
self.count += 1
self.prntbtadd = self.count
self.initqty = self.btqty.get()
self.setbtn['state'] = 'disable'
self.btqty['state'] = 'disable'
self.rstbtn['state'] = 'active'
self.rmn = int(self.initqty) - self.prntbtadd
self.rmnqtylbl['text'] = str(self.rmn)
self.rmnqtylbl.after(1000,self.setinitqty)
if self.rmn <= 10:
if not warning_shown:
msg.showwarning('Warning','Warning')
warning_shown = True
self.rmnbtaddfrm['bg'] = 'red'
self.rmnqtylbl['bg'] = 'red'
最后,我找到了原因:
我有一个启动daemon,可以执行bash脚本 webstack.sh
。
该脚本启动Nginx和PHP-FPM,并在不太可能崩溃的情况下重新启动它们。
启动daemon使用 sh
在我的系统上执行脚本和 sh
没有完整的磁盘访问。
ZSH
具有完整的磁盘访问,因此我用 zsh
更改了 sh
,现在php-fpm可以访问外部驱动器。
但是,当我运行时,RenderPass会导致无效的指针:0xe00000000000e
有两种类型的手柄,由Vulkan函数返回:
- 派遣:
可调度手柄类型是通向不透明类型的指针。该指针可以由层用作截取API命令的一部分,因此每个API命令将可调度类型作为其第一个参数。
- 不及格:
不可触摸的句柄类型是64位整数类型,其含义取决于实现。
vkrenderpass
是作为不可触及的手柄。没有理由将其视为64位价值以外的任何东西。这是否是有效的内存指针完全无关紧要。
您在评论中说,该功能返回 vk_success
,并且验证层不会报告任何错误。那是什么问题?如果您仍在呈现问题,那可能不是渲染通行对象,而是其他东西。
您可以在细节视图的背景下提供它们。例如,例如以下方法,例如以下方法,例如
class ChapterDetailView(DetailView):
model = Chapter
template_name = 'chapter_detail.html'
context_object_name = 'current_chapter'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['previous_chapter'] = your_previous_chapter_link_if_any_else_none
context['next_chapter'] = your_next_chapter_link_if_any_else_none
return context
以下方法,presurn_chapter和next_ chapter可能是在模型中定义URL.py如下
class Chapter(models.Model):
# ... your models field
def get_next_chapter_url(self):
next_chapter = Chapter.objects.filter(id__gt=self.id).order_by('id').first()
if next_chapter:
return reverse('chapter-detail', kwargs={'id': next_chapter.id})
和章节详细信息页面模板,假设上下文对象名称为current_ chapter
<a href="{{current_chapter.get_next_chapter_url}}">Next Chapter</a>
尽管我不知道您的 checking_plus_1
函数,但是的,您可以在每次迭代时在循环中突变您的数组。
您还可以通过在循环中添加 console.log(array)
来查看更改。
对于我无法完全理解的过程相关的内容,您必须行 driver = uc.chrome()
and driver.get('https://namecheap.com')< /code>在
中,如果__name__ =='__ main __':
。
此外,链接必须具有 https://
或 http://
才能工作。
这是我的工作代码:
import undetected_chromedriver as uc # The .v2 is not necessary in the last version of undetected_chromedriver
import time
def main():
time.sleep(4)
# Continue your code here
if __name__ == '__main__':
driver = uc.Chrome()
driver.get('https://namecheap.com')
main()
如果您查看自动生成的Fastapi Swagger(127.0.0.1:8000/docs),您会发现您必须使用Multipart-Form来上传。
要从Angular上传它,您必须按照以下示例使用FormData。
If you look into the automatic generated FastAPI swagger (127.0.0.1:8000/docs), you'll see that you have to use multipart-form to upload this.
To upload this from Angular you will have to use FormData as per the example below.
致电FastApi上传来自电话React本地的文件