#输入三角形的三边,求三角形的周长和面积
def len(a,b,c):
import math
if a + b > c > a - b:
l = a + b + c
print("周长为%d"%l)
else:
print("不是三角形")
def s(a,b,c):
import math
if a + b > c > a - b:
p = (a + b +c)/2
area = math.sqrt(p * (p - a) * (p - b) * (p - c))
print("面积为%d"%area)
else:
print("不是三角形")
a = int(input("请输入边长a:"))
b = int(input("请输入边长b:"))
c = int(input("请输入边长c:"))
len(a,b,c)
s(a,b,c)
#鸡兔同笼:从上边数35个头,从下面看94只脚,问鸡和兔各几只
def x(n,m):
a = (m - 2 * n)/2
b = n - a
print("兔有:%d"%a)
print("鸡有:%d"%b)
n = int(input("请输入一共多少头:"))
m = int(input("请输入一共多少脚:"))
x(n,m)
#如果一个整数能被2或3整除,那它就不是素数
def num(n):
if n % 2 == 0:
print("不是素数")
return False
if n % 3 == 0:
print("不是素数")
return False
else:
print("是素数")
return True
m = int(input("请输入一个整数:"))
num(n)
#一对兔子在第三个月开始每个月都生一对兔子,而每对小兔子出身一个月后开始每个月生一对小兔子问从一对刚出生小兔子开始经过多少月后有多少小兔子
def m(n):
if n == 1:
return 1
if n == 2:
return 1
else:
return m(n-2) + m(n-1)
a = m(6)
print(a)
排序
1.如何去交换两个变量的值:
a = 10
b = 20
临时变量
c = a
a = b
b = c
print(a)
print(b)
冒泡排序:两两比较最大的放尾部
选择排序:找最小值与假设的最小值进行互换
插入排序:默认第一个元素是有序的,之后一次插入后面的每一个值(多次比较),最终得到比较结果
计数排序:创建容器最大值与最小值的偏值的数组并清空为0
二分查找(折半查找):在有序序列中高效的查找指定的元素
函数:
组织好的,可以重复利用的,用于实现特定功能的代码块
int()input()print()float()
def 关键字 函数名(参数1,参数2......):
函数体
return 语句
(返回函数的返回值,可以返回多个值,事实上是返回了一个元组,多个变量可以同时接受一个元组)
def my_abs(x):
if x < 0:
return -x
else:
return x
a = my_abs(-3)
print(a)
def n():#函数n输出11111
print("11111")
b = n()
print(b)
c = n
c()
类型检查
#传入参数类型检查 raise 抛出异常
def my_abc(x):
if not isinstance(x,(int,float)):
raise TypeError
a = my_abc(2)
print(a)
my_abc('ddd')
事实上,函数返回的是一个元组,多个变量可以同时接受一个元组
def sum_01():
a = 1
b = 2
return a,b
a,b = sum_01()
print(a)
print(b)
v,b,n = (1,2,3)
print(v)
print(n)
print(b)
暂时不用可以用pass语句来作为占位符
函数可以返回多个值,其实就是一个tuple(元组)
参数
位置参数
1,数量必须与定义一致
2,位置必须与定义时一致
默认值参数
默认值只执行一次
默认参数后面必须也是默认参数
官方推荐:默认值尽量使用不可变类型,原因在于可变对象会存储器在后续调用过程中传递给它的参数
函数在定义的时候,默认参数的值会被计算出来,即[],因为默认参数b也是变量,指向对象[],每次调用函数,如果改变了b里边的内容,则在下一次调用时,默认参数的内容也改变了
关键字参数:函数调用时,指定参数的名称,即为关键字参数
命名关键字参数
限定后边的的参数必须是以关键字形式传参
可变参数
*参数(可变参数):常见的*args
默认自动接受所有未匹配的位置参数,到一个元组对象里
def abc(a,*b):
print(a)
print(b)
abc(100,1,2,3,5,66)
结果:
100
(1, 2, 3, 5, 66)