Path to Python(1)

来源:互联网 发布:网络保险和传统保险 编辑:程序博客网 时间:2024/05/21 17:11

这系列的python学习笔记,是根据廖雪峰老师的官网教程学习总结的,因此很多代码也是从网站直接截取的,笔记内容比较单一,原创性较差。但是会同时参考其他的学习资料,不断修改文章,争取让内容更加丰富,有更多自己的思考和练习。

交互:输入和输出

输入:
variable=input()
带提示输入:
variable=input(’please input your content of variable’)
输出:
print(’the content of your variable is:’,variable)

注意:’ ‘内的内容是字符,不是变量值

数据类型

整数:
1.负整数写法和数学相同
2.有时用十六进制表示整数:0x是前缀

浮点数:可用科学记数法表示。整数运算是精确的,但浮点数是可能有四舍五入的误差的。
*除法中,/的结果是浮点数,而//的结果是整数,因此有%表示求余,结果也是整数。因此整数的运算均为精确的。

字符串:用’ ‘或” “表示,若字符串内部含有’或者”,应在前加转义字符\。
\n:表示换行;
\t:表示制表符;
\:表示\。
如果需要转义的字符过多,有一段连续的不需要转义的字符串,可以使用r’ ‘,’ ‘中的内容不转义。
如果需要换行的次数过多,可以使用”’ ”’括起内容。

布尔值:True或者False,也可通过布尔运算得到。布尔运算包括:and,or,not。

空值:Python中特殊的值,与0不同,用None表示。

变量:用=给变量赋值,可以多次赋不同类型的数据,称为动态语言。
变量在计算机内的内存:
a=’ABC’
1.在内存中建立’ABC’字符串;
2.在内存中建立变量a,并指向’ABC’。
b=a
建立变量b,指向a之前指向的字符串’ABC’。

常量:全部大写变量名表示常量,如PI。

练习:

n=123f=456.789s1='Hello,world's2='Hello,\'Adam\''s3=r'Hello,"Bart"'s4=r'''Hello,Lisa!'''print('n=',n)print('f=',f)print('s1=',s1)print('s2=',s2)print('s3=',s3)print('s4=',s4)

编码

ASCII:一个字符占用1个字节。
unicode:一个字符占用1个字节,如果非常偏僻的字符使用4个字节。
UTF-8:ASCII中的字符占用1个字节,中文字符一般占用3个字节,生僻的字符使用4-6个字节。可以看成在ASCII基础上进行了扩展。
在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。

Python中的字符串:
单个字符:可以使用ord()函数获取字符的整数表示,chr()将编码转换为字符。Python的字符串类型为str,用unicode编码:’ABC’,一个字符占用数个字节。但保存到磁盘时用UTF-8编码,类型为bytes:b’ABC’,一个字符只占用一个字节。

str和bytes之间的转换:
–将内存中的内容存到磁盘或网页中时,要将str转换为bytes,利用encode()函数
纯英文的str可以用ASCII编码为bytes:’ABC’.encode(‘ascii’)
含有中文的str要用UTF-8编码为bytes:’ABC’.encode(‘utf-8’)
–从磁盘或网络上读取字节流时得到的是bytes,要转化为str,利用decode()函数
b’ABC’.decode(‘ascii’)
b’中文’.decode(‘utf-8’)
其他函数:
len():对于str,计算字符数;对于bytes,计算字节数。

为了避免乱码问题,应当始终坚持使用UTF-8编码对str和bytes进行转换。

格式化字符串:利用%s,%d,%f将其格式化。
练习:

s1=72s2=85p=(s2/s1-1)*100print('成绩提高了%.1f%%'%p)

有序列表

list:
list是有序的集合,可以用len()得到元素个数,用索引访问每一个位置的元素,从0开始。如果超出list的范围,报错显示为IndexError。如果索引最后一个元素,可以直接通过classmate[-1]得到,其他位置以此类推。
向列表中末尾处添加元素,使用append方法:list.append(’ ‘)。
向列表某处指定位置添加元素,使用insert()方法:list.insert(’ ‘)。
从列表中删除元素,使用pop()方法:
-末尾元素则是list.pop();
-指定位置的元素则是list.pop(i);
替换某个位置的元素,可以直接赋新值。
list中元素的类型可以不同,甚至可以是一个list:
s = [‘python’, ‘java’, [‘asp’, ‘php’], ‘scheme’]
list中没有元素时,长度为零。

tuple:
与list类似,只是tuple一旦初始化后不能更改。因此没有append和insert方法。
但如果tuple中有一个元素是一个list,list中的内容改变后,相当于tuple改变了。
不能改变内容的tuple更加安全。

classmate=['Lily','Bob','Jack']classmate=('Lily','Lucy','Jane')

练习:

L=[['Apple','Google','Microsoft'],['Java','Python','Ruby','PHP'],['Adam','Bart','Lisa']]print(L[0][0])print(L[1][1])print(L[2][2])

这里写图片描述

这里发现了一个有趣的现象,如果代码误写为:

L=[['Apple','Google','Microsoft'],['Java','Python','Ruby','PHP'],['Adam','Bart','Lisa']]print([0][0])print([1][1])print([2][2])

则会报错,且错误报告表示list中涉及越界。
这里写图片描述

原创粉丝点击