买了本书想学一学python作为自己最后学的语言
**Eric Matthes,袁国忠译《python编程:从入门到实践》.人民邮电出版社.2016.7**
1.一二章总结
刚刚看了前两章,觉得内容很简单,如果学过一点点编程都会这么觉得,但是买了书我还是打算快点看完,毕竟总会有帮助。
一开始看觉得和C语言,matlab似乎没有多大的差别,而且,似乎也没有matlab好用。
遇到的第一个麻烦是发现中文注释,print什么的统统不能用中文,百度之后解决,打开文件时把编码方式改成UTF-8就行。
前两章学了print , 拼接 ,大小写标题格式输出(upper,lower,title) , /t/n , rstrip lstrip strip , 单引号双引号 ,数字运算(整型,浮点) , str函数等
关于单引号双引号遇到了一个问题是物主所有格,就是我要输入物主所有格’s时就得用多个单引号双引号,例如:
famous_person='I the great king'
famous_word="an enemy's enemy is your friend"
message=famous_person+' once said,:"'+famous_word+'"'
print(message)
运行结果为
I the great king once said,:"an enemy's enemy is your friend"
但是当我使用title即首字母大写时物主所有格s也大写了。上面代码:
print(message.title())
运行结果为
I The Great King Once Said,:"An Enemy'S Enemy Is Your Friend"
(该问题暂时不知道怎么解决)
1.三四章总结
(1)知识回顾
三四章讲了列表以及列表的操作,很像matlab里的数组,看到现在觉得虽然书中的内容很简单,但可以对于我这种虽然学过编程但也没怎么亲自实践的人还是很有帮助的。
三四章里学到的有append,insert,del,remove,pop等对列表内容增删的函数。
sort,sorted,reverse,len等对列表排序已经确定长度的函数。
for循环遍历列表,关于for循环,python的格式为:
foods=('cc','lulu','mao','kalian','ff')
for food in foods:
print(food)
即for后面相当于一个赋值语句,把列表foods里的值从头赋值给food,最后要用冒号:
循环的内容需要缩进,知道遇到不缩进的行结束一次循环,不需要{}或者end。
range函数建立数字列表。max,min,sum对数字列表求值。
可利用list与range对列表进行赋值。如:
nums_4=list(range(1,11)) #1-10平方赋值列表,range,list,append
squares=[]
print('\n')
for value in nums_4:
squares.append(value**2)
print(squares)
对nums_4这一列表赋值了1-10十个数,并用循环对squares这一列表赋值了1-10的平方十个数。
列表解析:上述给squares赋值的代码可以用一行表示:
squares=[value**2 for value in range(1,11)]
print(squares)
格式大概为:列表名=[要存储的值a 循环表达式给a赋值]
循环表达式没有冒号:
元组用圆括号赋值,内容不能单独修改,但可以总体修改。例如:
foods=('cc','lulu','mao','kalian','ff')
for food in foods:
print(food)
#foods[0]='ponyhead'
print('\n\n')
foods=('bb','lulu','mao')
for food in foods:
print(food)
说是这样可以对不变的值提供一定保护。
文本编辑器从geany改用了visual studio code
书中强烈推荐的geany我在前两章使用了,只后在百度查到似乎VScode很受推荐,于是下载使用,安装python的扩展以及中文扩展后,尝试编写了课后的几个练习。
确实比geany要方便一些,首先是它的智能预测吧,就是打出代码前几个字母,VScode预测的接下来输入要多些也准确些。
(2)错误回顾
a.列表只能拼接列表 。并且不能直接在列表后面用title,upper,lower等函数,错误类型为无该属性。
尝试用首字母大写的方式输出列表如:print(names.title())会出现以下错误。
AttributeError: 'list' object has no attribute 'title'
b.列表,元组元素的访问也需要用中括号[],使用小括号时出现错误。
name=names(i)
TypeError: 'list' object is not callable
c.关于python对列表的函数。有些事写在前面,有些是在后面用.加函数的形式。
如del空格 append pop insert remove等用点,暂时没搞清楚。
d.列表切片
[1:3]表示第二到第第三个元素
[2:]表示第三到最后
[:5]表示第一到第五
[-3:]表示后三个
可用循环遍历切片。
[:]表示列表副本。
列表的副本需要后缀[:]进行复制,直接赋值会将两个列表关联起来,例如:
foods=['a','b','c','d']
myfoods=foods
会把两个列表关联起来,修改一个另一个也需要修改。应该这样复制:
foods=['a','b','c','d']
myfoods=foods[:]