登录
首页 >  文章 >  python教程

Python 基本介绍

来源:dev.to

时间:2024-11-22 10:52:23 251浏览 收藏

你在学习文章相关的知识吗?本文《Python 基本介绍》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!

Python 基本介绍

什么是python?

python 将自己描述为一种“解释性、交互式、面向对象的编程语言”,还支持“面向对象编程之外的多种编程范式,例如过程式编程和函数式编程”。


为什么要创建python?

python 的诞生是为了将 modula-3 和 abc 编程语言的优势结合成一种独立的编程语言。 python 将整体语法和用于异常的语义归功于 modula-3 语言,但 abc 语言和代理 set 语言也有类似的灵感。


为什么选择python?

python 将自己描述为“一种高级通用编程语言,可以应用于许多不同类别的问题”。 python 标准库涵盖了开发人员的多个关注点:

string processing internet protocols software engineering operating system interfaces
regular expressions http unit testing system calls
file comparisons ftp logging file systems
unicode smtp, xml-rfc, & more profiling tcp/ip sockets

比较 python 和 javascript

首先,我们最好了解为什么有这么多编程语言可供开发人员使用。简单的答案是,虽然许多编程语言可以执行类似的过程,但有些语言能够更好地处理这些执行。根据 linsi tuttle 在 wgu(西部州长大学)网站上的文章:

每种编程语言都是针对特定应用而设计的,并且具有独特的优点和局限性。根据项目的不同,一种语言在速度效率、多功能性或可扩展性方面可能比另一种语言更适合。

考虑到这一点,让我们看看 estefania cassingena navone 在她比较 python 和 javascript 的文章中的观察结果:

python javascript
it is widely used in scientific and specialized applications. it is widely used for web development, user-facing functionalities, and servers.
used in data science, artificial intelligence, machine learning, computer vision and image processing. used in web development, especially for making interactive and dynamic content for web applications.
it can be used for web development; python is typically used for back-end development. it can be used to develop both the back-end and front-end of the application.

来自 python 3 的示例

函数调用

我认为我们最好以简单的事情为基础。让我们从基础开始,如何使用 python 将消息记录到控制台?


print("hello world!");


这会向我们的控制台输出一个非常基本的内容,虽然现在可能没用,但在我们继续学习语言的同时,它肯定可以对故障排除很有用!


# output => "hello world!"



变量和数据类型

根据python,变量在使用之前不需要声明,也不需要声明类型。尤其重要的是要知道,在 python 中,每个变量都是一个对象。

一开始可能很难理解这一点,所以让我们来看看一些变量声明和赋值。


first_name = 'jolly' # string with single quotes
last_name = "roger" # string with double quotes

height = 6 # integer number
age = 36.253256 # float number

is_liar = true # boolean

# concatenation example
print(first_name + " " + last_name + " sails the high seas!")

# interpolation example
print("at %d years old he stands at %d feet tall!" %(age, height))


请注意,在上面的示例中,我们避免使用驼峰式命名法,而是使用蛇形命名法。这样做主要是因为python 的官方风格指南在许多示例中使用了snake_case。如果您对更多样式建议感兴趣,可以在此处查看文档。

现在让我们快速看一下我们的输出,因为我们在 print 语句的两种用法中所做的事情略有不同。这就是我们的输出:


# output => "jolly roger sails the high seas!"
# output => "at 36 years old, he stands at 6 feet tall!"


+ 运算符期望提供给它的数据类型匹配。换句话说,如果 + 运算符带有数字,那么它将尝试计算这些数字。如果 + 运算符与字符串一起使用,那么它将尝试将两个项目连接成一个字符串。

在第一个示例中,我们本质上执行了字符串连接。这很棒,而且它会起作用,因为在这种情况下,+ 运算符用于相同数据类型(字符串)的项目。然而,在第二个示例中,这不起作用!

在第二个示例中,我们要完成字符串插值。为此,我们可以在字符串中创建占位符 (%s %d %f),然后我们可以按顺序将参数传递给这些占位符 %('cat', 3, 4.56231)。


代码块和缩进

在 javascript 中,我们通常通过使用大括号 {...} 来指示代码块的开始,大括号包含一组要执行的代码。然而,python 处理这个概念的方式有点不同……这就是其他语言的良好习惯可以提供帮助的地方。


x = 1

if x == 1:
    print("x is 1.")


在这种情况下,python 使用 缩进 来了解代码块何时开始和结束。标准缩进要求标准 python 代码使用四个空格。如果我们在没有缩进的情况下编写此行,我们将收到错误 indentationerror: expected an indented block 。


条件语句和表达式

让我们尝试将代码块的新知识应用到变量和数据类型部分中的示例。在这种情况下,我们有一个未使用的布尔值,我们现在要实现它。


first_name = 'jolly' # string with single quotes
last_name = "roger" # string with double quotes

height = 6 # integer number
age = 36.253256 # float number

is_liar = true

if is_liar:
    print("%s %s lied to you!" %(first_name, last_name))
else:
    print(first_name + " " + last_name + " sails the high seas!")
    print("at %d years old he stands at %d feet tall!" %(age, height))


现在我们已经创建了一个代码块,并且此代码块仅在表达式为真时执行。在此示例中 is_liar 指向 true 的值,因此我们的输出将是:


# output => "jolly roger lied to you!"


还需要注意的是,python 能够进行条件链接。 if 语句后可以跟一个或多个 elif 语句,也可以跟一个简单的 else 语句。


循环

在python中,有两种循环或迭代的方式:for循环和while循环。在这种情况下,我们可以从一个使用 range 函数的简单示例开始。


for item in range(1, 11):
    print(item)


在此示例中,range() 函数表示循环的开始和停止条件。这是因为 range() 函数返回一个列表数据结构(在 javascript 中,您会将此结构称为数组)。如果我们继续了解这些知识,我们可以重新构建我们如何形象化这个问题:


for item in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
    print(item)


  1. 函数 range(1, 11) 返回一个列表。
  2. 列表指向 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]。
  3. 对于该列表中的每个项目,我们尝试 print() 它。

考虑控制流语句也很重要,它可以用来改变代码的评估和执行顺序。两个常见的语句是 continue 和 break 语句。让我们将其中之一集成到我们的循环中。


for item in range(1, 11):
    if item % 2 == 0: # if the item is even
        continue      # continue to next iteration
    else:
        print(item)   # else print the item


在这种情况下,我们使用 continue 语句继续下一次迭代,但前提是当前项是偶数。否则,我们会点击 else 块并打印该数字! continue 语句和break 语句有时是可选的。如果您担心无限循环,请考虑实现这些语句。关于这一点,让我们看一下 while 循环!


count = 0
while true:
    print(count)
    count += 1
    if count >= 5:
        break


在这种情况下,我们技术上声明了一个可以无限迭代的循环。然而,在这种情况下,我们适当地包含了一个基本案例。每当count变量大于或等于5时,我们通过break语句退出整个循环。

如果我们在这个例子中没有break语句,我们将创建一个无限循环。我们可以重组或以其他方式重新设计我们的代码,这样就不需要break语句了。如果我们想完成同样的事情,我们可以像这样重新设计我们的代码:


count = 0
while (count < 5):
    print(count)
    count += 1


最终我们取得了相同的结果,我们只是不得不重新思考我们的方法。 python 提供了多种解决问题的方法,因此通常可以通过多种不同的方式获得相同的结果。


功能

啊,可重用的代码,我亲爱的。 python 将函数描述为“一种将代码划分为有用块的便捷方法,使我们能够对代码进行排序、使其更具可读性、重用它并节省更多时间”。考虑到这一点,让我们开始讨论如何制作一些可重用的代码!


def describe_me(name = none, age = none, hobbies = none):
    # code for the function would be here!


在上面的示例中,我们使用 def 关键字来指示我们正在定义一个新函数。该函数将被称为describe_me,它可以接受三个参数:

  1. 字符串
  2. 数字(浮点数或整数)
  3. 兴趣爱好列表

请注意,当我们定义这三个参数时,我们还为它们分配了 none 值。我们实际上在这里所做的是将默认值设置为 none,这样如果没有提供参数,那么我们的代码仍然会尝试执行。让我们在下面的示例中继续扩展这个函数。


def describe_me(name = none, age = none, hobbies = none):
    if (name and age):
        print('my name is %s and i am %d years old.' %(name, age))
    elif (name):
        print('my name is %s.' %(name))


太好了,现在我们已经建立了两个条件表达式来查看我们正在处理哪些数据。我们的第一个条件检查是否为名称参数和年龄参数提供了参数;如果它解析为 true,则一条消息将打印到控制台。如果提供了姓名参数,但没有提供年龄,则会打印一条替代消息。

到目前为止,我们所做的一切都是有效的,但我们仍然没有解决爱好参数的使用方式。让我们看看如果我们添加一个循环来迭代爱好集合会是什么样子。


def describe_me(name = none, age = none, hobbies = none):
    if (name and age):
        print('my name is %s and i am %d years old.' %(name, age))
    elif (name):
        print('my name is %s.' %(name))

    if (hobbies and (type(hobbies) is list)):
        for hobby in hobbies:
            if (type(hobby) is str):
                print('%s is a hobby of mine.' %hobby)

describe_me('jolly roger', 36, ['sailing', 2, 'treasure-hunting', 3, 4, true])


我们在这里扩展了我们的代码,但它到底在做什么?现在我们正在检查 hobbies 参数是否收到了参数,并且我们还在检查以确保该参数是一个列表。如果第一次检查解析为 true,那么我们尝试执行代码块内的所有内容,这应该输出以下消息:


# output => 'my name is jolly roger and i am 36 years old.'
            'sailing is a hobby of mine.'
            'treasure-hunting is a hobby of mine.'



课程

类本质上是一个模板,您可以重用它来创建新的对象实例。如果您不熟悉类的概念,那么这可能听起来真的令人困惑,但我们将在此前提下进行扩展。


class car:
    year = 0
    make = ''
    model = ''


让我们首先定义 car 类对象的内容,在本例中,它有几个变量,这些变量被初始化为我们想要存储在其中的数据类型。那么使用这个基本模板,我们如何创建一个作为 car 类实例的新对象?


my_car = car()

my_car.year = 2007
my_car.make = 'toyota'
my_car.model = 'camry'


我们首先创建一个变量 my_car,它等于 car 类的新实例。创建新对象后,我们将其中的变量重新分配为我们想要的值。然而,我们当前的问题是我们必须单独打印每个变量的值。


print(my_car)        # => <__main__.car object at 0x7f9940979f10>

print(my_car.year)   # => 2007
print(my_car.make)   # => toyota
print(my_car.model)  # => camry


让我们通过向 car 类添加一些额外的功能来完成此任务。我们将向该类添加一个新方法,该方法在调用时将打印实例的年份、品牌和型号。


class Car:
    year = 0
    make = ''
    model = ''
    def describe_me(self):
        print(self.year)
        print(self.make)
        print(self.model)


太好了,现在我们已将此功能添加到我们的 car 类中。那么这对我们意味着什么呢?现在我们可以创建遵循我们的汽车模板的对象的许多实例!需要注意的是,您可以通过几种不同的方式来定义类,因此不要觉得您在这里受到太多限制!


结论

我希望这个介绍能让您了解 python 和其他语言之间的差异。我仍在学习很多关于 javascript 和全栈开发的知识,所以不幸的是我没有花那么多时间在 python 上。然而,我认为作为开发人员探索适合您的工具包的选项是一件好事!

如果您想了解更多有关python的信息,您可以查看文档以深入研究概念。如果您正在寻找适合初学者的教程,那么我强烈建议您查看 learn python 组织网站。

好了,本文到此结束,带大家了解了《Python 基本介绍》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多文章知识!

声明:本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>