# 基础知识学习
# 显示
print(3)
print(3**3) # 幂计算
print("冬天的一把火")
print("这句话是'动态经济学'") # 多重字符显示
# 多行注释
'''
注释1
注释2
注释3
'''
# 多重赋值
a,b,c=2,3,4
# 字符拼接
print('Very much' + 'I like it !')
# 字符分隔
b='你好呀,你叫什么名字?'
c='i like it very much'
print(b.split(',')) #将 b 以 “,” 为识别号进行分隔
print(c.split(' '))
# 循环语句 for ; while ; if
# 自定义函数
def jiahe(a,b):
c=a+b
return c
print(jiahe(3,5))
# for循环语句
def sum(n): # 求和函数
p=0
for i in range(1,n+1):
p=p+i
return p
print(sum(30))
# while 循环
def sum2(n):
p,i=0,0
while i
p=p+i
i=i+1
return p
print(sum2(30))
# if 语句
s=0
if s in range(4):
print('s在0,1,2,3')
if s not in range(1,4,1):
print('s不在1,2,3')
# 自定义序列,排列
for i in range(5):
print(i)
for j in (1,3,2,1):
print(j)
## --- 数据结构 --- ##
# ----------------------------------------------------------------------------- 列表 (List) / 元组(Tuple)
list1=[1,2,3,'a',[1,2,3]] # 用[] 里面什么都可以放
print(list1[0:4]) # 访问方式也是 [下标]
print(list1[3])
print(list1[4])
list1[0]='修改' # 列表元素可以被修改
copy1=list1 # !!!! 这里只是将 list1 重新增加个别名,而非复制值 给 copy1, 复制方式:copy1=list1[:]
print(list1)
# - 元组 (Tuple)
tuple1=(1,2,3,'您好',[1,2]) # 元组 可以放任何东西,但用 () 来表示
#---------------------------------------------------------------
# try:
# tuple1(1)=2 # 会报错,元组元素不能被修改
# except:
# print('Tuple元组 元素 不能修改')
#---------------------------------------------------------------
# 将对象转换为:list 或 tuple
print(list('very much')) # list函数
print(list1) # tuple函数
print(tuple(list1))
# 列表/元组 函数比较
import operator
print(operator.eq([1,2,3,'a'],[1,5,3,'a'])) # 比较两个 列表 / 元组 的元素
print(operator.eq('ab','ab'))
# min(a)/sum(a)/max(a)
# len(a): 计算 元组 / 列表 元素个数
# sorted(a): 对列表的元素进行升序排列
# 列表的常用函数
ex=[1,2,3,4,1,2,3,7,4,2]
ex.append('增加项') # 尾部增加一项 也可以使用 ex.extend()函数
print(ex.count(1)) # 统计元素 1 在ex中的频率
print(ex.index(4)) # 在列表ex中元素 1 的 下标 (首个出现的下标)
print(ex.insert(2,1))# 在索引 2 位置 插入元素 1
print(ex.pop(2)) # 移除列表位置2的元素
# 列表解析
#----------------
a=[1,2,3]
b=[]
for i in a:
b.append(i+2)
#----------------等同上面代码
a=[1,2,3]
b=[i+2 for i in a]
# ----------------------------------------------------------------------------- 字典 (字典很多操作类似 list )
# (自定义 键 与 值 之间的映射, 键必须是唯一的)
# 创建
d1={'today':20,'tomorrow':30} # 方式一
d2=dict([['today',20],['tomorrow',30]]) # 方式二
d3=dict.fromkeys(['today','tomorrow'],20) # 方式三
# 访问
print(d1['today'])
# ----------------------------------------------------------------------------- 集合
# 1. 元素不能重复,无序; 2. 不支持索引 3. 用 {}/set()函数创建
s1= # 最后一个2会自动剔除
s2=set([1,2,3,2,3,1]) # 将列表转换为集合
# 由于集合的特殊性质 无序性等 所有存在一些特殊的算法;
a=s1s2 # 计算s1 s2的 合集
b=s1&s2 # 计算两个集合的 并集
c=s1-s2 # 求差集 (在s1中 而不再s2中)
d=s1^s2 # 对称差值 (在 s1 或者 s2 中,但不同时存在s1和s2中)
#-------------------------------------------------------函数式编程 lambda/map/reduce/filter. --速度效率较for函数高
# 方便定义简单的函数
# lambda定义 (太好用了)
f=lambda x: x+2 # 定义了一个函数 f(x)=x+2
g=lambda x,y: x**y+x # 定义了一个函数 f(x,y)=x+y
print(f(4))
print(g(2,3))
# map函数(等价函数操作)
b1=[i+2 for i in a]
b2=map(lambda x:x+2,a) # 将a元素给 x,然后使用 x+2函数计算得到结果给 b2 ,逐一历遍
print(list(b2))
# reduce函数
from functools import reduce
reduce(lambda x,y:x*y,range(1,3+1)) # 首先列表前两个元素赋值x,y计算,然后将计算结果和后面第三个元素计算,依次计算。。。
print(reduce(lambda x,y:x*y,range(1,10+1))) # 等价于 10!
# filter函数: 筛选出满足要求的元素
b=filter(lambda x:x>5 and x
b=list(b)
# 等价如下函数
b=[i for i in range(10) if i>5 and i
领取专属 10元无门槛券
私享最新 技术干货