BodyParts
如何实例化?是一个州吗?如果是,则默认为空数组 []
,或者您可以在映射之前添加支票。我添加了在调用 map()
函数之前检查,因为它仅适用于数组。
附加信息
可能是数据
尚未填充由于等待API调用以完成或其他原因。在这种情况下,由于检查,我的修复程序只会在第一次渲染期间渲染一个空的DIV,并防止控制台错误。在数据准备就绪时,在下一个渲染过程中,在这种情况下,数据将是适当的数组类型,支票将通过( array.isarray(data)
),项目将渲染 box < /代码>正确组件。
import React from 'react';
import {Box} from '@mui/material';
const HorizontalScrollbar = ({data}) => {
return (
<div>
{Array.isArray(data) && data.map((item) => (
<Box
key = {item.id || item}
itemId = {item.id || item}
title = {item.id || item}
m = "0 40px"
>
{item}
</Box>
)
)
}
</div>
)
}
export default HorizontalScrollbar;
您可以创建或编辑/users/yimingliu/.zshrc
file(如果您的macOS比Macos Catalina 10.15都老,则文件为/users/yimingliu/.bash_profile
),并添加一条线以将Python bin文件夹添加到您的路径:
export PATH=/Users/yimingliu/Library/Python/3.8/bin:$PATH
def my_function(my_list):
final = ""
for i in my_list:
final = final + str(i)
return int(final)
integer = my_function([5, 6]) # My function will output 56
您可以用 pygame.quit()
在每个帧中退出游戏。在应用程序循环之后而不是在应用程序循环中退出游戏。另外,为什么在其他情况下更新游戏? break
语句在 event.type == pygame.quit
仅断开事件循环,而不是应用程序循环。更改代码的控制流:
# application loop
run = True
while run:
# event loop
for event in pygame.event.get():
if event.type == pygame.QUIT: run = False
if event.type == pygame.USEREVENT: message.update()
# redraw in every frame
screen.fill(pygame.color.Color('black'))
message.draw(screen)
pygame.display.flip()
clock.tick(60)
# quit after the application loop
pygame.quit()
请用调试信息编译您的小精灵。例如,如果GCC添加编译器标志 -G
,
当您的ELF包含调试信息时,它将包含指向所有源文件的链接,并且调试器将自动打开这些文件,并在 list
窗口。
list
窗口的按钮“模式”允许您在“ HLL模式”(仅C代码)和“混合模式”(C Plus Assembler)之间切换
您可以使用SyncFusion Multi-column Combox,
c#的代码(检查VB的
query = "SELECT ID, Descricao FROM tab_tasks";
adapter = new OleDbDataAdapter(query, connection);
adapter.Fill(ds, "idtask");
DataTable dataTable1 = ds.Tables["idtask"];
sfComboBox2.DataSource = dataTable1;
sfComboBox2.DisplayMember = "ID";
文档它将数据设置为数据表,并将其用作ComboBox的数据源。
DisplayMember
是您选择其中一个值时显示的成员。
为什么凹痕很重要?
在Python中,凹痕用于定界代码的块。这与使用Curly Braces {}
的许多其他语言不同,例如Java,JavaScript和C等块。因为空格很重要。
当Python遇到程序缩进问题时,它要么提出一个例外,称为 indentationError 或 /代码> 。也可以获得 syntaxerror
来自不正确的凹痕。
一个历史记录的
历史原因是为什么Python使用凹痕与更常见的更常见的卷曲括号 {}
在 {} 02/早期语言设计和开发。
Python的凹痕使用直接来自ABC,但这个想法并非源于ABC - 它已经由Donald Knuth推广,并且是著名的编程风格概念。 (OCCAM编程语言也使用了。)但是,ABC的作者确实发明了将引导条款与凹痕区块分开的结肠的使用。在没有结肠的早期用户测试之后,发现缩进的含义尚不清楚初学者被教导的第一步。结肠的添加显着澄清了:结肠以某种方式提请注意以下内容并以正确的方式将其在其前后的短语联系在一起。
我如何缩进我的代码?
缩进Python代码的基本规则是:基本块中的每个语句必须缩进相同的金额。
因此,从技术上讲,以下Python程序是正确的:
def perm(l):
# Compute the list of all permutations of l
if len(l) <= 1:
return [l]
r = []
for i in range(len(l)):
s = l[:i] + l[i+1:]
p = perm(s)
for x in p:
r.append(l[i:i+1] + x)
return r
但是,正如您可以从上面看出的那样,随机缩进您的代码使您的代码非常困难读取和遵循程序的流程。最好保持一致并遵循一种风格。
每个凹痕级别使用4个空间。
也就是说,每个正在启动新块的语句,并且在新块中的每个后续语句都应从当前的压痕层缩进四个空间。这是根据PEP8样式指南缩进的上述程序:
def perm(l):
# Compute the list of all permutations of l
if len(l) <= 1:
return [l]
r = []
for i in range(len(l)):
s = l[:i] + l[i+1:]
p = perm(s)
for x in p:
r.append(l[i:i+1] + x)
return r
我仍然可以使用选项卡吗?
Python意识到,有些人仍然喜欢选项卡而不是空间,而旧的代码可能使用选项卡而不是空格,因此它允许使用标签作为凹痕。 pep8 topy thit this主题:
空格是首选的凹痕方法。
标签应仅用于与已经与选项卡缩进的代码保持一致。
注意,但是,一个大警告是不使用两个选项卡和空间进行凹痕。这样做可能会导致各种奇怪的难以调试压痕错误。 python 将选项卡扩展到下一个8th列,但是如果您的编辑器设置为4列的选项卡,或者您使用的空格是除选项卡外,您还可以轻松地生成编辑器中 file的缩进代码,但是Python会拒绝运行。 Python 3编译器显式拒绝任何包含标签和空格混合物的程序,通常是通过提高 taberror
。但是,默认情况下,Python 2中仍然允许混合选项卡和空格,但是强烈建议不要使用此“功能”。使用 -t
和 -tt
命令行标志迫使Python 2分别提出警告或(最好)(优选)错误。 <
python 3不允许混合使用标签和空间用于凹痕的使用。
Python 2代码与标签和空间的混合物缩进,应专门使用空间。
使用-t选项调用Python 2命令行解释器时,它会发出有关非法混合选项卡和空格的代码的警告。使用-tt时,这些警告成为错误。强烈建议这些选项!
“缩进:意外缩进”是什么意思?
问题是
,当语句不必要地缩进或其缩进不符合同一块中以前的语句的缩进时,就会发生这种错误。例如,以下程序中的第一个语句是不必要的:
>>> print('Hello') # this is indented
File "<stdin>", line 1
print('Hello') # this is indented
^
IndentationError: unexpected indent
在此示例中, can_drive = true
line 中的行,如果 block block不符合任何以前的语句的缩进:
>>> age = 10
>>> can_drive = None
>>>
>>> if age >= 18:
... print('You can drive')
... can_drive = True # incorrectly indented
File "<stdin>", line 3
can_drive = True # incorrectly indented
^
IndentationError: unexpected indent
修复
此错误的修复程序是首先确保有问题的线甚至需要缩进。例如,可以修复上面的示例可以修复该行:
>>> print('Hello') # simply unindent the line
Hello
但是,如果您确定该行确实需要缩进,则凹痕需要匹配该行中的以前语句的凹痕相同的块。在上面的第二个示例中,使用,我们可以通过确保使用 can_drive = true
的行来解决错误>如果正文:
>>> age = 10
>>> can_drive = None
>>>
>>> if age >= 18:
... print('You can drive')
... can_drive = True # indent this line at the same level.
...
“凹痕:预期的缩进块”是什么意思?
(这也可能以的语法:在Python 3.8或更低的解析时出现EOF。)
当
Python看到“标头”的“标头”的复合语句,例如 if&lt;条件&gt;:
或 while&lt; condition&gt;:
,但从未定义化合物语句的身体或 。例如,在下面的代码中,我们启动了如果
语句,但是我们从不为语句定义一个正文:
>>> if True:
...
File "<stdin>", line 2
^
IndentationError: expected an indented block
在第二个示例中,我们开始为循环编写,但是我们忘记缩进
循环主体的。因此,python仍然期望
循环主体的缩进块:
>>> names = ['sarah', 'lucy', 'michael']
>>> for name in names:
... print(name)
File "<stdin>", line 2
print(name)
^
IndentationError: expected an indented block
注释不算为主体:
>>> if True:
... # TODO
...
File "<stdin>", line 3
^
IndentationError: expected an indented block
修复
此错误的修复就是简单地包含一个化合物语句的主体。
如上所示,新用户的一个常见错误是他们忘记了身体的缩进。如果是这种情况,请确保在化合物语句的开始下,将每个语句包含在化合物的主体中。这是以上示例修复的示例:
>>> names = ['sarah', 'lucy', 'michael']
>>> for name in names:
... print(name) # The for loop body is now correctly indented.
...
sarah
lucy
michael
另一个常见的情况是,出于某种原因,用户可能不想为复合语句定义实际主体,否则可能会评论身体。在这种情况下,可以使用通过
语句。来自文档:
通行证是一个无效的操作 - 执行时,什么也不会发生。当需要语法要求语句时,它作为占位符很有用,但是无需执行代码,例如:
def f(arg):传递#一个无需执行的函数(尚未执行) C级:通过没有方法的#班级(尚未)
以上示例在上使用语句使用 pass 关键字:
>>> if True:
... pass # We don't want to define a body.
...
>>>
“ IndentationError:不符合任何外部压痕级别”的意思是什么?
问题
当您不明智的语句时,会发生这个错误,但是现在该语句的缩进级别与任何以前的语句中的缩进级别都不匹配。例如,在以下代码中,我们将第二个调用打印
。但是,凹痕级别不符合任何以前的语句:
>>> if True:
... if True:
... print('yes')
... print()
File "<stdin>", line 4
print()
^
IndentationError: unindent does not match any outer indentation level
此错误尤其难以捕获,因为即使一个空间也会导致您的代码失败。
修复
该修复程序是为了确保当您不明智的说明时,缩进级别与以前的语句的级别相匹配。再次考虑上述示例。在示例中,我希望第二个呼叫打印在第一个语句主体中。因此,如果语句的正文,我需要确保该行的缩进级别与第一个中的前者语句相匹配:
>>> if True:
... if True:
... print('yes')
... print() # indentation level now matches former statement's level.
...
yes
>>>
我仍然得到缩进,但我的程序似乎正确缩进了。我该怎么办?
如果您的程序在视觉上似乎具有正确的凹痕,但是您仍获得 IndentationError
,您很可能有带空格的混合选项卡。这有时会导致Python引起奇怪的错误。请参阅 特殊情况 下的小节:“ taberror:不一致地使用标签和空间”。对于问题的更深入的解释。
“ Taberror:不一致的使用标签和空间不一致”是什么意思?
问题
只有在尝试将选项卡和空格作为凹痕字符混合时,才会发生这种错误。如上所述,Python将不允许您的程序包含选项卡和空格的混合物,并且如果发现您有特定的例外 Taberror
。例如,在下面的程序中,将选项卡和空格的混合物用于凹痕:
>>> if True:
... if True:
... print()
... print()
... print()
File "<stdin>", line 5
print()
^
TabError: inconsistent use of tabs and spaces in indentation
但是,由于许多编辑器渲染标签和空格相同,因此通常无法视觉看到。请注意,一些编辑器确实提供设置为具有不同符号的标签和空格,这可能会有所帮助。
在上面的示例中,这里是空格的表示。点是空间,箭头是选项卡:
if·True:
····if·True:
→ ····print()
····print()
→ print()
我们可以看到我们确实具有混合空间和缩进的标签。
特殊案例
注意Python 如果将选项卡和空格混合到程序中,则不会 始终始终提高 taberror
。如果程序凹痕是明确的,则Python将允许将选项卡和空间混合。例如:
>>> if True:
... if True: # tab
... pass # tab, then 4 spaces
...
>>>
有时Python只是在标签和空间的混合物上窒息,然后错误地提出 IndentationError
异常时, Taberror
更合适。另一个例子:
>>> if True:
... print('a') # tab
... print('b') # 4 spaces
File "<stdin>", line 3
print('b') # 4 spaces
^
IndentationError: unindent does not match any outer indentation level
如您所见,以这种方式运行代码可以创建神秘的错误。即使该程序视觉上似乎很好,但Python也变得困惑,试图解析用于凹痕的标签和空间,并出现了错误。
使用 -t
和 -tt
使用Python 2时
这些是很好的示例,可以证明为什么永远不要混合选项卡和空格并
。 ,可能最简单,最快的修复方法就是简单地重新指出程序。确保每个陈述均由每个冲突级别的四个空间缩进(请参见 我如何缩进我的代码? )。
但是,如果您已经有一个将选项卡和空格混合到的大型程序,则可以使用自动化工具将所有凹痕转换为只有空格。
许多编辑,例如 pycharm 和 sublimetext 具有自动将选项卡转换为空格的选项。还有几种在线工具,例如到空格或 browserling ,您可以快速重新指示代码。还有一些用Python编写的工具。 autopep8
即使是最好的工具,有时也无法解决您的所有缩进错误,您也必须手动修复它们。这就是为什么从一开始就始终正确缩小代码很重要的原因。
关于 syntaxerror
相关的缩进问题的注释
有时某些 SyntaxError
异常由于不正确的凹痕而提高。例如,查看下面的代码:
if True:
print('x')
print('y') # oops! this statement should be indented!.
else:
print('z')
运行上述代码时,提高了 syntaxerror
:
Traceback (most recent call last):
File "python", line 4
else:
^
SyntaxError: invalid syntax
尽管Python提出了 syntaxerror
,但上述代码的问题是 print('y')
应缩进。由于没有缩进,Python并未意识到,如果语句和 else
语句的语句是要连接的。
此类错误的修复是简单地正确重新指示您的代码。要查看如何正确缩进您的代码,请参见“ ”部分,如何缩进我的代码? 。
我仍然很难使用Python的缩进语法。我该怎么办?
如果您仍在挣扎,不要灰心。可能需要时间来习惯
Python的Whitespace语法规则。以下是一些可以提供帮助的提示:
- 获取一个编辑器,该编辑器会在缩进错误时告诉您。某些商品如上所述, pycharm , sublimetext 和 jupyter Notebook 。
- 当您缩进代码时,请大声算出您自己按太空杆(或TAB键)的次数。例如,如果您需要在四个空间上缩进一行,则大声说“ 一个”每次同时按空间杆时,四个”。这听起来很愚蠢,但它有助于训练您的大脑,思考您对代码的缩进。
- 如果您有编辑器,请查看它是否具有自动将选项卡转换为空格的选项。
- 查看他人的代码。浏览 github 或
- 只需写代码即可。那是变得更好的唯一最佳方法。您编写Python代码越多,您会得到的越好。
使用
您可以通过安装 shadow-utils
包装添加 groupAdd
和 userAdd
命令。
FROM registry.access.redhat.com/ubi8/ubi-minimal
RUN microdnf install shadow-utils
RUN groupadd -r -g 1000 myuser \
&& useradd -r -u 1000 -g myuser -m -d /opt/myuser -s /bin/bash myuser
RUN mkdir /deployments \
&& chmod 755 /deployments \
&& chown -R myuser /deployments
static_cast
static_cast
是您应该尝试使用的第一个演员。它可以执行类型之间的隐式转换(例如 int
to float
,或指向 void*
)的指针,也可以调用显式转换功能(或隐式)。在许多情况下,明确说明 static_cast
不是必需的,但是重要的是要注意, t(sothings)
语法等于(t)代码>并应避免(稍后再详细介绍)。但是,A
t(某物,某种东西)
是安全的,并且保证调用构造函数。
static_cast
也可以通过继承层次结构施放。在向上施放(向基类)时,这是不必要的,但是当向下铸造时,只要它不通过 virtual
继承施放,就可以使用它。但是,它不进行检查,并且它是 static_cast
将层次结构降低到实际上不是对象类型的类型的不确定的行为。
const_cast
const_cast
可用于删除或添加 const
到变量;没有其他C ++铸件能够将其删除(甚至 reinterpret_cast
)。重要的是要注意,仅当原始变量为 const
时,修改以前的 const
值才能不确定。如果您使用它来将 const
删除对未用 const
声明的内容的引用,则是安全的。例如,在基于 const
的过载函数过载时,这可能很有用。它也可用于将 const
添加到对象中,例如调用成员功能超载。
const_cast
在 volatile
上也类似地工作,尽管这不太常见。
dynamic_cast
dynamic_cast
专门用于处理多态性。您可以将指针或对任何多态性类型的引用施放到任何其他类型类型(多态性类型具有至少一个虚拟功能,已声明或继承)。您不仅可以将其用于向下铸造,还可以将其用于侧面,甚至可以向上施放另一个链条。 dynamic_cast
将寻找所需的对象并在可能的情况下返回。如果不能,则在指针的情况下,它将返回 nullptr
,或者在参考的情况下投掷 std :: bad_cast
。
dynamic_cast
有一些限制。如果继承层次结构中有相同类型的多个对象(所谓的“可怕的钻石”),并且您不使用 virtual
继承,则无效。它还只能通过公共继承 - 它总是无法通过受保护
或 private
继承。但是,这很少是一个问题,因为这种继承形式很少见。
reinterpret_cast
reinterpret_cast
是最危险的铸件,应非常谨慎地使用。它直接将一种类型变成另一种类型,例如将价值从一个指针转换为另一种指针,或将指针存储在 int
中,或其他各种讨厌的东西。在很大程度上,您唯一可以保证 reinterpret_cast
通常,如果将结果归还给原始类型,则将获得完全相同的值(但是 not> not 如果中间类型小于原始类型)。 reinterpret_cast
也无法做到许多转换。通常会滥用它,特别是将原始数据流转换为实际数据,或将数据存储在调整后数据的指针的低位中。对于这些情况,请参阅 std :: bit_cast
。
C风格的铸造和功能风格的铸造
C风格铸造和功能风格的铸件是使用(type)对象
或 type> type(object)
,并且在功能上是相等的。它们定义为成功的以下第一个:
-
const_cast
-
static_cast
(尽管忽略访问限制) -
static_cast
(请参阅上文),然后const_cast
-
reinterpret_cast
-
reinterpret_cast
,然后const_cast
因此,它可以用作在某些情况下的替换,但是可以是由于能够将 reinterpret_cast
延伸到需要显式铸造时,因此非常危险,除非您确定 static_cast
将获得成功或 reinterpret_cast,否则应首选。
将失败。即使那样,请考虑更长,更明确的选项。
执行 static_cast
时,C风格的铸件也忽略了访问控制,这意味着他们有能力执行其他铸件无法执行的操作。但是,这主要是一个笨拙的人,在我看来,这只是避免C风格的另一个原因。
std :: bit_cast
[C ++ 20]
std :: bit_cast
将源对象(其表示)的位和字节直接复制到目标类型的新对象中。这是一种符合标准的方式进行类型的双调。如果您发现自己写*reinterpret_cast&lt; lye stype*&gt;(&amp; x)
,您可能应该使用 std :: bit_cast&lt;(x)
代替。
std :: bit_cast
在&lt; bit&gt;
中声明。对象必须具有相同的尺寸,并且可以琐碎地复制。如果您还不能使用C ++ 20,请使用 memcpy
将源值复制到所需类型的变量中。
我们无法提供全面的答案,没有:
- 知道它是独立的还是分布式模式< /a>
- 什么 stdout> stdout> stdout 说
- 什么是什么://jmeter.apache.org/usermanual/get- started.html#logging“ rel =” nofollow noreferrer“> jmeter.log.log 在所有机器上说
等待可能的
等待可能的关闭/posteptestnow/stoptestestnow/heapdump /threaddump消息在端口4445
消息是绝对正常,这只是jmeter正在听的信息,
您还应该看到 summariser 每30秒输出一次,并具有一些基线统计指标。喜欢:
summary + 5 in 00:00:26 = 0.2/s Avg: 246 Min: 59 Max: 498 Err: 0 (0.00%) Active: 1 Started: 1 Finished: 0
summary + 1 in 00:00:10 = 0.1/s Avg: 128 Min: 128 Max: 128 Err: 0 (0.00%) Active: 0 Started: 1 Finished: 1
演示:
您的程序抛出了例外,并且在我运行时对我没有正常工作。这是我的修改
int number, aanet1, isoin;
Scanner scanner = new Scanner(System.in);
System.out.print("Enter the number of candidates:");
number = scanner.nextInt();
int[] votes = new int[number];
String[] ehdokkaat = new String[number];
for (int i = 0; i < number; i++) {
System.out.print("Enter candidate's name:");
String x = scanner.next();
ehdokkaat[i] = x;
System.out.print("Enter " + ehdokkaat[i] + "'s votes:");
int c = scanner.nextInt();
votes[i] = c;
}
isoin = votes[0];
int kohta = 0;
for (int i = 1; i < votes.length; i++) {
if (isoin < votes[i]) {
isoin = votes[i];
kohta = i;
}
}
System.out.println();
System.out.println(ehdokkaat[kohta] + " is the winner with " + isoin + " votes!");
}
- for循环之前删除了重复的逻辑,
- 在kohta中的
- 您不能保存索引,但是获胜者的选票for loop符合票数
。
有多种方法可以解决。
最简单的是通过投票数组迭代并找到最大值。
然后,您再次迭代,然后保存具有值的数组的索引。
然后,您使用Ehdokkaat阵列中的这些索引来找到获胜者。
您可以查看是否有领带,阵列,列表中的项目数量或使用的任何内容。因此,如果是一个,您将有赢家,否则会有领带。
更新:
我为您写了它,没有进行非常广泛的测试,我使用了数组,希望您对此一切都好。
int number, aanet1, isoin;
Scanner scanner = new Scanner(System.in);
System.out.print("Enter the number of candidates:");
number = scanner.nextInt();
Integer[] votes = new Integer[number];
String[] ehdokkaat = new String[number];
for (int i = 0; i < number; i++) {
System.out.print("Enter candidate's name:");
String x = scanner.next();
ehdokkaat[i] = x;
System.out.print("Enter " + ehdokkaat[i] + "'s votes:");
int c = scanner.nextInt();
votes[i] = c;
}
int max = Collections.max(Arrays.asList(votes));
List<Integer> winners = new ArrayList();
for (int i = 0; i < votes.length; i++) {
if (max == votes[i]) {
winners.add(i);
}
}
if (winners.size() > 1) {
System.out.println();
System.out.println(String.format("Tie (with %d votes) between:", max));
for (Integer index : winners) {
System.out.println(ehdokkaat[index]);
}
} else {
System.out.println();
System.out.println(ehdokkaat[winners.get(0)] + " is the winner with " + max + " votes!");
}
事实证明,将这些下拉词中的选定值复制到隐藏的CSS,而不是隐藏的字段中,然后将我的验证运行是必经之路。捕获的是,我需要用“可见性:隐藏”而不是“显示:无”隐藏它们,这是我以前尝试过的。
您创建一个请求模型:
然后,您尝试创建以下邮政编码:
You create a request model:
Then you try to create postData like this:
Graph API-获取“远程服务器返回错误:(400)不良请求。