第一部分 基础知识
- 变量和简单的数据类型
- 字符串
- 数
- 注释
- python之禅
变量的命名和使用
变量常被描述为可用于存储值的盒子,变量是可以赋给值的标签
也可以说变量指向特定的值。
message = "Hello python world!"
print(message)
运行结果:
Hello python world
变量message被赋值于字符串hello python world
变量的命名规则和使用
- 变量名只能包含字母,数字和下划线。变量名能以字母或下划线打头,但不能以数字打头。列如,可将变量命名为 message_1,但不能将其命名为 1_message
- 变量名不能包含空格,但能使用下划线来分割其中的单词。列如,变量名 greeting_message 可行,但变量名greeting message 会引发错误 。
- 不要将Python关键字和函数名作为变量名,即不要使用Python保留用于特殊用途的单词。如:print
- 变量名应即简短又具有描述性。列如,name比n好,student_name比s_n好。
- 慎用小写字母l和o,因为它们可能被看错成数字1和0
简单的数据类型
整数
在 Python 中对整数可以使用加(+)减(-)乘(*)除(/)或者乘方运算(**)
>>> 3 + 5
8
>>> 12 - 6
6
>>> 4 * 4
16
>>> 14 / 2
7
>>> 3 ** 3
27
各个运算符有各自的运算顺序,跟其他语言相同,可以通过()来修改运算顺序
浮点数
Python将所有带小数点的数称为浮点数
>>> 0.1 + 0.1
0.2
>>> 0.2 + 0.2
0.4
>>> 2 * 0.1
0.2
>>> 2 * 0.2
0.4
但需要注意的是,结果包含小数位数可能是不确定的:
>>> 0.2 + 0.1
0.30000000000000004
>>> 3 * 0.1
0.30000000000000004
整数和浮点数
将任意两个数相除时,结果总是浮点数。即使这两个数都是整数且能整数:
>>> 4 / 2
2.0
常量
常量类似于变量,Python没有内置的常量类型。但通常程序员默认会把全大写来指出应将某个变量视为常量。其值应始终不变:
MAX_CONNECTIONS = 5000
字符串
字符串就是一系列字符。在python中用引号括起来的都是字符串,其中引号可以是单引号,也可以是双引号。列如:
"This is a string"
'This is also a string'
修改字符串大小写的方法:
name = " ada lovelace "
print(name.title())
print(name.upper())
print(name.lower())
print(name.strip())
上述代码:
- title()函数可以将字符串中每个单词的首字母大写
- upper()函数可以将字符串的所有字母大写
- lower()函数可以将字符串中的所有字母小写
- strip()函数可以剔除字符串两边的空白,也可以使用rstrip()与lstrip()分别剔除右边或左边的空白
合并(拼接)字符串:
Python使用加号(+ )来合并字符串。在这个示例中,我们使用+ 来合并first_name 、空格和last_name ,以得到完整的姓名,其结果如下:
first_name = "ada"
last_name = "lovelace"
full_name = first_name + " " + last_name
print(full_name)
#输出:ada lovelace
first_name = "ada"
last_name = "lovelace"
full_name = first_name + " " + last_name
print("Hello, " + full_name.title() + "!")
#输出:Hello, Ada Lovelace!
注释
在python中,注释用井号**(#)**标识,井号后面的内容都会被python解释器忽略
# 向大家问好。
print("Hello Python pepole!")
Python解释器将忽略第一行,只执行第二行。
Hello Python people!
在大多数编程语言中,注释是一项很有用的功能。
Python之禅
>>> import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
>>>
翻译如下:
优美胜于丑陋(Python 以编写优美的代码为目标)
明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)
可读性很重要(优美的代码是可读的)
即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)
不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)
当存在多种可能,不要尝试去猜测
而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)
虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )
做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)
如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)
命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)