python3-->基础操作

说明:教程参考:http://www.liaoxuefeng.com/

启动和运行

python3的运行方式有3种:

1、命令行进入python操作环境,然后以手工输入命令的方式执行,执行的结果会自动显示。

2、使用 命令"python fileName.py" ,主动调用.py文件,执行过程不会完全显示(比如执行“1 + 2”)。

3、在unix环境中,在.py文件头注释python命令路径,然后添加可执行权限,便可直接运行。

#!/usr/bin/python3
#和shell脚本开头注释一样

输入和输出

输出:

print("string")

1、与c/c++一致,依然可以使用格式化输出,但需要使用%给元素标记。

absNewName = abs                                                                                                                                                       
print("new name value : %d" %(absNewName(-1)))     

#输出:new name value : 1

2、print可以使用单引号或双引号包括字符串(为了与c/c+一致,使用双引号),通用的转义字符依然可用(比如 ' ')。

3、可以使用多个双引号同时打印多段字符,通过逗号分隔,逗号最终被解释为空格。

4、print中未被引号包括的数,会自动进行数值运算。未被引号包括的字符,会解释为变量。

输入:

input("string")

name = input("please enter your name")
print(name)

编码:

为了让python解释器按照utf-8编码读取字符串,需要在文件头加上:

# -*- coding: utf-8 -*-

当字符串数据在网络传输,或者存储在磁盘时,为了使传输的字节数尽量的少,需要将utf-8以字节的方式存储。

#使用b前缀,使字符串以字节为单位
x = b"ABC"

#使用后缀 .decode('utf-8'),将从网络或磁盘上读取的字节流转换为
#utf-8格式
b"xe4xb8xadxe6x96x87".decode('utf-8')

#使用len()函数计算字符串有多少字符

>>> len("中文")
2

语法

注释

与shell脚本一样,使用"#"注释

代码块

当语句以冒号结尾时,缩进的语句视为代码块。

# print absolute value of an integer:
a = 100
if a >= 0:
    print(a)
else:
    print(-a)

数据类型

整数   :任意大小的正负整数,以“0x”开头则表示16进制

浮点数  :表示方式与c/c++一样,比如"0.123","1.1e-10"

字符串  :以单引号或双引号包括的字符,支持中文输入。

#支持r ''string'' 格式,代表string中的内容不转义
print(r"abc 
 def")
#输出 abc 
 def 

#可以用 ord函数反算对应的 unicode码
print("中对应的 Unicode:",ord(''))

布尔值  :使用 "True"和"False"

#可以使用  and / or / not运行
print(True and False)

空值   :None

list

list类型是c/c++中数组与链表的一个结合体,具有如下特性。

#1、定义list,list中也可以嵌套list
listName = ["a","b","c"]

list2 = ["d",listName,"e"]
#list中的数据类型也可以不同
list3 = [123,list2]

#2、得到list的值
#用下标访问元素,下标为 “-1”时,代表最后一个元素,
#为-2时代表倒数第二个元素,以此推类

print(list3[-1])

输出:['d', ['a', 'b', 'c'], 'e']

#3、使用len()函数得到元素的个数
#4、使用append()方法添加元素到末尾
list3.append("f")

#5、使用insert()方法插入元素到指定位置
list3.insert(1,"g")

#6、使用pop()方法,删除指定位置元素
list3.pop(1)

tuple

tuple是list的固定形式,使用括号"()"定义,也就是说tuple初始化好以后就不能变了。

注意:

1、可以在tuple中引用list元素,这样list元素是可变的。tuple元素就类似于c/c++的 const指针,既指针指向的内容可变,但指针不变。

2、当定义只有一个元素的tuple时,需要添加一个逗号,不然会被解析为一个变量。

#tuple
t = (1,)

#变量
t= (1)

变量

python的变量为动态的,不需要指定变量类型。

#a是整数
a = 123

#a是字符串
a = "ABC"

运算符

需要特别说明除法,与c/c++不一样:

a / b  代表得出浮点值

a // b 代表只得整数

a % b 代表只得余数

条件判断

#注意冒号
if <条件判断1>:
    <执行1>
elif <条件判断2>:
    <执行2>
elif <条件判断3>:
    <执行3>
else:
    <执行4>

循环

#将元素依次赋值给变量,并在循环体中运行

for <变量> in <元素>:
    <循环体>

#当条件为真时,循环体执行
while <条件> :
    <循环体>

#使用break可以退出循环
#使用continue可以跳过这次循环,开始下一次循环

dict

dictionary 的简称,通过{"名称",数值}的方式存放数据,可以快速的通过名称,查找到数值。

#使用大括号定义,"名称":数值方式赋值

d = {"a":1,"b":2}

#取值使用方括号
print(d["a"])

#通过in判断"名称"是否有对应的数值,有则返回True,否则为False

print("a" in d)

#通过get()方法也可以判断"名称"是否有数值
d.get("a")  #若有则返回True,否则无返回
d.get("a",-1) #若没有则返回-1

#使用pop()方法删除一组元素,对应的数值也删除
d.pop("a")

注意:dict中的元素,都必须是常量!

set

set可以看成数学意义上的无序和无重复元素的集合,若有重复元素,会自动被过滤。

#使用set(list)方式初始化
s = set([1,2,3,3,4])

#结果为 {1,2,3,4}

#使用add()方法添加元素
s.add(5)

#使用remove()方法删除元素
s.remove(4)

注意:set中的元素,都必须是常量!

 函数

python内建函数及其使用说明

#通过将函数名赋值给变量的方法,等同于给函数取别名

a = abs
a(-1)

自定义函数,使用如下格式

def <函数名> (<形参>) :
    <函数体>
    return <返回值>

#若<函数体>为pass时,就是一个空函数
#返回值可以有多个,使用逗号隔开,实际上返回的是tuple类型
#形参中可以为其指定默认值,这样在调用函数时可以不用输入默认参数
#注意,默认参数需要指向常量
def power (x, n = 2):                                                                                                                                                                                     
     s = 1                                                                                                                                                                                                 
     while n > 0:                                                                                                                                                    
           n = n -1                                                                                                                                                                                          
           s = s * x                                                                                                                                                                                         
                                   
    return s 
                                                                                                                                                                                            
   print(power(5))  

可变参数的定义如下

#当在形参前面加入星号"*",表示一个可变参数,其内部自动组装为tuple

def calc(*numbers):
    sum = 0
    for n in numbers:
        sum = sum + n * n
    return sum

#当输入的参数是list或者tuple时,也可以在前面加"*",代表依次传入参数

nums = [1, 2, 3]
calc(*nums)

关键字参数的定义如下:

#当在形参前面加入两个星号"**",便是关键字参数,其内部是dict
#在内部可以只传入必选参数
def person(name, age, **kw):
    print('name:', name, 'age:', age, 'other:', kw)

#当外部是dict时,也可以在前面加"**",代表依次传入参数
 extra = {'city': 'Beijing', 'job': 'Engineer'}
 person('Jack', 24, **extra)

#可以用命令关键字参数来限制关键字参数的名字,需要分隔符 *
def person(name, age, *, city, job):
    print(name, age, city, job)

 person('Jack', 24, city='Beijing', job='Engineer')

#当函数定义中有了可变参数,则不需要分隔符 *
person(name, age, *args, city, job):
     print(name, age, args, city, job)

注意:

1、参数的定义顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数

2、对于任意参数,都可以通过func(*args, **kw)的形式调用

3、函数依然可以使用递归调用

 高级特性

切片

切片操作可以从list或tuple中输出指定的一段数据,比如:

L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']

#打印从索引0开始,到3为止,但不包括索引3的元素
print(L[0:3])
#如果第一个索引是0,可以省略
print(L[:3])
#也可以支持倒数,此时0也可以省略
print(L[-2:0])

#也可以指定输出间隔,表示输出前10个数,每两个取一个
print(L[:10:2])

#所有元素,每2个取一个
print(L[::2])

列表生成式

用于快速简单生成list

#生成列表 1*12*2、.......11*11,
#注意表达式 x*x需要放在for前面,整个表达式需要方括号包围
d = [x * x for x in range(1,11)]

#可以在for循环后面加入条件判断
#注意中间并没有冒号
 d = [x * x for x in range(1,11) if x % 2 == 0]     

#可以使用两层循环
[m + n for m in 'ABC' for n in 'XYZ']
#输出:['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

生成器

列表生成式用于一次性产生一个完整的List,而生成器用于每次调用只往后产生一个结果。

#生成生成器 1*12*2、.......11*11,
#注意表达式 x*x需要放在for前面,整个表达式需要圆括号包围
d = (x * x for x in range(1,11))

#可以多次使用print(next(d)),不断输出结果
#也可以使用for循环迭代输出
for n in d:
    print(n)

#也可以定义函数类的生成器,此时odd()函数返回的类型就是生成器,
每调用一次,函数在yield处返回,下次调用则在上次yield后继续执行
def odd():
      print("step 1")
      yield 1
      print("step 2")
      yield 3
      print("step 3")
      yield 5

#比如:
 n = odd()
 print(next(n))
 print(next(n))
 print(next(n))
#输出:
step 1
1
step 2
3
step 3
5
原文地址:https://www.cnblogs.com/KcMeterCEC/p/5919432.html