廖雪峰Python学习笔记day2

本文详细介绍了Python的基础语法,包括条件判断、循环语句、字典与集合的操作、函数定义及调用等内容,并通过实例演示了如何运用这些基本概念。
部署运行你感兴趣的模型镜像

学习笔记day1

# python study day2

# 条件判断、else if 简写 elif
# age = int(input('please input your age:'))
# if age >= 3 and age < 18:
#     print('your age is ', age)
#     print('teenager')
# elif age >= 18 and age < 300:
#     print('your are', age, 'years old')
#     print('adult')
# else:
#     print('impossible! your are the oldest person')

# for in 循环
# range()函数可以生成一个整数序列,list()函数可以转换为list
# print(list(range(5))) >>> [0, 1, 2, 3, 4]
# sum = 0
# for i in range(101):
#     sum += i
# print(sum) # 1+2…+100>>> 5050

# while 循环,continue、break(尽量少用continue,break)
# i = 0
# while True:
#     i += 1
#     if i == 10:
#         break
#     if i % 2 == 0:
#         continue
#     print(i)
# print('end while')

# dict (全称dictionary) key-value存储方式,相当于map
# d = {'a':1, 'b':2, 'c':3}
# d['a'] = '00' # 赋值
# print(d)
# print('Key' in d) # 判断key是否存在,返回True、False
# print(d.get('key')) # 获取value,key不存在返回None
# print(d.get('key'), -1) # 不存在返回指定值-1
# d.pop('c') # 弹出删除指定key
# dict 是用空间换取时间的一种方法,保证key的不可变,不能用list作为key

# set 无序不重合集合,初始化set: set(list)
# s = set([1, 1, 2, 3])
# print (s) # 相当dict的key集合 >>> {1, 2, 3}
# s.add(5) # 添加元素
# s.remove(1) # 删除元素
# print(set([2, 6]) & s) # 交集操作
# print(set([2, 3]) | s) # 并集操作

# 内置函数:abs() 绝对值,max() 最大值。参数类型数量错误会返回TypeError
# 数据类型检查内置函数 isinstance()
# x = 's'
# if not isinstance(x, (int, float)):
#     raise TypeError('bad operate type')

# 类型转换
# int(12.1) >>> 12
# bool(1) >>> True

# 函数别名
# a = abs
# a(-1) >>> 1

# 自定义函数,return None 可以简写为 return
# def my_fun(x):
#     if x >= 0:
#         return True
#     else:
#         return False
# print(my_fun(1))
# 空函数 
# def nop():
#     pass # 占位符,解决语法错误

# 多返回值函数(返回元组tuple)
# import math #引入math包,使用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)

# 默认参数函数
# def enroll(name, gender, age=6, city='Beijing'):
#     print(name)
#     print(gender)
#     print(age)
#     print(city)
# enroll('Mary', 'F', city='Shanghai') 
# >>> 
# name: Sarah
# gender: F
# age: 6
# city: Shanghai 
# 默认参数需注意参数必须指向不可变对象
# def add_end(L=[]):
#     L.append('end')
#     print(L)
#     return L
# add_end() #>>> ['end']
# add_end() #>>> ['end', 'end']
# def add_end_fixed(L=None):
#     if L is None:
#         L = []
#     L.append('end')
#     print(L)
#     return L
# add_end_fixed() #>>> ['end']
# add_end_fixed() #>>> ['end']

# 可变参数函数
# 1、可以直接使用list、tuple作为参数变量
# 2、直接逗号分隔输入参数
# def calc(*numbers):
#     for n in numbers:
#         print(n)
#     print('end')
# calc(1, 2, 3)
# calc(*[4, 5, 6])
# calc(*{7, 8, 9})

# 关键字参数,相当于map的dict参数
# def person(name, **kw):
#     print(name, kw)
# person('Straw') #>>> Straw {}
# person('Straw', age = 25, gender = 'F') 
# #>>>Straw {'age': 25, 'gender': 'F'}
# extra = {age = 18, gender = 'F'}
# person('Straw', **extra)
# #>>>Straw {'age': 25, 'gender': 'F'}

# 命名关键字参数,与位置参数不同,调用必须传入命名参数(默认除外)
# def person(name, *, age, job):
#     print(name, age, job)
# person('Lily', age = 16, job = 'Studen')
# def person(name, *args, age, job): #有可变参数时,可省略*
#     pass

# 参数组合,定义参数顺序:必选参数、默认参数、可变参数、关键字参数、命名关键字参数
# def fun1(a, b, c=0, *args, **kw):
#     pass
# def fun2(a, b c=0, *, **kw):
#     pass
# 对于任意函数,都可通过类似func(*args, **kw)调用它,无论其数是如何定义的

# def product(*numbers):
#     if len(numbers) == 0:
#         raise TypeError()
#     s = 1
#     for n in numbers:
#         if isinstance(n, (int, float)):
#             s *= n   
#     return s
# print(product())
# def product(x, *arg):
#     for y in arg:
#         x=x*y
#     return x

# 递归函数
# def fact(n):
#     if n == 1:
#         return 1
#     return n * fact(n - 1)
# # 尾递归,等价于循环。(把结果先计算再循环调用)
# def fact(n):
#     return fact_iter(n, 1)
# def fact_iter(num, product):
#     if num == 1:
#         return product
#     return fact_iter(num - 1, num*product)
# fact(5) --> fact_iter(5, 1)
# ===> fact_iter(5, 1)
# ===> fact_iter(4, 5)
# ===> fact_iter(3, 20)
# ===> fact_iter(2, 60)
# ===> fact_iter(1, 120)
# ===> 120

# 递归汉诺塔
# def move(n, a, b, c):
#     if n == 1:
#         print(a, '-->', c)
#     else:
#         move(n-1, a, c, b) #把最上面的(n-1)个圆盘从柱A移动到柱B
#         print(a, '-->', c) #把最底下的第n个圆盘从柱A移动到柱C
#         move(n-1, b, a, c) #把(n-1)个圆盘从柱B移动到柱C
# move(5, 'A', 'B', 'C')

# L=tuple(range(1,100,2))
# s=tuple(range(1,L[int(len(L)/2)],2))
# print(L,s)

# 高级特性 切片(Slice)
# L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack', 'Alice']
# l1 = L[0: 3] # 取前三个元素 >>> ['Michael', 'Sarah', 'Tracy']
# l2 = L[: 2] # L[0: 2] 零可省略
# l3 = L[-1] # 倒数切片 >>> Alice
# l4 = L[-2:] # 最后俩个
# l5 = L[-2: -1]
# l6 = L[:6:2] # 每两个取一个
# l7 = L[::2] # 所有数每两个取一个
# l8 = L[:] # 原样复制list
# (0, 1, 2, 3, 4, 5)[:3] # tuple切片 >>> (0, 1, 2)
# 'abcdefg'[::2] # 字符切片 >>> 'aceg'

# str.strip() # 去掉字符首尾空格函数
# def trim(s):
#     if s == '':
#         return s
#     if s[0] == ' ':
#         return trim(s[1:])
#     elif s[-1] == ' ':
#         return trim(s[:-1])
#     else:
#         return s
# def trim2(s):
#     while s[:1] == ' ':
#         s = s[1:]
#     while s[-1:] == ' ':
#         s = s[:-1]
#     return s
# print(trim2(''))

在这里插入图片描述
学习笔记day3

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值