1.hello world
#!/usr/bin/env python
print("hello world");
#!/usr/bin/env python
#!指明使用python来解析,
print
python3中的内置函数
2.基本概念
- Python 是一种解释型语言,面向对象编程
- python以换行符结束一条语句,python严格执行缩进规则,代码块不需要通过
{}
包含,根据缩进程度来识别 - python文件编码是在文件的第一行加上
# -*- coding: utf-8 -*-
, 解释器识别coding: utf-8
- 标识符必须是字母表中字母或下划线 _
- 注释:
- 单行注释使用
# 单行注释
- 多行注释使用
多个#
,'''多行注释内容'''
,""" 多行注释内容 """
- 单行注释使用
- 打印输出
print
函数,可以同时输出多个变量print(a,b)
,还可以指定输出末尾字符print(a, end=',')
每次输出后会输出','
3. 基本数据类型
int
, float
, bool
(True, False), str
(‘a’, ‘acvb’, “aaaa”),complex
(复数,1+2j)
可以使用内置函数 type(x)
来得到类型。用isinstance
函数来判断类型是否相同;type()
会认为子类是一种父类类型,isinstance()
会认为子类是一种父类类型。
a = 3;
print(isinstance(a, int))
4.序列
tuple
元组 s = (2, 23, ‘a’, ‘ac’) 空元组 s = ()
list
表 li = [3, ‘a’, ‘hello’, True] 空表 s = []
set
集合 s = {2, 3, 23, ‘32’, ‘2’, True} 空集合 s = set()
dict
字典 d = {‘name’: ‘runoob’,2:1, ‘a’: ‘www.runoob.com’} 空字典 d = {}
- tuple的各个元素不可再变更,而list的各个元素可以再变更。
- 序列内部可以包含基本数据类型,也可以嵌套包含序列,元组和表可以相互包含
- 序列索引方式: [index] 或者 [下限:上限:步长]
index为索引值
下限上限可以为负
下限上限是个左闭右开区间,在范围引用的时候,如果写明上限,那么这个上限本身不包括在内
下限如果不填,默认为0;上限如果不填,默认为末尾;步长默认为1
print(s1[:5]) # 从开始到下标4 (下标5的元素 不包括在内)
print(s1[2:]) # 从下标2到最后
print(s1[0:5:2]) # 从下标0到下标4 (下标5不包括在内),每隔2取一个元素 (下标为0,2,4的元素)
print(s1[2:0:-1]) # 从下标2到下标1
print(s1[-3]) # 序列倒数第三个元素
print(s1[0:-1]) # 返回一个元素,最后一个元素不会被引用 (再一次,不包括上限元素本身)
- 基本数据类型也可以当成一个元组,通过序列的索引方式访问
- 元组运算
# +
s = (1,213,23,'af','a', True)
s2 = (1,213,23,'af','a', True)
print(s + s2) #(1, 213, 23, 'af', 'a', True, 1, 213, 23, 'af', 'a', True)
# *
s = (1,213,23,'af','a', True)
s3 = s * 2
print(s3) #(1, 213, 23, 'af', 'a', True, 1, 213, 23, 'af', 'a', True)
# XX in 序列 --> 判断序列中是否含有某个元素
print(213 in s) # True
# 生成set和dict
{x**2 for x in (2, 4, 6)} # {16, 4, 36}
{x: x**2 for x in (2, 4, 6)} # {2: 4, 4: 16, 6: 36}
- dict() 可以直接从键值对序列中构建字典
dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)]) #{'Taobao': 3, 'Runoob': 1, 'Google': 2}
dict(Runoob=1, Google=2, Taobao=3) #{'Runoob': 1, 'Google': 2, 'Taobao': 3}
{x: x**2 for x in (2, 4, 6)} #{2: 4, 4: 16, 6: 36}
5. 运算
- 算术运算:
+ - * /算出来含小数 % **幂 //取整
- 比较(关系)运算:
== > < != >= <=
- 赋值运算:
= += -= *= %= **= //=
- 逻辑运算:
and or not
- 位运算:
& | ^ ~ << >>
- 成员运算符:
in not in
- 身份运算:
is is not
is
与==
区别:is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
a, b = b, a+b
# 表达式的运算顺序为先计算右边的值,在统一赋值给左边
and和or与其他语言的不同点:
# 判断变量是否为0, 是0则为False,非0判断为True,
# and中含0,返回0; 均为非0时,返回后一个值,
2 and 0 # 返回0
2 and 1 # 返回1
1 and 2 # 返回2
# or中, 至少有一个非0时,返回第一个非0,
2 or 0 # 返回2
2 or 1 # 返回2
0 or 1 # 返回1
6. 控制
- 条件
- if :
关键字if
、elif
、else
每个条件后面要加:
使用缩进来划分语句块,if嵌套依次缩进
python没有switch-case语句
- if :
if condition_1:
if condition_11:
block11
else:
statement_block_1
elif condition_2:
statement_block_2
else:
statement_block_3
- 循环
while
/while else
超出while条件后执行else
-for
/for else
如果循环没有break,则会跑到else
-range
:生成数字序列,用来遍历数组,默认跨步为1,如range(3)则生成序列[1,2,3],range(2,4)为[2,3], 指定跨步range(0,12,3)则生成[1,3,6,9]
-break/continue/pass
分别为循环中的控制语句,pass为显示指明空语句,不做任何事情,一般用做占位语句
#while
while 判断条件(condition):
执行语句(statements)……
#while else
while <expr>:
<statement(s)>
else:
<additional_statement(s)>
#for
for <variable> in <sequence>:
<statements>
else:
<statements>
#range len pass
sites = ["Baidu", "Google", "Runo4ob", "Taobao"]
for i in range(len(sites)):
print(i, sites[i])
pass
list(range(5)) --> [0, 1, 2, 3, 4]