Python基础语法笔记

本文内容摘自《Python数据分析与挖掘实战》。

目录

1.1 赋值、运算、输出

1.2 if-else 条件判断

1.3 for / while 循环操作

1.4 函数定义及调用

1.5 列表和元组

1.6 字符串、元组、列表的操作

1.7 字典和集合

 1.8 函数式编程

1.8.1 lambda()

1.8.2 map()

1.8.3 reduce()

1.8.4 filter() 


1.1 赋值、运算、输出

#1.基础操作
a = 20  		        # 赋值运算
a * 1	                # 数学四则运算
a ** 2                  # 幂运算,即a^2,a*a
a, b, c = 2, 3, 4       # 支持多重赋值
print('Hello World!')   # 打印Hello World!

1.2 if-else 条件判断

# 条件判断if
if 1 == 2: # 如果 if 跟随的条件为 假 那么不执行属于if 的语句,然后执行 elif 或者 else
    print("假的")
elif : 
	pass
else: # 寻找到 else 之后 执行属于else中的语句
    print("1==2是假的")

# Python 一般不用花括号{},也不用end语句,而是使用缩进对齐作为语句的层次标记。
# 同一层次的缩进量一定要一一对应,不然会报错。
# 只能有一个if / else, elif可以有多个 



# 如果条件判断很多,if-else写也很繁琐,其实也可以用字典实现
test = {'2': 'a=2',
'3': 'a=3',
'4': 'a=4',
}
a = 2
print(test.get(a,'默认输出'))		# 如果a 的值在字典中不存在,则默认输出None,也可以修改默认输出(需要使用get函数)。

1.3 for / while 循环操作

# 循环操作---while
sum, n = 0
while n < 101: # 该循环过程用于求和计算 1+2+3+...+100
    n = n + 1
    sum = sum + n
print(sum)

# 循环操作---for
sum = 0
for i in range(101): # 该循环过程用于求和计算 1+2+3+...+100	
    sum = sum + i
print(sum)

# 关键字 in 作用:判断一个元素是否在列表/元组中存在。
# 关键字 range 作用:用来生成连续序列,
# 一般语法 range(a, b, c), 表示以 a 为首相、c 为公差且不超过 b-1 的等差数列。
s = 0
if s in range(4):
	prinf("s 在[0,1,2,3]中")
if s not in range(1, 4, 1)
	prinf("s 不在[1,2,3]中")


# break、continue
# break语句可以跳出 for 和 while 的循环体
n = 1
while n <= 100:
    if n > 10:
        break
    print(n)
    n += 1

# continue语句跳过当前循环,直接进行下一轮循环
n = 1
while n < 10:
    n = n + 1
    if n % 2 == 0:
        continue
    print(n)

1.4 函数定义及调用

Python 函数一定会有返回值,如果没有return,会返回None。

需要注意的是,Python 与一般编程语言不同的是,函数返回值可以使各种形式,比如返回列表,甚至返回多个值

# 函数定义及调用
def add(x):
    return x+2

print(add(5)) # 输出结果为7

def add_2(x = 0, y = 0):
    return [x+2, y+2]
def add_3(x, y):
    return x+3, y+3
a, b = add_3(1, 2) # 此时 a=4, b=5

# 行内函数,又称匿名函数、拉姆达函数
f = lambda x :x + 2 # 定义 f(x) = x + 2
g = lambda x, y :x + y # 定义 g(x, y) = x + y

1.5 列表和元组

# 数据结构---List(列表)
# 列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
# 列表元素可以是任何数据类型,
# 列表里面可以套列表
# 列表索引值以 0 为开始值,-1 为从末尾的开始位置。

list = ['abcd', 786 , 2.23, 'runoob', 70.2]
print(list[1:3])

# 列表可以使用 + 操作符进行拼接。

tinylist = [123, 'runoob']
print(list + tinylist)

# 列表中的内容可以被修改
list[0] = 'hello'  # 原来的值 abcd 被修改为 hello

# 复制列表
# b = a 	# 错误,此乃引用,修改 b 的同时会修改 a
b = a[:]	# 正确

# 数据结构---Tuple(元组)
# tuple与list类似,不同之处在于tuple的元素不能修改。tuple写在小括号里,元素之间用逗号隔开。
# 元组元素可以是任何数据类型,
# 元组里面可以套元组
# 元组的元素不可变,但可以包含可变对象,如list。
t1 = ('abcd', 786 , 2.23, 'runoob', 70.2)  # 此处是(),而列表是[]

# 注意:定义一个只有1个元素的tuple,必须加逗号。
t2 = (1, )

t3 = ('a', 'b', ['A', 'B'])    # 元组的元素不可变,但可以包含可变对象,如list。
t3[2][0] = 'X'   #  ['A', 'B']  ->  ['X', 'B']
print(t3)  # ('a', 'b', ['X', 'B'])

 

1.6 字符串、元组、列表的操作

字符串和元组不支持修改,即二次赋值。

#字符串、元组、列表,读取操作完全相同,拼接操作完全相同,可以相互转换,都可以做切片操作,都可以通过下标读取
str = '我是字符串'
list = ['我', '是', '列','表']
list = ('我', '是', '元','组')
# 读取
str[2]
list[2]
tuple[2]
# 拼接
str + str1 
list + list2
tuple + tuple2
# 切片
str[1:4] #是字符,左包括,右不包括
list[1:3] #是列
tuple[1:3] #是元

str[1:] # 是字符串,去掉了第一个元素(下标0),
str[:-1] # 我是字符,去掉了最后一个元素(下标-1),右边不包括
str[-1:] # 串,取出最后一个元素
str[::-1] # 串符字是我,倒序输出
str[::-2] # ------------------------------------这个不知道是什么
str[:] # 复制一份,
# 原理:
# 当i缺省时,默认为0,即 a[:3]相当于 a[0:3]
# 当j缺省时,默认为len(alist), 即a[1:]相当于a[1:10]
# 当i,j都缺省时,a[:]就相当于完整复制一份a

# b = a[i:j:s]    # 表示:i,j与上面的一样,但s表示步进,缺省为1.
# 所以a[i:j:1]相当于a[i:j]

# 当s<0时,i缺省时,默认为-1. j缺省时,默认为-len(a)-1
# 所以a[::-1]相当于 a[-1:-len(a)-1:-1],也就是从最后一个元素到第一个元素复制一遍,即倒序。

1.7 字典和集合

# 5.数据类型---dict(字典)
# 字典是无序的对象集合,使用键-值(key-value)存储,具有极快的查找速度。
# 键(key)必须使用不可变类型。
# 同一个字典中,键(key)必须是唯一的。

# 字典的创建和元素的访问
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
print(d['Michael'])

# list可以转成字典,但前提是列表中元素都要成对出现
dict3 = dict([('name','杨超越'),('weight',45)])
print(dict3)



#字典里的函数 items()  keys() values()

dict5 = {'杨超越':165,'虞书欣':166,'上官喜爱':164}
print(dict5.items())

for key in dict5:	#默认为key(),打印的都是key值,
	print(key)

for value in dict5.values():	# 打印value值
	print(key)

for key,value in dict5.items():		# key 和 value 都打印
    print(key, value)
#5.数据类型---set(集合)
#set和列表类似,区别是:1、set是无序的且不可重复,重复元素在set中自动被过滤。2、不支持索引。

s = {1, 1, 2, 3} # 1会自动去重,实际得到{1, 2, 3}
s = set([1, 1, 2, 2, 3, 3]) # set函数将列表转换成集合,自动去重,实际得到{1, 2, 3}

# set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集(&)、并集(|)、差集(-)等操作。

 1.8 函数式编程

1.8.1 lambda()

# 行内函数,又称匿名函数、拉姆达函数
f = lambda x :x + 2 # 定义 f(x) = x + 2
g = lambda x, y :x + y # 定义 g(x, y) = x + y匿名函数

1.8.2 map()

有了列表解析,为什么还要有map函数呢?

其实列表解析,虽然代码简短,但是本质上还是 for 命令,而Python的for命令效率不高,map函数不仅实现了相同的功能,而且效率高。

1.8.3 reduce()

1.8.4 filter() 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值