Python心得笔记 (1)

python基础

1.使用list和tuple

list

例如:
>>> classmates[“Michael”,”Bob”,”Tracy”]
//用函数”len()”求得list的个数
>>> len(classmates)
>>> 3


用索引来访问list中的每一个元素
>>> classmates[0]
‘Michael’
>>> classmates[1]
‘Bob’
>>> classmates[2]
‘Tracy’


取最后一个元素
>>> classmates[-1]


依次递推可以获取倒数第2个,倒数第3个
>>> classmates[-2]
‘Bob’
>>> classmates[-3]
‘Michael’


把元素查到指定的位置
>>> classmates.insert(1,’Jack’)
>>> classmates
[‘Michael’,’Jack’,’Bob’,’Tracy’]


list是一个可变的有序表,所以,可以往list中追加元素到末尾
>>> classmates.append(‘Adam’)
>>> classmates
[‘Michael’, ‘Bob’, ‘Tracy’, ‘Adam’]


要删除list末尾的元素,用pop()方法:
>>> classmates.pop()
‘Adam’
>>> classmates
[‘Michael’, ‘Jack’, ‘Bob’, ‘Tracy’]


要删除指定位置的元素,用pop(i)方法,其中i是索引位置:
>>> classmates.pop(1)
‘Jack’
>>> classmates
[‘Michael’, ‘Bob’, ‘Tracy’]


要把某个元素替换成别的元素,可以直接赋值给对应的索引位置:
>>> classmates[1] = ‘Sarah’
>>> classmates
[‘Michael’, ‘Sarah’, ‘Tracy’]


如果一个list中一个元素也没有,就是一个空的list,它的长度为0:
>>> L = []
>>> len(L)
0


Tuple

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改

tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,比如:
>>> t = (1, 2)
>>> t
(1, 2)


如果要定义一个空的tuple,可以写成():
>>> t = ()
>>> t
()


只有1个元素的tuple定义时必须加一个逗号
>>> t = (1,)
>>> t
(1,)


条件判断

elif是else if的缩写,完全可以有多个elif,所以if语句的完整形式就是

if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>

注意:if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else

if 判断条件的简写

if x:
print('True')

循环

for…in循环
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name)

rang(n)函数:生成一个从0开始小于n的整数序列

例如:计算1~100以内的整数和:

sum=0
for x in range(101)
    sum=sum+x;
while

eg:计算100以内的奇数和

sum=0
n=99
while n>0:
    sum=sum+n
    n=n-2
print(sum)
Dict 字典
    >>>d={'Michael':95,'Bob':75,'Tracy':85}
    >>>d['Michael']
    95

初始化Dic

        >>> d['Adam'] = 67
        >>> d['Adam']
        67

由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉:

    >>> d['Jack'] = 90
    >>> d['Jack']
    90
    >>> d['Jack'] = 88
    >>> d['Jack']
    88

要避免key不存在的错误,有两种办法,一是通过in判断key是否存在:

        >>> 'Thomas' in d
        False

key不存在的错误,有两种办法

方法1:

>>> 'Thomas' in d
False

方法2:

>>> d.get('Thomas')
>>> d.get('Thomas', -1)

注意:返回None的时候Python的交互式命令行不显示结果。

要删除一个key,用pop(key)方法,对应的value也会从dict中删除:

>>> d.pop('Bob')
75
>>> d
{'Michael': 95, 'Tracy': 85}

注意,dict内部存放的顺序和key放入的顺序是没有关系的。

Set

本质:是key的集合

创建set

>>>s=set([1,2,3])
>>>s

{1,2,3}
注意:传入的[1,2,3]是一个list,

重复元素在set中自动被过滤:

>>>s=set([1,1,2,2,3,3])
>>>s
{1,2,3}

通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:

>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}

通过remove(key)方法可以删除元素:

>>> s.remove(4)
>>> s
{1, 2, 3}

set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:

>>>s1=set([1,2,3])
>>>s2=set([2,3,4])
>>>s1&s2
{2,3}
>>>s1|s2
{1,2,3,4}

2.函数

(1)调用函数

函数可以同时返回多个值,但其实就是一个tuple。

import math

def move(x, y, step, angle=0):
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx, ny

>>> x, y = move(100, 100, 60, math.pi / 6)
>>> print(x, y)
151.96152422706632 70.0

>>> r = move(100, 100, 60, math.pi / 6)
>>> print(r)
(151.96152422706632, 70.0)

(2)函数的定义

请定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程:

ax2 + bx + c = 0 的两个解。

import math

def quadratic(a,b,c):
if a==0:
    d=-c/b
    print("d")

elif b*b-4*a*c<0:
    print("方程无解")
else:
    t=math.sqrt(b*b-4*a*c)
    x1=(-b-t)/(2*a)
    x2=(-b+t)/(2*a)
    print("x1=",x1)
    print("x2=",x2)

print(quadratic(2,3,1))
print("------------------")
print(quadratic(1,3,-4))
print("------------------")
print(quadratic(0,2,-4))

(3)函数的参数

位置参数
默认参数

牢记一点:默认参数必须指向不变对象!

def add_end(L=None):
if L is None:
    L = []
L.append('END')
return L

现在,无论调用多少次,都不会有问题:

>>> add_end()
['END']
>>> add_end()
['END']
可变参数
def calc(*numbers):
sum = 0
for n in numbers:
    sum = sum + n * n
return sum

定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple,因此,函数代码完全不变。但是,调用该函数时,可以传入任意个参数,包括0个参数:

>>> calc(1, 2)
5
>>> calc()
0
关键字参数

关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。请看示例:

def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值