Python基础(一)
这段时间打算自学Python,因为都是从网上找的资料学习,学起来的没有那么系统,也防止学了就忘,写下此篇以便以后学习。
一、数据类型和变量
数据类型:
整数、浮点数、字符串、布尔值(可以用and、or和not运算)、空值(用None表示)
变量:
变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。
变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_
的组合,且不能用数字开头。
python中声明变量不需要数据类型,举几个栗子(#表示注释):
a = 1 #a是整数 a = 1.1 #a是浮点数 a = 'Python' #a是字符串 #等等,可见变量的声明和定义都不需要指定变量类型
这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。
Java就是静态语言,赋值如下(//表示注释):
int a = 1; //a是个整数类型变量 a = 'Java'; //报错,不能将字符串赋给整数类型的变量
和静态语言相比,动态语言更灵活,就是这个原因。
常量:
所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量。但实际上你仍然可以改变它的值,它本质上还是一个变量,所以,用大写变量名来表示常量只是习惯上的用法,如果你一定要改变它的值,也没人能拦你。
二、使用list和tuple
list
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。
比如,列出班里所有同学的名字,就可以用一个list表示:
用len()函数可以获取list元素的个数,
用索引来访问list中的每个元素,起始为0,当索引超出了范围时,Python会报一个IndexError
错误,所以,要确保索引不要越界,记得最后一个元素的索引是len(classmates) - 1
。如果要取最后一个元素,除了计算索引位置外,还可以用-1
做索引,直接获取最后一个元素:
以此类推。
list是一个可变的有序表,所以,可以使用append()方法直接往list中追加元素到末尾;
要删除list末尾的元素,用pop()方法;
要删除指定位置的元素,用pop(i)方法,其中i是索引位置;
要把某个元素替换成别的元素,可以直接赋值给对应的索引位置:
list里面的元素的数据类型也可以不同,也可以是另一个list:
要注意的是,list有四个元素,而list[3]元素就是list,,如果想要获取这个子list中的元素,将它们拆分下就行了:
如果想要获取“a”元素,可以写成list1[0]获取list2[2][0],因此可以将list2看作一个二维数组,类似的还有三维、四维……数组,不过很少用到。
如果一个list中一个元素也没有,就是一个空的list,它的长度为0。
tuple
另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字:
现在,classmates这个tuple不能变了,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,你可以正常地使用classmates[0],classmates[-1],但不能赋成其他的值。
因为不可变,所以tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
如果要定义一个只有1个元素的tuple,需要这样表示
因为
这样表示的是1这个数字,而非tuple,而加一个逗号,来消除歧义;
tuple中可以放list,tuple中的list是可变的,tuple的每个元素,指向永远不变。即指向'a'
,就不能改成指向'b'
,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!;