《Python编程:从入门到实践》 是个人觉得非常适合小白入门的一本书。 前面一部分进行了基础知识的讲解,后一部分是三个使用python做的项目。
这篇文章是我个人学习的一个笔记,内容大多来自课本,也有一些是在学习过程中对相关部分搜索后进行的知识补充,非常适合和我一样的小白阅读。
这个系列会随着我日后的学习进度持续更新,希望这个笔记也可以帮到你~
第一章是关于python和这门课用到的文本编辑器 Geany 在不同系统中的配置,并没有知识点,看原书就可以了。
2.2 变量
2.2.1 变量的命名和使用
包含 a-zA-Z1-9_ (字母数字和下划线)(但应尽量避免使用大写字母)不能以数字开头不能使用python关键字或者函数作为变量名(如print)简短且有描述性:
student_name > name_of_student > s_n 避开使用小写L和大写O(容易和0和1 混淆)
2.2 动手试一试
2-1 简单消息:将一条消息存储到变量中,再将其打印出来
# simple_message.pymessage = "hello world"print(message)'''Output:hello world'''
2-2 多条简单消息:将一条消息存储到变量中,将其打印出来;再将变量的值修改为一条新消息,并将其打印出来。
# simple_messages.pymessage = "hello world"print(message)message = "hello python world"print(message)'''Output:hello worldhello python world"'''
2.3 字符串(String)
双引号和单引号都可以使用
同时使用可以print出引号,如:
>>> print("hello 'my' world")hello 'my' world>>> print('"hello world"')"hello world"
2.3.1 使用方法修改字符串的大小写
首字母大写: title() (只有首字母是大写的,后面如果大写会变为小写,如: aBCd → Abcd全大写: upper()全小写: lower()
>>> name = "ada lovelace" >>> print(name.title())Ada Lovelace>>> print(name.upper())ADA LOVELACE>>> print(name.lower())ada lovelace
2.3.2 合并(拼接)字符串
使用 + 拼接string (必须所有都是string,如果是别的格式,如int,需要先 str(1) 才能拼接)
first_name = "ada" last_name = "lovelace" full_name = first_name + " " + last_name # 拼接>>> print(full_name)ada lovelace>>> print("Hello, " + full_name.title() + "!")Hello, Ada Lovelace!>>> message = "Hello, " + full_name.title() + "!" >>> print(message)Hello, Ada Lovelace!
2.3.3 使用制表符或换行符来添加空白
tab: t换行: n(也可以同时使用)
>>> print("tPython") Python>>> print("Languages:nPython")Languages: Python >>> print("Languages:ntPython")Languages: Python
2.3.4 删除空白
lstrip() 去掉左侧空格rstrip() 去掉右侧空格strip() 去掉两侧空格 (去掉左右全部空格,但不能去掉词与词之间的)
但这个并不会对变量本身做修改,意思是:string 是一个string, string.rstrip() 也是一个string,如果不令 new_string = string.rstrip() 的话, 在调用一次 string.rstrip() 之后再 print(string) 依旧是有空格的所以必须对修改后的string进行存储(可以还存回原来的变量名里)
>>> favorite_language = ' python '>>> favorite_language.rstrip()' python' >>> favorite_language.lstrip()'python ' >>> favorite_language.strip() 'python'
2.3.5 使用字符串时避免语法错误
如果要使用撇号 ' 的话,就避免在定义这个string的时候使用单引号
也可以使用转义符 ,如 ' 就表示 ' 这个字符本身而不是作为引号存在
如:
string = "This is Tom's book"# 或string = 'This is Tom's book'# 而不是string = 'This is Tom's book'
2.3.6 Python 2 中的 print 语句
>>> python2.7 >>> print "Hello Python 2.7 world!" Hello Python 2.7 world!
2.3 动手试一试
2-3 个性化消息:将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消息应非常简单,如“Hello Eric, would you like to learn some Python today?”。
name = "Eric"message = "Hello " + name + ", would you like to learn some Python today?"print(message)'''Output:Hello Eric, would you like to learn some Python today?'''
2-4 调整名字的大小写:将一个人名存储到一个变量中,再以小写、大写和首字母大写的方式显示这个人名
发现 title() 是保证只有首字母是大写,而不是把首字母变成大写
name = "eRic"print("Title: " + name.title()) print("Lower: " + name.lower())print("Upper: " + name.upper())'''Output:Title: EricLower: ericUpper: ERIC'''
2-5 名言:找一句你钦佩的名人说的名言,将这个名人的姓名和他的名言打印出来。输出应类似于下面这样(包括引号):
Albert Einstein once said, “A person who never made a mistake never tried anything new.”
print('Albert Einstein once said, "A person who never made a mistake never tried anything new."')'''Output:Albert Einstein once said, "A person who never made a mistake never tried anything new."'''
2-6 名言 2:重复练习 2-5,但将名人的姓名存储在变量 famous_person 中,再创建要显示的消息,并将其存储在变量 message 中,然后打印这条消息。
famous_person = "Albert Einstein"message = famous_person + ' once said, "A person who never made a mistake never tried anything new."'print(message)'''Output:Albert Einstein once said, "A person who never made a mistake never tried anything new."'''
2-7 剔除人名中的空白:存储一个人名,并在其开头和末尾都包含一些空白字符。务必至少使用字符组合"t"和"n"各一次。
打印这个人名,以显示其开头和末尾的空白。然后,分别使用剔除函数 lstrip()、rstrip()和 strip()对人名进行处理,并将结果打印出来。
name = " n Eric t "print("lstrip: " + "'" + name.lstrip() + "'")print("rstrip: " + "'" + name.rstrip() + "'")print("strip: " + "'" + name.strip() + "'")'''Output:lstrip: 'Eric 'rstrip: ' Eric'strip: 'Eric''''
2.4 数字
2.4.1 整数
加: +
减: -
乘: *
除: /
在python中, 3/2 = 1.5对比C语言里, 3/2 = 1
模: % (取余数)
乘方: **
括号表示运算顺序
空格不影响计算,所以加不加空格根据自己的习惯就好
2.1.2 浮点数
float() 可以把整数或string转换为浮点数int() 把浮点数或string转换为整数(取整数位,没有四舍五入)
>>> float(1)1.0>>> float("1.5")1.5>>> float("1") # 对整数string也适用1.0>>> int(1.8)1>>> int("1") # 整数string可以转换1>>> int("1.8") # 如果是小数string用int转换会报错ValueError: invalid literal for int() with base 10: '1.8'>>> int(float("1.8")) # 对于上面的情况可以用float套一下1
2.4.3 使用函数 str()避免类型错误
需要用 str() 把数字变为string后才能拼接
age = 23 message = "Happy " + str(age) + "rd Birthday!" print(message)
2.4 动手试一试
**2-8 数字 8:**编写 4 个表达式,它们分别使用加法、减法、乘法和除法运算,但结果都是数字 8。为使用 print 语句来显示结果,务必将这些表达式用括号括起来,也就是说,你应该编写 4 行类似于下面的代码:
print(5 + 3)
输出应为 4 行,其中每行都只包含数字 8。
print(2 + 6)print(10 - 2)print(2 * 4)print(16 / 2)'''Output:8888.0'''
**2-9 最喜欢的数字:**将你最喜欢的数字存储在一个变量中,再使用这个变量创建一条消息,指出你最喜欢的数字,然后将这条消息打印出来。
favourite_number = 3print("My favourite number is: " + str(3))'''Output:My favourite number is: 3'''
2.5 注释
单行注释: #多行注释: ''' 或 """ (标记开始和结尾,但一定要一致)
2.6 Python之禅(编写优秀Python代码的指导原则)
>>> import thisThe Zen of Python, by Tim PetersBeautiful 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!