1. 变量
1.1 变量命名规则
被赋值的称为变量,即变量需要赋予一个命名
- 变量名只能包含字母、数字和下划线。变量名可以字母或下划线开头,但不能以数字开头
- 变量名不能包含空格,但可使用下划线来分隔其中的单词
- 不要将Python关键字和函数名用作变量名
- 变量名应既简短又具有描述性
- 慎用小写字母l和大写字母O
- 应尽量使用小写作为变量名
Python关键字
FalsedefifraiseNonedelimportreturnTrueelifintryandelseiswhileasexceptlambdawithassertfinallynonlocalyieldbreakfornotclassfromorcontinueglobalpassPython中内置函数
abs()divmod()input()open()staticmethod()all()enumerate()int()ord()str()any()eval()isinstance()pow()sum()basestring()execfile()issubclass()print()super()bin()file()iter()property()tuple()bool()filter()len()range()type()bytearray()float()list()raw_input()unichr()callable()format()locals()reduce()unicode()chr()frozenset()long()reload()vars()classmethod()getattr()map()repr()xrange()cmp()globals()max()reverse()zip()compile()hasattr()memoryview()round()import()complex()hash()min()set()delattr()help()next()setattr()dict()hex()object()slice()dir()id()oct()sorted()
1.2 使用变量
message = "hello world"
print(message) # hello world
a = "hello world"
print(a) # hello world
a = "hello python world"
print(a) # hello python world
1:加入变量,将文本“hello world”跟变量message关联【变量名 = '字符串'】
2:将于message关联的值打印到屏幕
4:加入第二个变量
7-8:在程序中可随时修改变量,解释器逐行阅读,并始终记录变量的最新值
1.3 使用变量时命名错误
如果变量命名有误,运行后,解释器会提供一个traceback
traceback指出解释器尝试运行代码时,在什么地方陷入困境
message_name = "hello world"
print(message_name) # hello world
print(mesage_name) # NameError: name 'mesage_name' is not defined【报错中(traceback)重要的一部分,表明名称没有被定义】
计算机并不关心英文拼写和语法,只关心前后一致
在上述例子可修改mesage_name,也可将message_name改为mesage_name
2. 字符串
【变量名 = '字符串'】
是一系列字符,属于一种数据类型
在Python中,用引号括起来的都是字符串!
引号:单引号or双引号
如果在字符串中出现单引号或者撇号,则用双引号把字符串括起来
反之亦反
2.1 改变字符串大小写
首字母大写:方法title()
全母大写:方法upper()
全字母小写:方法lower()
方法是Python可对数据执行的操作,与变量间用“.“链接
name = "zhAngjIng"
print(name.title()) # Zhang Jing
print(name.upper()) # ZHANG JING
print(name.lower()) # zhang jing
方法
title()、upper()、lower()出现在print函数
每个方法后面有(),提供额外信息以完成方法,本例方法不需要额外信息,所以是空
2.2 合并(拼接)字符串
Python用+号合并字符串
这种合并字符串的方式成为拼接,用于合并不同变量
first_name = "jing"
last_name="zhang"
full_name=last_name + " " + first_name
print(full_name) # zhang jing
3:将信息存汇总储在一个变量中。空格用“”括起来,因为在此空格属于字符串
2.3 制表符和换行符
空白:泛指任何非打印字符,如空格、制表符、换行符
制表符:\t
换行符:\n
print("language:\n\tpython\n\tR")
# Out []: language:
# python
# R
2.4 删除空白
程序会认为空白是有意义的,除非告诉它不是
删除字符串前面空格:方法lstrip()
删除字符串后面空格:方法rstrip()
删除字符串前后空格:方法strip()
a = " python "
print(a)
print(a.lstrip())
print(a.rstrip())
print(a.strip())
b = a.strip()
print(b)
在print中添加方法,是无法消除空格,只能使本次屏幕显示没有空格
想要永久删除空格,必须将删除结果存回变量中(如上例中的b)
2.5 字符串语法错误
在字符串中,正确使用单引号or双引号
如果单引号,但在字符串中有撇号,导致将第1个单引号和撇号作为一个字符串,剩下视为无效Python代码,从而导致错误
双引号亦然
语法突出、自动补全可以有效避免这个问题
3. 数字
Python根据数字的用法不同以不同方式管理
3.1 整数
对整数(int)执行加(+)、减(-)、乘(*)、除(/)、乘方(**)
2 + 35 # 20
count = (2 + 3) * 4
print(count) # 20
空格不影响Python计算表达式的方式,只是方便人在阅读代码时,能迅速确定执行哪些运算
3.2 浮点数
Python将带小数点的数字称为浮点数,指出小数点可以出现在数字的任何位置
各种语言精心设计,以确保不管小数点出现在什么位置,数字的行为都正常
一般正常当做整数看待输入即可
但是结果包含小数位数可能不正确(暂时忽视多余小数位数即可)
count = 0.2 + 0.1
print(count) # 0.30000000000000004
Python2中,3/2=1,因为自动将小数部分去除,可引入浮点数,即3.0/2=1.5(Python3没有此问题)
3.3 函数str()
函数str():将非字符串值表示字符串。可避免类型错误
age=23
message = "happy " + age +"rd Birthday!"
print(message) # TypeError: can only concatenate str (not "int") to str【Python发现一个int的变量(age),程序不知道该如何解读它】
# 添加str(),定义变量类型
age=23
message="happy " + str(age) +"rd Birthday!"
print(message) # happy 23rd Birthday!
4. 注释
使用自然语言在程序中添加说明
# 单行注释,大多用#标识,解释器会自动忽视#后的内容:向大家问好
print("hello people!") # hello people!
'''
多行注释
或者重要的提示注释,用于表示语言中一个函数的功能
'''
5. Python之禅
在Python终端编辑器输入import this
>>> import this
The Zen of Python, by Tim Peters
1 Beautiful is better than ugly.
2 # 优美胜于丑陋(Python以编写优美的代码为目标)
3 Explicit is better than implicit.
4 # 明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
5 Simple is better than complex.
6 # 简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
7 Complex is better than complicated.
8 # 复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
9 Flat is better than nested.
10 # 扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
11 Sparse is better than dense.
12 # 间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)
13 Readability counts.
14 # 可读性很重要(优美的代码是可读的)
15 Special cases aren't special enough to break the rules.
16 Although practicality beats purity.
17 # 即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)
18 Errors should never pass silently.
19 Unless explicitly silenced.
20 # 不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写except:pass风格的代码)
21 In the face of ambiguity, refuse the temptation to guess.
22 # 当存在多种可能,不要尝试去猜测
23 There should be one-- and preferably only one --obvious way to do it.
24 # 而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)
25 Although that way may not be obvious at first unless you're Dutch.
26 # 虽然这并不容易,因为你不是 Python 之父(这里的Dutch是指Guido)
27 Now is better than never.
28 Although never is often better than *right* now.
29 # 做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)
30 If the implementation is hard to explain, it's a bad idea.
31 If the implementation is easy to explain, it may be a good idea.
32 # 如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)
33 Namespaces are one honking great idea -- let's do more of those!
34 # 命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)
目录
一、搭建编程环境
二、变量和简单数据类型
三、列表
四、if语句
五、字典
六、用户输入和while循环
七、函数
八、类
九、文件和异常
