python3 的简单练习

#!/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("*")
########################################################

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值