【AICAMP —— Python】入门系列!(2. Python基本语法)

Python基本语法

在介绍Python的语法之前,我们需要了解下计算机中的两种模式:

1. 交互模式

在macos与ubuntu等系统中,我们通过使用terminal输入python进入python的交互模式。在windows下面,我们是通过 cmd进入到交互模式,长得很像下面这个这样。

 Python 3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)] :: Anaconda, Inc. on win32
 Type "help", "copyright", "credits" or "license" for more information.
 >>> 

在进入到Python环境之后,我们输入exit()并按回车,推出Python的交互环境,返回到命令行。

 Python 3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)] :: Anaconda, Inc. on win32
 Type "help", "copyright", "credits" or "license" for more information.
 >>> exit()
 C:\Users\DELL>

2.命令行模式

命令行模式,就是指在终端中,直接对python文件进行处理的模式,如现在有一个test.py的文件,内容如下:

 print("Hello World!!!!")

那我们可以在命令行模式下,直接运行这个文件,如下:

 C:\Users\DELL\Desktop>python test.py
 Hello World!!!

在命令行模式之下,初学者经常出现一个错误,在运行python test.py之后,终端报错显示没有这个文件。所以,我们需要在运行之前, 将当前工作的目录切换到这个文件所在的目录下,或者使用ls与dir等命令提前判断有没有这个文件。

[//]  < 你是个什么玩意儿?

3. Python的输入输出

3.1输出

python中主要的输出使用的print()函数,在括号中输入要输出的内容,即可实现输出的功能。

 >>> print("Hello World!")

print() 函数可以接受多个字符串,并且用逗号隔开,可以输出这个字符串序列。

 print("My name is", "canshi!")
 My name is canshi!

print() 也可以打印整数,或者打印计算的结果,如:

 >>> print(1314)
 1314
 >>> print(1314 + 512)
 1826

同样,如果我们希望可以打印出更好看的结果与我们需要了解的中间过程。

 >>> print("1314 + 520 = ", 1314 + 512) #其中,python有一个自动转换的机制,将1314+512的结果转成了字符串类型!
 1314 + 512 = 1826

3.2 输入

在实际中,我们需要动态地输入一些变量的值,那么我们可以使用input() 函数,用户输入内容,程序保存在一个变量 之中,下次可以使用变量直接查看输入的变量内容,如下所示:

 >>> name = input()
 canshi
 >>> name
 canshi

变量相当于是一个代号,计算机世界中如果类比人类世界,也是有很多的个体组成,人类世界有男人,女人,猫,狗等个体组成, 每个个体都有一个代号,如"James", "Curry"。计算机世界中,存在如浮点型、整型的数字,也有字符串等其它数据类型, 类比人类世界,需要给这些个体取个代号,就是变量名,如 a = 5, name="Trump"

对于input() 函数,在代码运行的时候是没有任何提示的,这时候我们需要在input()函数中写一个提示的字符串,如下:

 >>> value = input("Please give a number of value!")
 Please give a number of value!
 30
 >>> value
 30

我们可以在python文件中,使用input函数 ,如input.py文件:

 value = input("please give a number of value!")
 print("value is ", value)

运行代码:

 please give a number of value!
 520
 value is 520

4.常用数据类型

在python中,变量是不需要提前声明的,这点不同于C++。每个变量在使用前需要进行赋值,在赋值之后该变量才会创建,在Python中, 变量就是变量,没有类型,我们常说的"类型"指的是变量所指的内存中存储的对象的类型。首先我们需要了解下变量赋值。

4.1 变量赋值

如下代码举例:

 >>> name = "James"
 >>> a = 111
 >>> b = 3.14
 >>> name
 "James"
 >>> a
 111
 >>> b
 3.14

在python中,可以同事给多个变量赋值,如:

 a = b = c = 520

如上面代码,首先创建了一个整型对象,为520,从后往前进行赋值,三个变量被赋予了同样的数值。也可以为多个变量指定 多个值,如下:

 >>> a, b, c = 1, 2, 3
 >>> a
 1
 >>> b
 2
 >>> c
 3

分别给1,2,3三个整数对象分配给变量a,b,c。

4.2 标准的数据类型

Python中,有六个常用的标注数据类型:

  • Number(数字),其中包括整型,浮点型...

  • String(字符串)

  • List(列表)

  • Set(集合)

  • Tuple(元组)

  • Dictionary(字典)

其中如Number(数字), String(字符串), Tuple(元组)是不可变的数据类型。而List(列表),Dictionary(字典),Set(集合) 等结构是可以改变的。

4.2.1 Number(数字)

在Python3中,默认支持的数字类型为int、float、bool、complex(复数),在Python3中,使用int来表示长整型,没有了Long。 我们也可以使用内置的 type() 函数,来查询变量所指的对象类型。type函数,顾名思义,判断这个变量的类型。

 >>> a, b, c, d = 1, 1.0, True, 1+1j
 >>> print(type(a), type(b), type(c), type(d))
 <class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

其中这个class,表示的是一个类,先不用管class是个啥,在面向对象的语言中,class是一个基本概念,后面我们会详细 介绍面向对象与class究竟是个啥,我们需要看后面带的'int', 'float'等类型。

其次,除了type(),还有instance()函数来判断是哪一种类型,如下:

 >>> a = 111
 >>> isinstance(a. int)
 True

Warning:isinstance()函数主要是一个判断的功能,需要我们判断是不是某一种类型的时候,我们用isinstance(),如果我们需要 得到这个对象的类型,那么可以直接用type()!

当我们指定了一个值之后,就会有一个Number对象创建,如:

 a = 123

当然,在创建了变量之后,我们也可以对变量进行删除,删除的语法如下:

 >>> del a
 >>> a
 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
 NameError: name 'a' is not defined

Python的数值运算如下所示:

 >>> 1 + 2
 3
 >>> 3.12 - 2
 1.12
 >>> 3 * 7
 21
 >>> 2 / 4
 0.5
 >>> 11 / 3
 3.6666666666666665
 >>> 11 // 3
 3
 >>> 11 % 3
 2
 >>> 2 ** 3
 8

Python此外还还支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示,用得少,暂时就不 介绍了!

4.2.2 String(字符串)

字符串举例

对字符串进行操作举例:

 >>> string = 'canshi'
 >>> print(string)                   #打印字符串
 canshi
 >>> print(string[0:-1])             #输出第一个到倒数第二个的所有字符
 cansh
 >>> print(string[0])                #输出字符串第一个字符
 c
 >>> print(string[2:5])              #输出字符串第三个到第五个字符(5这边属于开区间)
 nsh
 >>> print(string[2:])               #输出从第三个到最后的字符
 nshi
 >>> print(string * 2)               #将string输出两次
 canshicanshi
 >>> print(string + "123")           #字符串拼接             
 canshi123

Python中字符串还有一个转义符\ ,如果不想使用反斜杠发生转义,则可以在前面添加一个r字符:

 >>> print("ca\nshi")
 ca
 shi
 >>> print(r"ca\nshi")
 canshi

同时,需要注意的是,Python中的字符串类型是不能够改变的,如下:

 >>> str = 'canshi'
 >>> str[0] = 'b'
 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
 TypeError: 'str' object does not support item assignment

4.2.3 List(列表)

列表是写在方括号 []之中,用逗号进行分割的元素列表。与字符串一样,列表可以被索引与截取,列表被截取之后会返回一个包含所需 元素的新列表。

如下,为列表的基本操作:

 >>> list_a = ['abc', '123', '520.1314', 'canshi']
 >>> list_b = ['canshi', 'study!']
 >>> list_a
 ['abc', '123', '520.1314', 'canshi']
 >>> list_b
 list_b = ['canshi', 'study!']
 >>> list_a[0]
 abc
 >>> list_a[1:3]
 ['123', '520.1314']
 >>> list_a[2:]
 ['512.1314', 'canshi']
 >>> list_b * 2
 ['canshi', 'study', 'canshi', 'study']
 >>> list_a + list_b
 ['abc', '123', '520.1314', 'canshi', 'canshi', 'study!']
 >>> list_a.append('Hello')
 ['abc', '123', '520.1314', 'canshi', 'Hello']
 >>> list_a.pop(2)
 ['abc', '123', 'canshi', 'Hello']

与字符串不同的是,list是可以进行元素修改的。如下所示:

 >>> a = [1, 2, 3, 4, 5, 6]
 >>> a[0] = 0
 >>> a[2:5] = [11, 12, 13]
 >>> a
 [0, 2, 11, 12, 13, 6]
 >>> a[2:5] = []
 >>> a
 [0, 2, 6]

4.2.4 元组(Tuple)

元组与列表相似,不同之处为元组元素不能修改。元组的元素均写在小括号 () 中,并且用逗号进行隔开,同样,元组中的元素类型也是可以 不同的。

 >>> tuple_a = ('123', 123, 123.0, 'canshi')
 >>> tuple_b = (520, 'canshi')
 >>> tuple_a
 ('123', 123, 123.0, 'canshi')
 >>> tuple_b
 (520, 'canshi')
 >>> tuple_a[0]
 123
 >>> tuple_a[1:3]
 123, 123.0
 >>> tuple_b * 2
 (520, 'canshi', 520, 'canshi')
 >>> tuple_a + tuple_b  #元组也可以进行拼接,形成一个新的元组
 ('123', 123, 123.0, 'canshi', 520, 'canshi')

元组与字符串类似,可以被下表且索引。从0开始,-1为末尾开始的位置,也可以进行截取,用法与String类型是相似的,但是元组中的元素是 不可以被修改的,但是元组中的元素的元素是可以被改变的,不懂?上例子!

 >>> typle_c = (1, 2, 3, 4, 5, 6)
 >>> typle_c[0]
 1
 >>> tuple_c[1:5]
 2, 3, 4, 5
 >>> tuple_c[0] = 520
 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
 TypeError: 'tuple' object does not support item assignment
 >>> tuple_d = ([1,2,3], 'canshi')
 >>> tuple_d[0][1] = 520
 >>> tuple_d
 ([1. 520. 3], 'canshi')

4.2.5 集合(Set)

集合(Set)也是一种数据类型,由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。Set最典型的特点就是成员不能 重复。我们可以使用 {} 或者 set() 函数来创建集合,当我们创建空集合的时候,必须用 set() 而非 {} ,因为 {} 表示 空字典,同时集合中的元素是无序的。

 >>> set1 = {'123', 123.0, 'canshi', '123'}
 >>> set1
 {'123', 123.0, 'canshi'}
 >>> "123" in set1:
 True
 >>> a = set('1234567')
 >>> b = set('12345')
 >>> a - b #求差集
 {'7', '6'}
 >>> a | b #求并集
 {'7', '5', '1', '3', '2', '4', '6'}
 >>> a & b #求交集
 {'5', '1', '3', '2', '4'}
 >>> a ^ b #求a和b中不同时存在的元素
 {'6', '7'}

4.2.6 字典

字典在Python中是一个非常有用的内置数据类型,列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。 字典是一种映射关系,是一个无序的 键(key):值(value) 的集合。 字典中的键(key)必须是不可变类型,在同一个字典中,键是唯一的!

 >>> dict_a = {}
 >>> dict_a['one'] = 'one'
 >>> dict_a[1] = 1
 >>> dict_a['canshi'] = 'canshi'
 >>> dict_b = {'name': 'canshi', 'status': 0}
 >>> dict_a['one']
 one
 >>> dict_a[1]
 1
 >>> dict_a.keys()
 dict_keys(['one', 1, 'canshi'])
 >>> dict_a.values()
 dict_values(['one', 1, 'canshi'])

同时,我们可以对键值对进行遍历,如下代码所示:

 >>> dict1 = {'1': 1, '2': 2, '3':3}
 >>> for k, v in enumerate(dict1):
 ...     print("k is", k, "v is", v)
 ...
 k is 0 v is 1
 k is 1 v is 2
 k is 2 v is 3

4.2.7 其它常用数据转换

函数描述举例输出
int(x)将x转换为一个整数int(3.14)3
int(x, base)将x按照base进行进制转换,但是x需要是字符串类型int('12',16)18
float(x)将x转换到一个浮点数float(3)3.0
str(x)将x转换到字符串str(3.14)'3.14'
eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象eval('pow(2,2)')4
tuple(s)将序列 s 转换为一个元组tuple([1,2,3])(1, 2, 3)
list(s)将序列 s 转换为一个列表list((1, 2, 3))[1, 2, 3]
set(s)转换为可变集合set([1, 2, 3, 4])(1, 2, 3, 4)
dict(d)创建一个字典。d 必须是一个 (key, value)元组序列。dict([('one', 1), ('two', 2), ('three', 3)]){'one': 1, 'two': 2, 'three': 3}
frozenset(s)转换为不可变集合b = frozenset('runoob')frozenset({'o', 'u', 'r', 'b', 'n'})

5. 关于我

img

 

img

欢迎加我微信,每天16个小时在线

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值