本文为Kaggle Learn的Python课程的中文翻译,原文链接为:https://www.kaggle.com/colinmorris/hello-python

欢迎来到Kaggle Learn的Python课程。本课程将介绍在开始使用Python进行数据科学之前需要的基本Python技能。这些课程针对那些具有一些编程经验的人,希望将Python添加到他们的项目中或提高他们的Python技能。 (如果你是第一次编程,你可能会发现这门课程节奏太快。你可以先看看这个:these "Python for Non-Programmers" learning resources

第一课将简要介绍Python语法,变量赋值和算术运算符。 如果之前有Python经验,您可能希望直接跳到练习。练习链接如下:https://www.kaggle.com/account/login?ReturnUrl=%2fkernels%2ffork%2f1275163

这些课程借鉴和改编来自A Whirlwind Tour of Python的一些内容。 感谢作者Jake VanderPlas在许可下发布它。 如果您对Python的更全面的理论基础感兴趣,我建议您查看WTOP。

Hello,Python!

Python是以英国喜剧团体Monty Python的名字命名的,那么为什么不让我们的第一个Python程序向他们著名Spam的短剧致敬呢?

只是为了好玩,尝试阅读下面的代码并预测运行时会发生什么。 (如果你不知道,那没关系!)

[1]

spam_amount = 0
print(spam_amount)# Ordering Spam, egg, Spam, Spam, bacon and Spam (4 more servings of Spam)
spam_amount = spam_amount + 4if spam_amount > 0:print("But I don't want ANY spam!")viking_song = "Spam " * spam_amount
print(viking_song)
0
But I don't want ANY spam!
Spam Spam Spam Spam 

这里有很多要介绍的东西! 这个愚蠢的程序演示了Python代码的几个重要方面:它的语法、以及它的工作原理(它的语义)。 让我们从上到下运行代码。

[2]

spam_amount = 0

变量赋值!我们创建一个变量名为spam_amount,使用Python的赋值运算符“=”赋值为0。

注:如果您已经使用其他语言编程(如Java或C ++),您可能会注意到Python不需要我们做的一些事情:

  • 我们不需要在赋值之前声明spam_amount
  • 我们不需要告诉Python spam_amount属于什么类型。 实际上,我们甚至可以继续重新赋值spam_amount来引用不同类型的东西,比如字符串型或布尔型。

[3]

print(spam_amount)
0

一个函数调用。 print是一个非常有用的内置Python函数,它显示传递到屏幕上的值。 我们通过在函数名后面加上()来调用,并在其间输入参数。

[4]

# Ordering Spam, egg, Spam, Spam, bacon and Spam (4 more servings of Spam)
spam_amount = spam_amount + 4

上面一行是一条注释语句,在Python中,注释是由#开头。

接下来我们看一个重新赋值的例子。 重新赋值现有变量的值与创建变量的方式相同 - 它仍然使用“=”赋值运算符。

在这种情况下,我们赋给spam_amount的值包含对其先前值的一些简单算术。 当遇到这一行时,Python会计算右侧表达式(0 + 4 = 4),然后将该值赋给左侧的变量。

[5]

if spam_amount > 0:print("But I don't want ANY spam!")
But I don't want ANY spam!

我们会在后面再介绍条件语句,但是,即使你以前从未有过编程,你也可以猜到它的作用。 Python因其可读性和语法的简单性而备受推崇(有些人甚至将其称为“可执行伪代码”)。

请注意我们如何表示哪些代码属于if语句。 “But I don't want ANY spam!”仅当spam_amount为正数时才打印。但是后面的代码(比如print(viking_song))无论如何都会执行。我们(和Python)如何知道这一点?

if行末尾的冒号(:)表示新的“代码块”即将出现。缩进的后续行(以额外的4个空格开头)是该代码块部分。您可能熟悉使用花括号{}来标记代码块的开头和结尾。 Python对有意义的空白的使用通常对习惯于其他语言的程序员来说是令人惊讶的,但实际上它比不强制执行代码块缩进的语言更有一致性和可读性。

处理viking_song的后续行没有缩进额外的4个空格,因此它们不是if语句代码块的一部分。稍后当我们开始定义函数和使用循环时,我们将看到更多缩进代码块的示例。

这段代码片段也是我们第一次看到Python中的字符串:

"But I don't want ANY spam!"

字符串可以用双引号或单引号标记。 (但是因为这个特定的字符串包含单引号字符,所以当我们试图用单引号括起来,会容易变得混淆,除非我们很小心。)

[6]

viking_song = "Spam " * spam_amount
print(viking_song)
Spam Spam Spam Spam 

星号*运算符可用于两个数字相乘(3 * 3的结果为9),但有趣的是,我们还可以将一个字符串乘以一个数字,以获得多次重复的版本。 Python提供了许多像这样节省时间的技巧,其中*和+运算符具有不同的含义,具体取决于它们应用于何种类型的东西。 (技术术语是运算符重载)。

Python中的数字和算术

上面我们已经看过一个包含数字变量的例子:

[7]

spam_amount = 0

“Number”是一个很好的非正式名称,但如果我们想要更具技术性,我们可以问Python怎样去描述spam_amount的类型:

[8]

type(spam_amount)
int

它是短整型int,在Python中我们还经常遇到另一种数字:

[9]

type(19.95)
float

float是一个带小数位的数字,对于表示权重或比例非常有用。

type()是我们见过的第二个内置函数(在print()之后),它是另一个值得记住的函数。 能够问Python“这是什么样的东西?”非常有用。

我们已经看到+运算符用于加法,而*运算符用于乘法。 Python还为我们提供了计算器上其余基本按钮的功能:

Operator Name Description
a + b Addition Sum of a and b
a - b Subtraction Difference of a and b
a * b Multiplication Product of a and b
a / b True division Quotient of a and b
a // b Floor division Quotient of a and b, removing fractional parts
a % b Modulus Integer remainder after division of a by b
a ** b Exponentiation a raised to the power of b
-a Negation The negative of a

这里有一个有趣的观察是,虽然你的计算器可能只有一个按钮用于除法,但Python可以做两种。 “True division /”基本上是你的计算器所做的:

[10]

print(5 / 2)
print(6 / 2)
2.5
3.0

得出的结果是浮点型。

//运算符给我们一个向下舍入到下一个整数的结果。

[11]

print(5 // 2)
print(6 // 2)
2
3

你能想到这会有用吗? 您可能很快就会在编程问题中看到一个例子。

Order of operations

我们在小学学到了算数运算的顺序。 有些人通过诸如PEMDAS之类的助记符来记住这些: PEMDAS - Parentheses, Exponents, Multiplication/Division, Addition/Subtraction.

Python遵循类似规则。 他们大多非常直观。

[12]

8 - 3 + 27
-3 + 4 * 25

但有时默认的运算顺序不是我们希望的:

[13]

hat_height_cm = 25
my_height_cm = 190
# How tall am I, in meters, when wearing my hat?
total_height_meters = hat_height_cm + my_height_cm / 100
print("Height in meters =", total_height_meters, "?")
Height in meters = 26.9 ?

括号是你的王牌。 您可以添加它们以强制Python以不同的顺序评估子表达式(或者只是为了使代码更易于阅读)。

[14]

total_height_meters = (hat_height_cm + my_height_cm) / 100
print("Height in meters =", total_height_meters)
Height in meters = 2.15

Builtin functions for working with numbers

min 和max返回各自参数的最小和最大值...

[15]

print(min(1, 2, 3))
print(max(1, 2, 3))1
3

abs返回绝对值:

[16]

print(abs(32))
print(abs(-32))32
32

除了作为Python的两个主要数字类型的名称之外,int和float也可以作为将其参数转换为相应类型的函数:

[17]

print(float(10))
print(int(3.33))
# They can even be called on strings!
print(int('807') + 1)10.0
3
808

Your turn!

转到练习笔记本,以获得一些使用语法,变量赋值和数字的实践练习。

1.Hello,Python相关推荐

  1. Github配置(git+vscode+python+jupyter)

    ①下载git 打开 git bash 工具的用户名和密码存储 $ git config --global user.name "Your Name" $ git config -- ...

  2. 【实验楼】python简明教程

    ①终端输入python进入 欣赏完自己的杰作后,按 Ctrl + D 输入一个 EOF 字符来退出解释器,你也可以键入 exit() 来退出解释器. ②vim键盘快捷功能分布 ③这里需要注意如果程序中 ...

  3. 【Kaggle Learn】Python 5-8

    五. Booleans and Conditionals Using booleans for branching logic x = True print(x) print(type(x))''' ...

  4. 【Kaggle Learn】Python 1-4

    [Kaggle Learn]Python https://www.kaggle.com/learn/python 一. Hello, Python A quick introduction to Py ...

  5. 使用python愉快地做高数线代题目~

    今天接触到了python,发现真是极易上手啊!对比c语言是什么鬼东西= = 诶,等下,看完教学文章发现TA在下面写了这句话 如果做了前面的内容你可能已被吸引了,觉得c语言真的是废材! 不...不是的. ...

  6. python 位运算与等号_Python 运算符

    和大多数语言一样,Python也有很多运算符,并且运算符跟其他语言的运算符大同小异接下来一一介绍: 算术运算符: 运算符描述实例 +加 - 两个对象相加a+b的输出结果是30 -减 - 得到复数或者一 ...

  7. python减小内存占用_如何将Python内存占用缩小20倍?

    当程序执行过程中RAM中有大量对象处于活动状态时,可能会出现内存问题,特别是在对可用内存总量有限制的情况下. 下面概述了一些减小对象大小的方法,这些方法可以显著减少纯Python程序所需的RAM数量. ...

  8. python中排序英文单词怎么写_Python实现对文件进行单词划分并去重排序操作示例...

    本文实例讲述了Python实现对文件进行单词划分并去重排序操作.,具体如下: 文件名:test1.txt 文件内容: But soft what light through yonder window ...

  9. python程序如何执行死刑图片_如何判断对象已死

    已死的对象就是不可能被任何途径使用的对象,有以下几种方法判断一个对象是否已经死了: 引用计数 给对象添加一个引用计数器,每当有一个地方引用他,计算器就加 1:当引用失效时,计数器减 1:任何时刻计数器 ...

  10. Python gRPC 安装

    1. 安装依赖库 sudo pip3 install grpcio sudo pip3 install protobuf sudo pip3 install grpcio_tools 2. 生成对应文 ...

最新文章

  1. c++运算符优先级_C语言入门教程-(6)运算符
  2. Router OS之禁止P2P下载
  3. tp6中使用微信支付sdk
  4. 从单体应用到微服务架构演化
  5. Launcher3自定义壁纸旋转后拉伸无法恢复
  6. cpu线程_记w3wp占用CPU过高解决过程Dictionary线程安全
  7. python中的del,remove,pop有什么区别
  8. Ubuntu文本编辑(vi和nano)命令
  9. (二分搜索法尺取法)subsequence
  10. div中赋值html字符串
  11. 目标检测(二十三)--DenseBox
  12. python之socket网络编程
  13. php 2037时间问题
  14. hdu1166 敌兵布阵(模板题 单点修改 + 区间查询)
  15. 彻底搞懂AQS-重点方法精讲 [并发劝退- 哭唧唧]
  16. 从0学开发笔记-数据库基础
  17. 计算机编程入门语言哪个好?
  18. ORA-01653: unable to extend table原因及解决
  19. html中td内容不换行显示,html小技巧之td,div标签里内容不换行
  20. 华为畅享7怎么切换android系统,华为畅享7是什么系统_华为畅享7系统更新-太平洋IT百科...

热门文章

  1. C语言实战:(2)字符串的倒转变换
  2. android蓝牙传输的是字符吗,Android蓝牙接收到的串行数据乱码
  3. 专业对不对口重要吗_应届生求职,专业对口到底重不重要?
  4. go int64转string_go常见问题收录
  5. C. Number of Pairs
  6. 不用电脑怎么设置苹果铃声_苹果手机怎么设置铃声?完整教程分享
  7. 使用Jedis源码生成Jedis.jar
  8. 用mingw链接msvc生成的库时,无定义chkstk问题的解决
  9. half-sync/half-async 和 Leader/Followers 模式的主要区别
  10. WINCE字体动态加载