学习Python:从零到英雄

首先,什么是Python?根据其创建者Guido van Rossum的说法,Python是:

“高级编程语言及其核心设计哲学全都与代码可读性和一种语法有关,该语法使程序员可以用几行代码表达概念。”

对我而言,学习Python的第一个原因是它实际上是一种漂亮的 编程语言。编写代码并表达我的想法是很自然的。

另一个原因是我们可以通过多种方式在Python中使用编码:数据科学,Web开发和机器学习在这里大放异彩。Quora,Pinterest和Spotify都使用Python进行后端Web开发。因此,让我们学习一下。

基础

1.变量

您可以将变量视为存储值的单词。就那么简单。

在Python中,定义变量并为其设置值确实很容易。假设您要将数字1存储在名为“ one”的变量中。我们开始做吧:

one = 1

那有多简单?您刚刚将值1分配给变量“ one”。

two = 2
some_number = 10000

您可以将任何其他分配给所需的其他变量。如上表所示,变量“ two ”存储整数2,而“ some_number ”存储10,000

除了整数,我们还可以使用布尔值(真/假),字符串,浮点数和许多其他数据类型。

# booleans
true_boolean = True
false_boolean = False

# string
my_name = "Leandro Tk"

# float
book_price = 15.80

2.控制流:条件语句

“ If ”使用表达式评估语句是True还是False。如果为True,则执行“ if”语句中的内容。例如:

if True:
  print("Hello Python If")

if 2 > 1:
  print("2 is greater than 1")

2大于1,因此将执行“打印”代码。

如果“ if ”表达式为false,则将执行“ else ”语句。

if 1 > 2:
  print("1 is greater than 2")
else:
  print("1 is not greater than 2")

1不大于2,因此将执行“ else ”语句中的代码。

您还可以使用“ elif ”语句:

如果 1  >  2:
  打印(“ 1大于2”)
elif  2  >  1:
  打印(“ 1不大于2”)
其他:
  打印(“ 1等于2”)

3.循环/迭代器

在Python中,我们可以以不同的形式进行迭代。我将谈论两个:while for

While Looping:当语句为True时,将执行块中的代码。因此,此代码将打印从110的数字。

num = 1

while num <= 10:
    print(num)
    num += 1

同时循环需要一个“循环条件。如果它保持True,它将继续迭代。在这个例子中,当num11循环条件等号False

另一个基本的代码可以更好地理解它:

loop_condition  = 真

while  loop_condition:
    打印(“循环条件保持:%s”  %(loop_condition))
    loop_condition  = 错误

循环条件True如此它保持迭代-直到我们把它设置为False

对于循环:您将变量“ num ”应用于该块,“ for ”语句将为您进行迭代。此代码将打印与while代码相同的内容:从110

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

看到?很简单。范围从开始1一直到11第th个元素(1010th个元素)。

列表:收藏| 数组| 数据结构

假设您要将整数1存储在变量中。但也许现在您想存储2和3、4、5…

我是否还有另一种方式可以存储我想要的所有整数,但不能存储数百万个变量?您猜对了–确实存在另一种存储方式。

List是一个集合,可用于存储值列表(例如所需的这些整数)。因此,让我们使用它:

my_integers = [1, 2, 3, 4, 5]

真的很简单。我们创建了一个数组并将其存储在my_integer上

但是也许您在问:“如何从这个数组中获取价值?”

好问题。List有一个叫index的概念。第一个元素的索引为0(零)。第二个为1,依此类推。你明白了。

为了更加清楚,我们可以用其索引表示数组和每个元素。我可以画出来:

使用Python语法,也很容易理解:

my_integers = [5, 7, 1, 3, 4]
print(my_integers[0]) # 5
print(my_integers[1]) # 7
print(my_integers[4]) # 4

想象一下,您不想存储整数。您只想存储字符串,例如您的亲戚名字列表。我的看起来像这样:

relatives_names  = [
  “俊明”,
  “朱莉安娜”,
  “ Yuji”,
  “布鲁诺”,
  “ Kaio”
]

打印(relatives_names [ 4 ])#Kaio

它的工作方式与整数相同。真好

我们刚刚了解了Lists索引如何工作。但是我仍然需要向您展示如何向List数据结构添加元素(将项目添加到列表)。

向a添加新值的最常见方法Listappend。让我们看看它是如何工作的:

bookshelf = []
bookshelf.append("The Effective Engineer")
bookshelf.append("The 4 Hour Work Week")
print(bookshelf[0]) # The Effective Engineer
print(bookshelf[1]) # The 4 Hour Work Week

append非常简单。您只需要应用元素(例如“有效工程师”)作为append参数。

好吧,关于Lists让我们谈谈另一种数据结构。


很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:553215015


 

词典:键值数据结构

现在我们知道它们Lists是用整数索引的。但是,如果我们不想使用整数作为索引怎么办?我们可以使用的某些数据结构是数字,字符串或其他类型的索引。

让我们了解Dictionary数据结构。Dictionary是键值对的集合。看起来是这样的:

dictionary_example = {
  "key1": "value1",
  "key2": "value2",
  "key3": "value3"
}

是指向索引 。我们如何获得Dictionary 价值?您猜对了-使用。让我们尝试一下:

 
dictionary_tk = {
  "name": "Leandro",
  "nickname": "Tk",
  "nationality": "Brazilian"
}

print("My name is %s" %(dictionary_tk["name"])) # My name is Leandro
print("But you can call me %s" %(dictionary_tk["nickname"])) # But you can call me Tk
print("And by the way I'm %s" %(dictionary_tk["nationality"])) # And by the way I'm Brazilian

我创建了一个Dictionary关于我的。我的名字,昵称和国籍。这些属性是Dictionary 关键

当我们学会了如何访问List使用索引,我们还可以使用索引(Dictionary上下文中)来访问存储在Dictionary

在示例中,我使用存储在中的所有值打印了一个关于我的短语Dictionary。很简单,对吧?

另一个很酷的事情Dictionary是,我们可以使用任何东西作为值。在Dictionary 我创建的中,我想在其中添加密钥“ age”和我的真实整数年龄:

dictionary_tk  = {
  “ name”:“ Leandro”,
  “昵称”:“ Tk”,
  “国籍”:“巴西”,
  “年龄”:24
}

print(“我的名字是%s”  %(dictionary_tk [ “ name” ]))#我的名字是Leandro
print(“但是你可以叫我%s”  %(dictionary_tk [ “ nickname” ]))#但是你可以叫我Tk
print(“而且我是%i和%s”  %(dictionary_tk [ “ age” ],dictionary_tk [ “国籍” ]))#而且我是巴西人

在这里,我们有一个(年龄)(24)对,使用string作为键,并使用integer作为

正如我们所做的那样Lists,让我们学习如何向中添加元素Dictionary。指向价值关键  价值的重要部分Dictionary。当我们谈论向其添加元素时,也是如此:

dictionary_tk = {
  "name": "Leandro",
  "nickname": "Tk",
  "nationality": "Brazilian"
}

dictionary_tk['age'] = 24

print(dictionary_tk) # {'nationality': 'Brazilian', 'age': 24, 'nickname': 'Tk', 'name': 'Leandro'}

我们只需要给key赋一个即可。这里没什么复杂的,对吧?Dictionary

迭代:遍历数据结构

正如我们在Python基础知识中所了解的那样,List迭代非常简单。我们Python 开发人员通常使用For循环。我们开始做吧:

bookshelf = [
  "The Effective Engineer",
  "The 4 hours work week",
  "Zero to One",
  "Lean Startup",
  "Hooked"
]

for book in bookshelf:
    print(book)

因此,对于书架中的每本书,我们(可以使用它来做所有事情)打印它。非常简单直观。那是Python。

对于散列数据结构,我们也可以使用for循环,但是我们应用了key

dictionary = { "some_key": "some_value" }

for key in dictionary:
    print("%s --> %s" %(key, dictionary[key]))
    
# some_key --> some_value

这是一个如何使用它的示例。对于每一个keydictionary我们printkey及其相应value

另一种方法是使用该iteritems方法。

 
dictionary = { "some_key": "some_value" }

for key, value in dictionary.items():
    print("%s --> %s" %(key, value))

# some_key --> some_value

我们确实将两个参数命名为keyvalue,但这不是必需的。我们可以给他们起任何名字。让我们来看看它:

dictionary_tk = {
  "name": "Leandro",
  "nickname": "Tk",
  "nationality": "Brazilian",
  "age": 24
}

for attribute, value in dictionary_tk.items():
    print("My %s is %s" %(attribute, value))
    
# My name is Leandro
# My nickname is Tk
# My nationality is Brazilian
# My age is 24

我们可以看到我们使用attribute作为的参数Dictionary key,并且可以正常工作。大!

类和对象

一点理论:

对象代表现实世界中的对象,例如汽车,狗或自行车。对象具有两个主要特征:数据行为

汽车具有数据,例如车轮数量,门数量和座位容量。它们还表现出一些行为:它们可以加速,停止,显示还剩多少燃料以及许多其他事情。

我们确定数据属性行为方法在面向对象的编程。再次:

数据→属性和行为→方法

而一个是从中创建单个对象的蓝图。在现实世界中,我们经常发现许多具有相同类型的对象。像汽车。相同的品牌和型号(都具有发动机,车轮,门等)。每辆汽车都是根据相同的蓝图建造的,具有相同的组件。

Python面向对象的编程模式:ON

Python作为一种面向对象的编程语言,具有以下概念:classobject

类是一个蓝图,是其对象的模型。

同样,一个类只是一个模型,或者是一种定义属性行为的方式(正如我们在理论部分所讨论的)。例如,车辆具有其自己的属性,这些属性定义什么对象是车辆。车轮数量,油箱类型,座位容量和最大速度都是车辆的属性。

考虑到这一点,让我们看一下类的Python语法:

class Vehicle:
    pass

car该类对象(或实例)。 Vehicle

请记住,我们的车辆类别具有四个属性:车轮数量,油箱类型,座位容量和最大速度。我们在创建车辆对象时设置所有这些属性。因此,在这里,我们定义我们的以在其启动时接收数据:

class Vehicle:
    def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity):
        self.number_of_wheels = number_of_wheels
        self.type_of_tank = type_of_tank
        self.seating_capacity = seating_capacity
        self.maximum_velocity = maximum_velocity

这是两个方法的实现:number_of_wheelsset_number_of_wheels。我们称之为gettersetter。因为第一个获取属性值,第二个为属性设置新值。

在Python中,我们可以使用@propertydecorators)定义getterssetters。我们来看一下代码:

class Vehicle:
    def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity):
        self.number_of_wheels = number_of_wheels
        self.type_of_tank = type_of_tank
        self.seating_capacity = seating_capacity
        self.maximum_velocity = maximum_velocity
    
    @property
    def number_of_wheels(self):
        return self.__number_of_wheels
    
    @number_of_wheels.setter
    def number_of_wheels(self, number):
        self.__number_of_wheels = number

我们可以将这些方法用作属性:

tesla_model_s = Vehicle(4, 'electric', 5, 250)
print(tesla_model_s.number_of_wheels) # 4
tesla_model_s.number_of_wheels = 2 # setting number of wheels to 2
print(tesla_model_s.number_of_wheels) # 2

封装:隐藏信息

封装是一种限制直接访问对象的数据和方法的机制。但是,与此同时,它有助于对该数据(对象的方法)进行操作。

封装可以用来隐藏数据成员和成员函数。在这种定义下,封装意味着对象的内部表示通常在对象定义之外的视图中是隐藏的。” —维基百科

对象的所有内部表示都从外部隐藏。只有对象可以与其内部数据进行交互。

首先,我们需要了解publicnon-public实例变量和方法的工作。

公共实例变量

对于Python类,我们可以public instance variable在构造函数方法中初始化。让我们看看这个:

在构造方法中:

class Person:
    def __init__(self, first_name):
        self.first_name = first_name

在这里,我们将first_name值作为参数应用到public instance variable

tk = Person('TK')
print(tk.first_name) # => TK

在班级内:

class Person:
    first_name = 'TK'

继承:行为和特征

某些对象有一些共同点:它们的行为和特征。

例如,我从父亲那里继承了一些特征和行为。我继承了他的眼睛和头发作为特征,继承了他的不耐烦和内向作为行为。

在面向对象的编程中,类可以从另一个类继承通用特征(数据)和行为(方法)。

 

在这里还是要推荐下我自己建的Python开发学习群:553215015,群里都是学Python开发的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2020最新的Python进阶资料和高级开发教程,欢迎进阶中和进想深入Python的小伙伴!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

平静愉悦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值