学习地址:
https://www.kaggle.com/learn/python
注:注册个人账号需要翻墙确认,学习形式Jupyter notebook
学习目录:
1. Hello, Python
- 简单介绍python的常量、变量赋值以及算术运算
2. 练习: Syntax, Variables, and Numbers
3. Functions and Getting Help
- 函数定义及调用, 并使用python内建文档
4. 练习: Functions and Getting Help
5. Booleans and Conditionals
- 使用布尔代数进行分支逻辑
6. 练习: Booleans and Conditionals
7. Lists
- 列表操作,包括下标、切片和转变
8. 练习: Lists
9. Loops and List Comprehensions
- while循环
10. 练习: Loops and List Comprehensions
11. Strings and Dictionaries
- 使用字符串和字典s
12. 练习: Strings and Dictionaries
13. Working with External Libraries
- 导入扩展库
14. 练习: Working with External Libraries
详细信息:
欢迎来到Kaggle学习之Python课程。本课程将涵盖在使用Python进行数据科学之前需要用到的基本Python技能。这些课程是针对那些具有某些先前编码经验的人,他们希望将Python添加到他们的程序集或者提高他们的Python技能。
这一课将简要介绍Python语法、变量赋值和算术运算符。如果你有以前的Python经验,你可以直接跳过练习。
Hello, Python!
注:本文在原网站是使用Jupyter notebook实现,交互性强,并支持实时运行,本文只展示对应的内容,其中ln表示输入,output表示输出。
In [1]:
spam_amount = 0
print(spam_amount)
# Ordering Spam, egg, Spam, Spam, bacon and Spam (4 more servings of Spam)
spam_amount = spam_amount + 4
if spam_amount > 0:
print("But I don't want ANY spam!")
viking_song = "Spam " * spam_amount
print(viking_song)
上述代码有很多内容需要拆开讲,该程序演示了Python代码的语法及其工作原理,下面让我们从上到下运行代码。
In [2]:
spam_amount = 0
变量赋值!在这里,创建了一个名为spam_amount
的变量,并使用=
Python的赋值运算符赋值为0。
旁白:如果你已经用某些其他语言编程(比如Java或C++),你可能会注意到Python在赋值之前不需要做的一些事情有:
- 在分配值给它之前,我们不需要“声明”
spam_amount
变量;- 我们不需要告诉Python将引用什么类型的
spam_amount
值。事实上,我们甚至可以重新分配spam_amount
表示不同类型的内容,比如字符串或布尔值。
In [3]:
print(spam_amount)
输出:
0
函数调用。print
是一个非常有用的内置Python函数,它显示在屏幕上传递给它的值。我们通过调用括号后面的函数来调用函数,函数的输入(或参数)在它们之间。
In [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)右侧的表达式,然后将该值分配给左侧的变量。
In [5]:
if spam_amount > 0:
print("But I don't want ANY spam!")
输出:
But I don't want ANY spam!
条件语句是之后讨论的内容,但即使你以前从未编码过,你也可以猜出这是什么。Python因其可读性和语法的简单性而受到重视。
请注意,我们指出了哪些代码属于if。如果spam_amount
值是正的,则打印。若不满足该条件,if后的语句都不执行。
在if行结尾的冒号(:)指示一个新的“代码块”即将出现。随后缩进的行(从额外的4个空间开始)是代码块的一部分。你可能熟悉其他使用{括号}来标记代码块的开始和结束的语言。Python对有意义的空白空间的使用对于习惯于其他语言的程序员来说常常是令人惊讶的,但是在实践中,它可能导致比不强制代码块缩进的语言更加一致和可读的代码。
处理VijiSang-Toug的后期行没有额外的4个空格,因此它们不是IF的代码块的一部分。稍后,当我们开始定义函数和使用循环时,我们会看到更多缩进代码块的例子。
这个代码片段也是我们在Python中第一次看到一个字符串:
"But I don't want ANY spam!"
字符串可以用双引号或单引号标记。
In [6]:
viking_song = "Spam " * spam_amount
print(viking_song)
输出:
Spam Spam Spam Spam
运算符可以用来乘两个数字(3x3得9),但有趣的是,我们还可以将字符串乘以一个数字,以得到重复多次的版本。
Python中的数字和算术
我们已经看到了一个包含一个以上变量的变量的例子:
In [7]:
spam_amount = 0
“Number”是一个很好的非正式名称,但是如果我们想要更具技术性,我们可以问Python它将如何描述spam_.:
In [8]:
type(spam_amount)
输出
int
它是整数的int类型。在Python中我们遇到了另一种数字:
In [9]:
type(19.95)
输出
float
浮点数是一个小数位数的数字,非常有用,用来表示重量或比例等事物。
Type()是我们已经看到的第二个内置函数,能够问Python“这是什么样的东西”是非常有用的.
一个与数字有关的自然事物是执行算术。我们已经看到了+运算符的加法,以及运算符乘法(排序)。Python也包含其他基本操作:
In [10]:
print(5 / 2)
print(6 / 2)
输出
2.5
3.0
/
总是给我们一个浮点数。
//
操作符给出一个舍入到下一个整数的结果。
In [11]:
print(5 // 2)
print(6 // 2)
输出
2
3
你可能会在编码问题中看到一个例子——操作顺序。
我们在小学学习的算术有关于操作评估顺序的约定,有些人用助记符来记忆这些单词,如PMEDAS括号、指数、乘法、除法、加减法。Python遵循类似的规则,首先执行计算。它们大多是很直观的。
In [12]:
8 - 3 + 2
输出
7
In [13]:
-3 + 4 * 2
输出
5
有时,默认的操作顺序不是我们想要的:
In [14]:
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以不同的顺序来评估子表达式(或者只是为了使代码更易于阅读)。
In [15]:
total_height_meters = (hat_height_cm + my_height_cm) / 100
print("Height in meters =", total_height_meters)
输出:
Height in meters = 2.15
内建函数的工作:最小和最大收益和最大值分别为
In [16]:
print(min(1, 2, 3))
print(max(1, 2, 3))
输出:
1
3
abs返回其参数的绝对值:
In [17]:
print(abs(32))
print(abs(-32))
输出:
32
32
除了作为Python的两种主要数值类型的名称之外,int和float还可以被调用为将其参数转换为对应类型的函数:
In [18]:
print(float(10))
print(int(3.33))
# They can even be called on strings!
print(int('807') + 1)
输出:
10.0
3
808