本文目录
首先说这本《Python编程从入门到实践》第3版(Python Crash Course.3ed Edition by Eric Matthes)的确是很不错的一本入门书,适合像我这样零基础或者基本等于零基础的人。前些年因为当时的工作需要,也多多少少学过些JAVA、C#和PHP;因为自己想要个人主页,asp、xml也断断续续学过,后来直接用了WP就不再学了;至于数据库方面就更少了,只是浅浅的了解过一点MSSQL和mysql。所以买这本零基础入门是恰当的。
废话说完了,开始记笔记。
第一部分 基础知识
第1章 起步
这章没啥可记的,不过我的习惯是不放过书上包括前言和出版信息在内的每一个字。
认真阅读之后可以在自己的计算机上搭建Python的运行和设计环境(初级学习环境)。为简化过程,直接用了书里推荐的Microsoft VS Code(Visual Studio Code)来当做代码编辑器并装了Python扩展插件,使用过程中可以避免习惯尚未养成导致缩进错误或者括号引号不成对。说起这个VS Code,让我想起当年的VS2000,不过他们不是一回事。
Python用的则是官网最新稳定版3.12。
第2章 变量和简单的数据类型
像几乎所有其他语言书一样,先来个Hello World!是错不了的。
print ( " 字符串 " ) #输出字符串内容到屏幕
print ( " Hello Python World ! " ) #代码间的空格不是必须的,有时仅为了便于阅读。
运行成功,基础学习环境搭建完毕。
- 每个变量(Variable)都指向一个值(value),值可以随时修改,Python只记录最新值。
- 变量名只能使用字母、数字、下划线组成,且必须以字母开头,同时,不能包含空格。
- Python自有的关键词和函数不能用于变量名。如:print等
- 大写字母尽量不用于变量名,后面章节会讲到。
- 变量名中要慎用小些l和数字0,有些字体中容易误人成1和O。
既然是初学者,老老实实养成良好习惯是最重要的,听人劝吃饱饭嘛。
同时,Python关键字和内置函数其实并不与我冲突,我一直习惯用汉语拼音来做变量名和函数名。
2.1.1 函数print()用于将其中内容输出到屏幕。
2.3 字符串
- 字符串以双引号””或单引号”包括,要成对使用,嵌套时注意区分。
- 方法(method):upper()、lower()、title()分别用于将字符串输出为:全大写字母、全小写字母,和首字母大写形式。
- 使用方法要用句点
.
告知Python
变量名 = " 字符串变量值 " #创建变量并赋值
变量名 = 数型值 #创建变量并赋值
变量名 . upper() #字符串所有字母大写
变量名 . lower() #字符串所有字母小写
变量名 . title()#字符串所有单次首字母大写
myname = " pollen wang "
print ( myname.upper( ) )
print ( myname.lower( ) )
print ( myname.title( ) )
输出结果依次为:
POLLEN WANG、pollen wang,和Pollen Wang。这并不改变字符串本身的值,仅改变输出结果,除非你把变化后的值赋值给变量。如:myname=myname.title()
2.3.2 f字符串
f字符串就是在字符串的" "
前面加上小写f
,这样就可以在字符串中用花括号{ }
来引用变量,用以输出文本和变量值混合的结果,{ }
中变量的输出结果将是该变量所指向的值,否则就会当做字符串文本处理。如:hello=f"Hello,{myname}!"
和hello=f"Hello,myname!"
的输出结果是不同的。前者输出:Hello,Pollen Wang!而后者输出:Hello,myname!
用f字符串可以灵活控制输出内容,且使代码更易读。
2.3.3 添加空白
制表符\n
和 换行符\t
可以实现在一个字符串中输出多行内容。在字符串中需要的地方直接加入即可。
2.3.4 删除空白
方法rstrip()
、lstrip()
和strip()
,分别用于删除字符串末尾、开头和两端的空白。同样,处理后重新赋值才会改变字符串原来的值。
变量名 . rstrip ( ) #去除字符串 末尾 所有空白(不含中间空白)
变量名 . lstrip ( ) #去除字符串 开头 所有空白(不含中间空白)
变量名 . strip ( ) #去除字符串 两端 所有空白(不含中间空白)
myname=" pollen wang "
myname.rstrip()#去除末尾空白
myname.lstrip()#去除开头空白
myname.strip()#去除两端空白
会分别得到: pollen wang
、pollen wang
,和pollen wang
。
2.3.5 删除前缀和后缀
方法removeperfix()和removesuffix()分别用于删除字符串的前缀和后缀,如url前面的http://和文件扩展名.txt等。
前面几个方法的()并没有实际用到,这两个就用到了。例如要删除文件mydoc.xml的后缀:
变量名 . removeperfix ( ' 字符串值 ' ) #根据参数去除字符串 开头 字符
变量名 . removesuffix ( ' 字符串值 ' ) #根据参数去除字符串 末尾 字符
filename="mydoc.xml"
filename=filename.removesuffix('.xml')#处理字符串记得加引号,单双均可,书中使用单引号。
其实,这两个方法并不是只能去除前缀和扩展名,只是这样比较常用罢了。实际上他们删除的是在方法参数中指定的字符串内容。如上例,可以只删除ml
,保留.x
,最后获得字符串"mydoc.x"
,如果你需要的话。只要是从两端起连续的字符就可以。
2.4 数(number)
整数(integer)和浮点数(float)均可以用于各种数学运算,且Python的算式写法很直接。想计算2乘以5再减4的差的3次方,直接写就可以(Python的乘方用连续两个乘号**
来表示,**
后面的数字代表次方数)。
( 数或变量 运算符 数或变量 ) 运算符 ( 数或变量 运算符 数或变量)
#按照正常的数学运算方式编写算式即可
jisuan = ( 2 * 5 - 4 ) ** 3
- 凡有float参与计算,结果必为float,即使结果是整数,3 + 1.0 = 4.0
- 除法
/
结果必为float,即使4 / 2
结果也会是float 2.0,而不是integer 2。
2.4.4 数中的下划线
这里的下划线 _ 很有趣,它不会参与任何计算,也不会影响输出结果,仅仅用当你处理大数时分位。Python在处理数时,1000000
和1000_000
,以及100_0000
,甚至1_00_0_00_0
都是一视同仁的。
浮点数同样适用。
2.4.5 同时给多个变量赋值
这个算是节约时间并让代码清晰易读的好帮手了。
变量名1 , 变量名2 , 变量名3 = 值1 , 值2 , 值3
#按照顺序给一组变量批量赋值
xing,ming,jiaxiang = 'wang' , 'pollen' , 'shanxi' #我的姓名和故乡
chang,kuan,gao = 600 , 450 , 500 #我的水晶虾缸尺寸
一次解决一组有关联的数据,就会很舒服。只要顺序匹配,并用逗号,
分隔即可。
还可以将不同类型的一组值一次赋值给一组变量,我觉得这种情况可能更实用。如:
bumen,quyu,nianxiaoshou = "业务二部","华北地区",3600
#批量获得部门、区域、年销量这一系列值
print(f"面向{quyu}的{bumen},上年度月均销售量约为:{nianxiaoshou/12}吨/月。")
#在需要时一次性输出,还可以对数型值进行运算
输出结果为:面向华北地区的业务二部,上年度月均销售量约为:300.0吨/月。
2.4.6 常量(constant)
Python中没有内置常量,习惯上一般用全大写字母来命名一个变量,让自己或别人知道它其实是一个常量,在程序整个生命周期内,其值应该保持不变,但这仅用于提醒我等人类,对于Python来说,它仍然是一个变量。
全大写字母变量名 = 常量值 #常量一般写为全大写
例如:我希望明年自行车骑行达到50000km,定义一个常量:ZONGMUBIAO=50000
,这个目标在相关程序执行期间,应该是始终不变的。但是,经过简单计算之后,我发现自己不可能每天至少骑行137km。我不得不根据实际情况适当调整这个总目标。在必要时,Python允许像修改其他变量一样来修改这个常量的值为:5000。
因为常量这个概念在Python中并不存在,所以,程序中的希望实现的常量只能人为的去避免修改它。但是Python似乎提供了其他方法来创建一个不会被修改的值,后面可能会学到。
2.5 注释(comment)
井号#
后面的都是注释,会被Python解释器忽略。
良好的注释习惯会便于代码的检查和修改。
# 注释内容,可以跟在代码后面,也可以另起一行
# 但不能多行,每行注释前必须有井号 #
# 结尾则不需要 。
后来了解到,其实Python是有多行注释的,只是教材在初期没有讲,可能为了避免新手混乱吧。
2.5 补充:多行注释
在Python中使用使用三引号""" """
或者''' '''
来实现多行注释,并且,多行注释不能嵌套。同时,当注释符号出现在字符串中时,不会被解释为注释符,而是像其他内容一样解释为字符串中的一部分。如:
"""
多行注释1
多行注释2
多行注释3
"""
'''
多行注释1
多行注释2
多行注释3
'''
上面的多行注释为正确用法,其中的内容都会被解释器忽略。但下面这种包含在字符串中的注释符则会按照字符串的处理方式进行。
print('''#字符串中的注释符''')
print("""#字符串中的注释符""")
print("'#字符串中的注释符'")
输出结果为:
#字符串中的注释符
#字符串中的注释符
'#字符串中的注释符'
很显然,跟在代码后方的单行注释对于代码的解释会灵活很多,实际当中用量也应该更大。而另起一行的单行注释,有人习惯放在相关代码的上一行,我个人比较习惯放在下一行,这又是个见仁见智的个人习惯问题吧。
至于多行注释,我觉得一般应该是用在源文件头部或者大段代码块的前后,起整体说明的作用吧。
2.6 Python之禅(The Zen of Python,by Tim Peters)
既可意会,也能言传。
>>> import this