Python自学笔记D2

第二天,Python基础

一、列表List

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

比如,列出班里所有同学的名字,就可以用一个list表示:

classmates = ['Michael', 'Bob', 'Tracy']
classmates.append('Adam')
classmates.insert(1, 'Jack')
classmates.pop(i)
s = ['python', 'java', ['asp', 'php'], 'scheme']#长度4
print(s[2][1])

classmates[-1] 可以直接获取最后一个元素。-即倒数

append可以末尾插入,insert则是指定位置插入

使用pop可以弹出并删除元素

并且list中元素也可以是另一个List,长度只为1,可以当做二维数组读取

二、元祖tuple

tuple一旦初始化就不能修改(指向)!如果tuple中包含List,则list中元素可以进行改变。
只有一个元素时要加,

classmates = ('Michael', 'Bob', 'Tracy')
classmates = (1,)

三、条件判断

age = input()
age = int(age)
if age >= 18:
    print('adult')
elif age >= 6:
    print('teenager')
else:
    print('kid')

注意!if和elif一定是包含关系,if正确则直接跳过elif和else

四、循环

sum = 0
for x in range(101):
    sum = sum + x
print(sum)

for即遍历
wile用法同理
break可强行退出循环
continue可以跳过本次进入下一次循环(少用)

五、字典dict和set

dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。

dict即在索引表里查这个字对应的页码,然后直接翻到该页,找到这个字。因此无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢。

d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
print(d['Michael'])
95
d['Adam'] = 67 #可以直接对键赋值
'Thomas' in d #判断d中是否有对应键
False
d.get('Thomas', -1) #也可判定,不存在则输出-1
pop('Bob') #删除键和值``

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

dict的两个特点:
查找和插入的速度极快,不会随着key的增加而变慢;
需要占用大量的内存,内存浪费多。

这就是HASH算法,空间换时间,key绝对不能改变!

set则是直接从list中读取,可以过滤重复元素并排序,两个set可以进行& |等运算

s = set([3,3,2,2,1,1])
print(s)
[1,2,3]
s.add(4) #添加元素
s.remove(4)

注意,如果对str等不可变对象进行改变,会生成新str输出。

 a = 'abc'
 b = a.replace('a', 'A')
 print(b)
'Abc'
print(a)
'abc'

六、函数

所有内置函数见收藏——官方文档https://docs.python.org/3/library/functions.html

常用:abs绝对值,max,isinstance(参数检查)

定义函数:(注意!def后注意缩进)

def myabs(x):
    if x <= 0:
        return -x
    else:
        return x

将其保存为ma.py后,可以在当前目录使用from ma import myabs来导入函数。

如果想不出函数该怎么写,可以先使用pass作为占位符。

函数也可以有多个返回值,本质上其实是返回一个省略了括号的tuple

import math用的也不少,很多数学公式需要用到!

在建立函数的时候,可以采取默认值的方式来简化输入运算,并且默认参数一定要指向不变对象

可变参数

加入*号,传入参数个数即可随意改变。

def calc(*nums):
    sum = 0
    for i in nums:
        sum = sum + i * i
    return sum

当参数已经是list或者tuple时,可以使用*list(相当于拆解)

关键字参数

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

def person(name, weigh, **kw):
    print('name:', name, 'weigh:', weigh, 'other:', kw)
def person(name, age, *, city, job):
    print(name, age, city, job)#city和job为必须项
person('Jone', 25, city='Shanghai', job='Engineer')
Jone 25 Shanghai Engineer

**kw为可选项,可以一次包含多个键和值。
使用后,后面几项为必填项,并且需要加上前缀!

可变参数既可以直接传入:func(1, 2, 3),又可以先组装list或tuple,再通过args传入:func(*(1, 2, 3));

关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过kw传入:func(**{‘a’: 1, ‘b’: 2})。

计算n个数的乘积:

def product(x, *y):
    s=x
    for n in y:
       s=s*n
    return s

猜你喜欢

转载自blog.csdn.net/qq_43517875/article/details/106759895
d2