python3自学笔记1-交互环境与基本语法

版权声明:本文为博主原创文章,欢迎转载。 https://blog.csdn.net/fww330666557/article/details/82794165

关于

本系列博文记录个人学习python3的基本过程,主要廖雪峰的python教程,如有雷同,纯属抄袭。

学习环境

macOS10.13.1
Python 3.7.0

python交互环境

在终端命令行中输入python3,就会进入交互环境,并显示交互环境提示符">>>":

fwwdeair:~ fww$ python3
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 26 2018, 23:26:24) 
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

交互环境可以直接执行python代码,立即得到结果:

>>> 1+1
2
>>> 1*6
6
>>> 10%3
1
>>> 

输入exit(),可以退出交互环境:

>>> exit()
fwwdeair:~ fww$ 

基本数据类型与变量

# 整数

>>> a = 123
>>> a
123
>>> type(a)
<class 'int'>
>>> b = 0x2a
>>> b
42
>>> type(b)
<class 'int'>
#浮点数
>>> a = 3.14
>>> a
3.14
>>> type(a)
<class 'float'>
#字符串

>>> a = "hello world!"
>>> a
'hello world!'
>>> type(a)
<class 'str'>
>>> 
>>> b = 'hello world!'
>>> b
'hello world!'
>>> type(b)
<class 'str'>
#布尔型
>>> a = True
>>> a
True
>>> type(a)
<class 'bool'>
>>> 
>>> b = False
>>> b
False
>>> type(b)
<class 'bool'>
>>> 
>>> c = 1<2
>>> c
True
>>> type(c)
<class 'bool'>
>>> 
>>> d = 1 > 3
>>> d
False
>>> type(d)
<class 'bool'>
# 空值
>>> a = None
>>> a
>>> type(a)
<class 'NoneType'>
>>> 

1、python的基本数据类型包括:整型、浮点型、字符串、布尔型、空值。

2、python可以处理任意大小的整数,整数一般为10进制或16进制写法;

3、字符串是以单引号或双引号括起来的任意文本。

4、布尔值有两个:True False

5、布尔运算有三个:and or not

6、python中变量名必须是大小写字母、数字和_的组合,且不能以数字开头。

7、python是大小写敏感的。

8、Python中=是赋值语句,可以把任意数据类型赋给变量,同一个变量可以反复赋值,而且还可以是不同类型的数据。这种变量类型不固定的语言称为动态语言。

9、Python中一般使用全部大写的变量名表示常量,但实际上还是变量,你可以重新给它赋值。

10、空值不能理解为0,而是一个特殊的值,用None表示。

11、#开头的语句是注释语句。

12、type()函数可以输出变量类型。

输入与输出

1、input()用于输入;
2、print()用于输出;
3、input输入数字将以字符串形式存储;
4、可以直接print值,但不能print未定义的变量;

>>> a = input("please input:")
please input:123
>>> a
'123'
>>> print(a)
123
>>> type(a)
<class 'str'>
>>> print(b)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'b' is not defined

列表(list)

1、list是一个有序的集合,可以随时添加和删除元素;
2、使用len()函数,取得列表元素个数;
3、下标访问列表元素:下标从0开始,越界则会报错;
4、也可以使用负数下标访问列表元素,从-1开始;
5、列表可以进行追加、插入、修改和删除操作;
6、list里面的元素的数据类型也可以不同;
7、list元素也可以是另一个list;

定义一个list:

>>> L = [111,222,333,444,555]
>>> L
[111, 222, 333, 444, 555]
>>> type(L)
<class 'list'>

取得list元素个数:

>>> len(L)
5

list尾部追加元素:

>>> L.append(666)
>>> L
[111, 222, 333, 444, 555, 666]
>>> len(L)
6

指定index插入元素:

>>> L.insert(5,777)
>>> L
[111, 222, 333, 444, 555, 777, 666]

删除元素:

>>> L.pop(5)
777
>>> L
[111, 222, 333, 444, 555, 666]
>>> L.pop()
666
>>> L
[111, 222, 333, 444, 555]

下标访问列表元素:

>>> L[0]
111
>>> L[1]
222
>>> L[5]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

负数下标访问列表元素:

>>> L[-1]
555
>>> L[-2]
444
>>> L[-5]
111
>>> L[-6]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range 

修改列表元素:

>>> L[1] = 777
>>> L
[111, 777, 333, 444, 555]
>>> L[-1] = 666
>>> L
[111, 777, 333, 444, 666]
>>> 

list里面的元素的数据类型也可以不同:

>>> L = [123,3.14,"hello",True,None,[1,2,3]]
>>> L
[123, 3.14, 'hello', True, None, [1, 2, 3]]
>>> 

元组(tuple)

1、元组,tuple,也是一种有序列表。tuple和list非常类似,但是tuple一旦初始化就不能修改。

2、不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。

3、在定义的时候,tuple的元素就必须被确定下来;

4、如果要定义一个空的tuple,可以写成();

5、只有1个元素的tuple定义时必须加一个逗号;

6、元组中可以包含list,而该list中的元素可以被修改。

>>> #一个空的元组
... 
>>> t = ()
>>> t
()
>>> type(t)
<class 'tuple'>
>>> #只有1个元素的tuple
... 
>>> t = (1)#错误
>>> t
1
>>> type(t)
<class 'int'>

>>> t = (1,)#正确
>>> t
(1,)
>>> type(t)
<class 'tuple'>
#元组内容不可修改
>>> t = (1,2,3,4,5)
>>> t
(1, 2, 3, 4, 5)
>>> type(t)
<class 'tuple'>
>>> len(t)
5
>>> t[0]
1
>>> t[-1]
5
>>> t[0] = 123
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
#元组中的list的内容可以修改
>>> t = (1,2,3,4,5,[6,7,8])
>>> len(t)
6
>>> type(t)
<class 'tuple'>
>>> t[-1]
[6, 7, 8]
>>> len(t[-1])
3
>>> type(t[-1])
<class 'list'>
>>> t[-1].pop()
8
>>> t[-1]
[6, 7]
>>> t[-1].append(10)
>>> t[-1]
[6, 7, 10]
>>> t[-1].insert(2,9)
>>> t[-1]
[6, 7, 9, 10]

字典(dict)

创建字典:

>>> d = {'key1':1,'key2':2,'key3':3}
>>> d['key1']
1
>>> len(d)
3
>>> type(d)
<class 'dict'>

把数据放入dict的方法,除了初始化时指定外,还可以通过key放入:

>>> d['key4'] = 4
>>> len(d)
4
>>> d
{'key1': 1, 'key2': 2, 'key3': 3, 'key4': 4}

如果key不存在,dict就会报错:

>>> d['key5']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'key5'

通过in判断key是否存在:

>>> 'key5' in d
False
>>> 'key2' in d
True

通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value:

>>> d.get('key1')
1
>>> d.get('key5')
>>> v = d.get('key5')
>>> v #注意:返回None的时候Python的交互环境不显示结果。
>>> type(v)
<class 'NoneType'>
>>> v = d.get('key5',-1)
>>> v
-1

要删除一个key,用pop(key)方法,对应的value也会从dict中删除:

>>> d.pop('key4')
4
>>> d
{'key1': 1, 'key2': 2, 'key3': 3}
>>> len(d)
3

集合(set)

1、set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
2、要创建一个set,需要提供一个list作为输入集合:

>>> s = set([1, 2, 3])
>>> s
{1, 2, 3} 
#注意,传入的参数[1, 2, 3]是一个list,而显示的{1, 2, 3}只是告诉你这个set内部有1,2,3这3个元素,显示的顺序也不表示set是有序的。

3、重复元素在set中自动被过滤:

>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}

4、通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:

>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}

5、通过remove(key)方法可以删除元素:

>>> s.remove(4)
>>> s
{1, 2, 3}

6、set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:

>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}

7、set不可以放入可变对象。

# 空set
>>> s = {}
>>> s
{}
>>> len(s)
0
# 包含三个元素的set
>>> s = {'key1','key2','key3'}
>>> s
{'key3', 'key1', 'key2'}
>>> len(s)
3

# 使用in判断元素是否存在
>>> 'key1' in s
True

# list不能作为set的元素
>>> s = {[]}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'

# 整数可以作为set的元素
>>> s = {1,2,3}
>>> s
{1, 2, 3}
>>> a = 1
>>> a = 4
>>> s.add(a)
>>> s
{1, 2, 3, 4}
>>> len(s)
4

# 元组可以作为set的元素
>>> t = (1,2,3)
>>> s.add(t)
>>> s
{1, 2, 3, 4, (1, 2, 3)}
>>> len(s)
5

猜你喜欢

转载自blog.csdn.net/fww330666557/article/details/82794165
今日推荐