#!/usr/bin/env python3
# -*-coding:utf-8 -*-
#chmod a+x hello.py ,这样可以直接以./hello.py 的形式运行文件
########################################################
def weight():
h = input('please enter your height:')
w = input('please enter your weight:')
h = float(h)
w = float(w)
a = w/(h*h)
if a<18.5:
print('过轻')
elif a >=18.5 and a <25:
print('正常')
elif a>=25 and a<28:
print('过重')
elif a>=28 and a<32:
print('肥胖')
elif a>32:
print('严重肥胖')
########################################################
########################################################
import math
def my_abs(x):
if not isinstance(x, (int, float)):
raise TypeError('bad operand type')
if x >=0:
return x
else:
return -x
def move(x, y, step, angle=0):
nx = x + step*math.cos(angle)
ny = y + step*math.sin(angle)
return nx, ny
print("绝对值函数:")
n = my_abs(-20)
print (n)
x,y = move(100,100,60,math.pi/6)
print("点以某个角度移动:")
print(x,y)
########################################################
########################################################
def quadratic(a,b,c):
# a*x^2+b*x+c=0 , 一元二次方程的根
cc = (b*b - 4*a*c)/(4*a*a)
c = math.sqrt(cc) #开跟
x1 = c - (b/(2*a))
x2 = -c - (b/(2*a))
return x1, x2
print("求一元二次方程的根")
print (quadratic(2, 3, 1))
print (quadratic(1, 3, -4))
########################################################
########################################################
#计算某个数的 n 次方值,默认是平方
def power(x, n=2):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
print("计算某个数的 n 次方值,默认是平方")
print(power(5))
########################################################
########################################################
#a,b 是必选参数, c 是默认参数, args 是可变参数, kw 是关键字参数
def f1(a, b, c=0, *args, **kw):
print('a=', a, 'b=', b, 'c=', c, 'args=', args, 'kw=', kw)
#a,b 是必选参数, c是默认参数, d 是命名关键字参数(可选参数不存在的时候,前面加*), kw 是关键字参数
def f2(a, b, c=0, *, d, **kw):
print('a=', a, 'b=', b, 'c=', c, 'd=', d, 'kw=', kw)
args = (1,2,3,4)
kw={'d':99, 'x':'#'}
f1(*args, **kw)
args=(1,2,3)
kw={'d':99, 'x':'#'}
f2(*args, **kw)
########################################################
########################################################
#递归函数求 n!阶乘
def fact(n):
if n ==1:
return 1
return n*fact(n-1)
print(fact(5))
a = ['a', 'b', 'c', 'd']
print(a[0:3])#取出数组中的前3个元素,从索引0开始到索引3结束,不包括3. a[-2]数组倒数第二个元素
print('ABCDEFG'[:3])#去字符串中前3个字符
########################################################
########################################################
#for in 循环迭代对象
d = {'a':1, 'b':2, 'c':3}
for key in d:
#遍历字典中所有key,字典默认迭代的是 key; for value in d.values(),迭代 value; for k,v in d.items(),同时迭代key和 value
print(key)
for i, value in enumerate(['A', 'B', 'C']):
print (i,value)
########################################################
########################################################
#判断一个对象是否可迭代
from collections import Iterable
print(isinstance('abc', Iterable)) #True, 字符串遍历的是每一个字符
print(isinstance([1,2,3] Iterable)) #True
print(isinstance(123, Iterable)) #False
########################################################
########################################################
import os
#[d for d in os.listdir('.')] #os.listdir 列出文件和目录
L = ['Hello', 'World', 'IBM', 'Apple']
#[s.lower() for s in L] #['hello', 'world', 'ibm', 'apple'] list 中所有字符串变小写
#高阶函数
def f(x):
return x*x
#r = map(f, [1,2,3,4,5,6]) #map(a,b), a 是函数,b 是 Iterable
#list(r) #[1,4,9,16,25,36]
def is_odd(n):
return n%2 == 1
#list(filter(is_odd, [1,2,3,4,5])) #结果:[1,3,5]
#Python字符串strip()方法返回从字符串的开始和结束(默认空格字符)中删除指定所有字符的字符串的副本。e.strip("*")
########################################################
python3 的简单练习
最新推荐文章于 2023-02-22 16:51:44 发布