python3 基本语法
注释
同样的,我们在python中也使用#来注释语句
行与缩进
- python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {}
- 缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。
- 一个TAB键等于四个空格,也即一个缩进位
if ture:
print('Ture')
else:
print('False')
缩进不一致会导致运行错误
数字类型
python中数字有四种类型:整数、布尔型、浮点数和复数。
- int (整数), 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
- bool (布尔), 如 True。
- float (浮点数), 如 1.23、3E-2
- complex (复数), 如 1 + 2j、 1.1 + 2.2j
字符串(string)
- python中单引号和双引号使用完全相同
- 反斜杠\可以用来转义
- 使用r可以让反斜杠不发生转义,r:raw
- python中字符串不能改变(为不可变类型)
- 字符串的截取的语法格式如下:变量[头下标:尾下标:步长]
>>> print('\n') # 输出空行
>>> print(r'\n') # 输出 \n
\n
print输出
print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end="":
print( x, end=" " )
python3 基本数据类型
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
#!/usr/bin/python3
counter = 100 # 整型变量
miles = 1000.0 # 浮点型变量
name = "runoob" # 字符串
print (counter)
print (miles)
print (name)
可以发现首行有一句
#!/usr/bin/python3
此为注释行写明解释器的位置,添加此行后可以使用如下命令运行.py文件(同时需要添加执行权限)
./file.py
输出结果如下:
100
1000.0
runoob
多个变量赋值
例如:
a = b = c = 1
也可以这样:
a, b, c = 1, 2, "pw"
标准数据类型
Python3 中有六个标准的数据类型:
- number(数字)
- string(字符串)
- list(列表)
- tuple(元组)
- set(集合)
- dictionary(字典)
不可变数据 | 可变数据 |
---|---|
number(数字) | list(列表) |
string(字符串) | dictionary(字典) |
tuple(元组) | set(集合) |
内置的type()函数可以用来查询指定变量的对象类型
number(数字)
Python3 支持 int、float、bool、complex(复数)
>>> a, b, c, d = 20, 5.5, True, 4+3j
>>> print(type(a), type(b), type(c), type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
数值运算
同C语言运算方式
string(字符串)
Python中的字符串用单引号’ 或双引号" 括起来,同时使用反斜杠 \ 转义特殊字符
字符串的截取的语法格式如下:
变量[头下标:尾下标]
索引值以 0 为开始值,-1 为从末尾的开始位置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ciASc8ig-1612510775985)(https://static.runoob.com/wp-content/uploads/123456-20200923-1.svg)]
str = 'Runoob'
print (str) # 输出字符串
print (str[0:-1]) # 输出第一个到倒数第二个的所有字符
print (str[0]) # 输出字符串第一个字符
print (str[2:5]) # 输出从第三个开始到第五个的字符
print (str[2:]) # 输出从第三个开始的后的所有字符
print (str * 2) # 输出字符串两次,也可以写成 print (2 * str)
print (str + "TEST") # 连接字符串
Runoob
Runoo
R
noo
noob
RunoobRunoob
RunoobTEST
- 1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
- 2、字符串可以用+运算符连接在一起,用*运算符重复。
- 3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
- 4、Python中的字符串不能改变。
list(列表)
列表是python中较为常用的数据类型
创建列表的格式为
list=[]
需注意的是列表用是[]
列表的索引方式同字符串
与字符串不同的是,列表的元素可以改变
list的内置方法
实际编程操作的过程中,发现append()函数用处广泛且实用
list.append()
注意这是list的内置函数,其他数据类型不可实用,且注意()不可省略,否则将会发生运行错误
tuple(元组)
tuple(元组)的使用基本上同list(列表),区别在于tuple的元素不可修改,且定义用()
tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2 )
tinytuple = (123, 'runoob')
索引方式
索引方式同列表和字符串
tup1 = () # 创建空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号
- 1、与字符串一样,元组的元素不能修改。
- 2、元组也可以被索引和切片,方法一样。
- 3、注意构造包含 0 或 1 个元素的元组的特殊语法规则。
- 4、元组也可以使用+操作符进行拼接。
string、list 和 tuple 都属于 sequence(序列)(这个具体会在后面的for循环中出现)
set(集合)
集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 {}或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是{},因为{}是用来创建一个空字典。
创建格式:
set={value01,value02,...}
or
set(value)
实例
#!/usr/bin/python3
sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'}
print(sites) # 输出集合,重复的元素被自动去掉
# 成员测试
if 'Runoob' in sites :
print('Runoob 在集合中')
else :
print('Runoob 不在集合中')
# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')
print(a)
print(a - b) # a 和 b 的差集
print(a | b) # a 和 b 的并集
print(a & b) # a 和 b 的交集
print(a ^ b) # a 和 b 中不同时存在的元素
dictinary(字典)
**字典(dictionary)**是Python中另一个非常有用的内置数据类型。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用 {} 标识,它是一个无序的键(key) : 值(value) 的集合。
**键(key)**必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的。
实例
#!/usr/bin/python3
dict = {}
dict['one'] = "1 - 菜鸟教程"
dict[2] = "2 - 菜鸟工具"
tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}
print (dict['one']) # 输出键为 'one' 的值
print (dict[2]) # 输出键为 2 的值
print (tinydict) # 输出完整的字典
print (tinydict.keys()) # 输出所有键
print (tinydict.values()) # 输出所有值
结果如下
1 - 菜鸟教程
2 - 菜鸟工具
{'name': 'runoob', 'code': 1, 'site': 'www.runoob.com'}
dict_keys(['name', 'code', 'site'])
dict_values(['runoob', 1, 'www.runoob.com'])
- 1、字典是一种映射类型,它的元素是键值对。
- 2、字典的关键字必须为不可变类型,且不能重复。
- 3、创建空字典使用 { }
字典类型常用的内置函数
dict.get(key)
此内置函数的作用是返回字典中对应键的值
常用的内置函数
ord(x) #将字符x转换为它的10进制整数值
chr(x) #将一个整数转换为一个字符
python循环语句
while循环
while condition:
statements
......
执行流程如下
同样需要注意冒号和缩进。另外,在 Python 中没有 do…while 循环
无限循环
while True:
.....
通常我们使用Ctrl+c中断当前的无限循环
for 循环
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
for循环的一般格式如下:
for <variable> in <sequence>:
<statements>
else:
<statements>
流程:
实例:
>>>languages = ["C", "C++", "Perl", "Python"]
>>> for x in languages:
... print (x)
...
C
C++
Perl
Python
>>>
pass 语句
Python pass是空语句,是为了保持程序结构的完整性
break语句和continue语句用法和作用同C语言,这里不多赘述
python函数
函数定义方法
- 函数代码块以 def关键词开头,后接函数标识符名称和圆括号 ()。
- 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号 : 起始,并且缩进。
- return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None
一般格式:
def 函数名(参数列表):
函数体
默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的
实例:
#!/usr/bin/python3
def max(a, b):
if a > b:
return a
else:
return b
a = 4
b = 5
print(max(a, b))
匿名函数
python 使用 lambda来创建匿名函数。
所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。
- lambda 只是一个表达式,函数体比 def 简单很多。
- lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
- lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
- 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
语法
lambda [arg1 [,arg2,.....argn]]:expression
实例
#!/usr/bin/python3
#可写函数说明
sum = lambda arg1, arg2: arg1 + arg2
#调用sum函数
print ("相加后的值为 : ", sum( 10, 20 ))
print ("相加后的值为 : ", sum( 20, 20 ))