?q=cats
这样的参数,将额外的输入传递给服务器。Python是另一种编程语言,但它是解释器(由解释器从上到下运行,就像JavaScript)和更高级的(包括更强大的特性和库)。
例如,我们可以用Python在几行中实现整个resize
程序:
import sys
from PIL import Image
if len(sys.argv) != 4:
sys.exit("Usage: python resize.py n infile outfile")
n = int(sys.argv[1])
infile = sys.argv[2]
outfile = sys.argv[3]
inimage = Image.open(infile)
width, height = inimage.size
outimage = inimage.resize((width * n, height * n))
outimage.save(outfile)
import[导入]
(像include
一样)一个sys
库(用于命令行参数)和Image
库len(sys,atgv)
检查命令行参数的数量是否正确,然后创建一些变量 n
,infile
,和outfile
,而不需要指定它们的类型。resize
函数调整其大小,最后将其保存到输出文件中。让我们看看一些新的语法。在Python中,我们可以只使用counter = 0
来创建变量,要使用变量递增,可以使用counter = counter + 1
或 counter += 1
。
条件看起来像:
if x < y:
something
elif:
something
else:
something
{
}
用于代码块),Python中每行的精确缩进决定了嵌套的级别。布尔表达式也略有不同:
while True:
something
循环可以用另一个函数 range 来创建,在下面的例子中,range 返回一个 从 0 到 50(不包括50)的范围内的数字
for i in range(50):
something
在Python中,我们将从一些数据类型开始:
bool
,True
或False
float
,实际是数据int
,整数str
,字符串dict
,键值对字典,类似哈希表list
,类似数组,但可以自动调整大小range
,数值范围set
,一堆独特的东西tuplt
,一组两个或更多的东西在Python中,我们也可以包含CS50库,但语法是:
from cs50 import get_float, get_int, get_string
在Python中,我们可以运行我们的程序,而不需要使用Python hello.py(或者不管文件名是什么)来编译它。
python
是我们在命令行中实际运行的程序名称,它是一个解释器,可以读取我们的源代码(用python语言编写)并运行它,每次一行。(从技术上讲,有一个编译器可以将我们的源代码转换为解释器实际运行的字节码,但它对我们来说是抽象的。)我们的第一个hello.py
程序:
print("hello, world")
main
函数,也不需要为print
函数导入任何的东西。Python中的print
函数也会自动为我们添加一个新行。python hello.py
运行它。我们可以从用户那里获取字符串:
from cs50 import get_string
s = get_string("Name: ")
print("hello,", s)
s
的变量,不指定类型,我们可以将多个变量传递给print
函数,它将在同一行为我们打印它们,并自动用空格分隔。print(f"hello,{s}")
。在这里,我们说字符串中hello,{s}
是一个格式化的字符串,字符串前面有f
,因此变量s
被替换到字符串中。而且我们不需要担心变量类型;我们可以将它们包含在字符串中。