学习python第二周

4月26日:
 今天是新的开始。刚学就又有新的知识扑面而来,小知识就是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,之前都不知道。数据类型和c语言一样,在学的时候,我又发现了自己学c时的盲点,就是‘\',对于它的使用,之前我不怎么懂,现在我懂了。字符串中,如果\位于字符的前面,那就基本不会报错,如果有转义就转义,没有的话原样输出,如:’\l',就是输出‘\l',而’\\l',输出就成了‘\l',它发生了转义,’\\‘转义就是’\‘.而\位于字符串后面,在python中单数的\就会报错,双数的就不会,原因就是单数个\还会留下一个不能转义。为了方便,如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r''表示''内部的字符串默认不转义。
 如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容。这一点我试了一段时间,有点小郁闷。因为我是按照代码输入的,结果却总是错误,print('''line1... line2... line3'''),这是代码,结果输出结果却一直是line1... line2... line3,和教程上的根本不一样,我很郁闷,差错了一会,发现单引号要打3个,但还是有错,后来一次按键错误让我找到答案,原来在python交互式环境中,你只要输入到print('''line1时,按回车键它下一行就会自动出现...,而且提示符由>>>变为...,直到你输入''')停止。
 又出现了一个布尔值,原来就是c语言中的&& || !与或非罢了,不过在python中有些好玩,可以用True和False输出来表达,不过选择判断和c一样,没什么好说的。就是一些小细节,比如,注意大小写,还有python中的与或非是and or not罢了。空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。此外,Python还提供了列表、字典等多种数据类型,还允许创建自定义数据类型,不过现在我还太low暂时不学。
 到了变量,变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_的组合,且不能用数字开头,这是定义。而python是动态语言,不用定义变量类型,这就更灵活了。而c是静态语言,要定义变量类型。还有一点小知识,在初学时容易犯的错误,我已经差不多过了这个时期。赋值是=,而判断是否相等是==。
 常量就是不能变的变量,就是一个固定的数。在Python中,通常用全部大写的变量名表示常量,但你也可以用小写,没人会拦你,大写的变量名表示常量只是一个习惯上的用法。
 python中除法是精确的。在Python中,有两种除法,一种除法是/。/除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数:这要记住,和静态语言c不同,c中定义了是什么类型,就是什么数。还有一种除法是//,称为地板除,两个整数的除法仍然是整数,整数的地板除//永远是整数,即使除不尽。
 还有一个廖雪峰老师学的注意,也很有价值。Python的整数没有大小限制,而某些语言的整数根据其存储长度是有大小限制的,例如J。ava对32位整数的范围限制在-2147483648-2147483647。Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)。
4月27日:
 今天学的是字符串和编码,编码具体的我就不细说,大家可以自己搜廖雪峰的python3教程。
 关于python的字符串,在Python 3版本中,字符串是以Unicode编码的,所以按照教程上说,是支持多语言的。单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:都是一些基础命令,我只好照着敲。如果知道字符的整数编码,可以用单引号加整数编码得到字符串。由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。所以如果要在网上传输和在硬盘上储存,要变成以字节为单位的数据。Python对bytes类型的数据用带b前缀的单引号或双引号表示,以Unicode表示的str通过encode()方法可以编码为指定的bytes,如果转换的话,要注意一些细节:纯英文的str可以用ASCII编码为bytes,内容是一样的,含有中文的str可以用UTF-8编码为bytes。含有中文的str无法用ASCII编码,因为中文编码的范围超过了ASCII编码的范围,Python会报错。在bytes中,无法显示为ASCII字符的字节,用\x##显示。从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,用decode()函数,而且有len()函数计算字符数,这是在str中,如果换成bytes,len()函数计算字节数。
 接下来就是格式化,其实是输入的内容格式化,而不是清空内存的意思。在Python中,采用的格式化方式和C语言是一致的,用%实现,不过写法不一样,'Hi, %s, you have $%d.' % ('tao', 1000000),前面是内容,中间的%是用来格式化字符串。后面是变量或值,顺序要对应。其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数,和c语言一样,我就不细说了。最后一点,有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%。
4月28日:
 今天学的是list和tuple。list就是列表,感觉像c语言中的字符串数组,就是二维数组,又好像是线性列表,总之是一个很不同的东西。但它却更简单,不像我学线性列表时很难听懂。现在介绍list,list是一种有序的集合,可以随时添加和删除其中的元素。学这不难,我感觉主要是记函数。用len()函数可以获得list元素的个数,如果要访问每一个位置元素,需要像数组一样学,shuz[i]。不过如果访问最后一个元素可以shuz[-1],我感觉很蛋疼....往list中追加元素到末尾是listname.Append(‘zfc’),也可以把元素插入到指定的位置,比如索引号为1的位置就是listname.insert(1,'zfc').要删除list末尾的元素,用pop()方法,listname.pop()就可以。要删除指定位置的元素,用pop(i)方法,listname.pop(i)。要把某个元素替换成别的元素,可以直接赋值给对应的索引位置,listname[i]=‘zfc’。list里面的元素的数据类型也可以不同,list元素也可以是另一个list,如listname1={'python',listname2,'java'},像listname2就是第二个list。
 第二是tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改,因此,当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来。如果写一个空的tuple,可以写成tuple1=()。而定义一个数的tuple时,不能tuple1=(1),因为此时有歧义,tuple1可以是一个数,因此python规定,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义,如,tuple1=(1,)。tuple也可以间接可变,比如,tuple1=(list1,list2,‘python’),其中,我们可以对list1和list2进行改变,进行数据的输入和删除。因为,表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。这就像指针,tuple只是储存了一个地址,地址不变,而它指向的数发生了改变。
 其中list定义是list1=【】;而tuple是tuple=()。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值