Python基础

适合的领域

  • Web网站和各种网络服务

  • 系统工具和脚本

  • “胶水语言”
    在这里插入图片描述
    解释执行,则是需要一个解释器,它会将我们的一句句解释成机器代码来执行,可以认为是,解释一句,执行一句。在这个过程中,不会生成中间文件。

    通过对比发现,编译执行,只需要编译一次,多次运行。而解释执行的话,没运行一次程序,都要经过解释器的解释过程。

基础语法

数据类型

print

在这里插入图片描述

注释

#开头

变量

一个变量可以反复被赋予不同类型的数据。

a = 123    # a是整数
print a
a = 'imooc'   # a变为字符串
print a

这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。

字符串与多行字符串

  • 同时有"或者’可以加转义符\
  • 不想加转义符可以使用r’ ',但多行情况不能使用
  • 多行可以用’’’ ‘’’’,与’Line 1\nLine 2\nLine 3’效果相同
'''Line 1
Line 2
Line 3'''
  • 多行不需要转义符也可以用r’’’ ‘’’’

unicode字符串

整数与浮点数

布尔类型

在Python中,布尔类型还可以与其他数据类型做 and、or和not运算,请看下面的代码:
a = True
print a and ‘a=T’ or ‘a=F’
计算结果不是布尔类型,而是字符串 ‘a=T’,这是为什么呢?

因为Python把0、空字符串’'和None看成 False,**其他数值和非空字符串都看成 True,**所以:

True and ‘a=T’ 计算结果是 ‘a=T’
继续计算 ‘a=T’ or ‘a=F’ 计算结果还是 ‘a=T’

List和Tuple类型

list–[]–append、pop
Tuple–()不可变

if、for、while

dict

d = {
‘Adam’: 95,
‘Lisa’: 85,
‘Bart’: 59
}

set

创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素:
s = set([‘A’, ‘B’, ‘C’, ‘C’])
,set会自动去掉重复的元素,原来的list有4个元素,但set只有3个元素。

函数

返回值

这样我们就可以同时获得返回值:

x, y = move(100, 100, 60, math.pi / 6)
print x, y
151.961524227 70.0
但其实这只是一种假象,Python函数返回的仍然是单一值:

r = move(100, 100, 60, math.pi / 6)
print r
(151.96152422706632, 70.0)
用print打印返回结果,原来返回值是一个tuple!

但是,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便。

定义默认参数

由于函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面:
OK:
def fn1(a, b=1, c=2):
pass
Error:
def fn2(a=1, b):
pass

定义可变参数

切片

取前N个元素,也就是索引为0-(N-1)的元素,可以用循环:
r = []
n = 3
for i in range(n):
r.append(L[i])
r
[‘Adam’, ‘Lisa’, ‘Bart’]

对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作。

对应上面的问题,取前3个元素,用一行代码就可以完成切片:

>>> L[0:3]
['Adam', 'Lisa', 'Bart']
  • 对list进行切片
  • 倒序切片
  • 对字符串切片

迭代

如果一个对象说自己可迭代,那我们就直接用 for 循环去迭代它,可见,迭代是一种抽象的数据操作,它不对迭代对象内部的数据有任何要求。

  • 索引迭代
  • dict的value迭代
  • dict的key和value迭代
    首先,我们看看 dict 对象的 items() 方法返回的值:
    d = { ‘Adam’: 95, ‘Lisa’: 85, ‘Bart’: 59 }
    print d.items()
    [(‘Lisa’, 85), (‘Adam’, 95), (‘Bart’, 59)]
    可以看到,items() 方法把dict对象转换成了包含tuple的list,我们对这个list进行迭代,可以同时获得key和value:
    for key, value in d.items():
    … print key, ‘:’, value

    Lisa : 85
    Adam : 95
    Bart : 59
    和 values() 有一个 itervalues() 类似, items() 也有一个对应的 iteritems(),iteritems() 不把dict转换成list,而是在迭代过程中不断给出 tuple,所以, iteritems() 不占用额外的内存。

列表生成式

  • 生成列表
  • 复杂表达式
  • 条件过滤
  • 多层表达式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值