Python学习代码——基础篇

参考教材连接:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

print("你好 世界")

name=["lll","gx","zj","xx"]
print(name[-2])

# 判断测试 
xmTail=1.75
xmWight=80.5
BMI=xmWight/(xmTail*xmTail)
print(BMI)

if BMI<18.5:
    print("小明过轻")
elif BMI>=18.5 and BMI<25:
    print("小明正常")
elif BMI>=25 and BMI < 28:
    print("小明过重")
elif BMI>=28 and BMI < 32:
    print("小明肥胖")
else :
    print("小明严重肥胖")
    
# 循环测试  
names=["xiaoli","dali","li","guan"]
for name in names:
 print(name)
numbers=[1,2,3,4,5]
# range(5)函数是生产序列数方法
for number in range(5):
    print(number)
# python中的dict 类似java中的map
dict = {'Michael': "kjksd",'Bob': "kkkk",'Tracy': "ooxx"}
print( dict['Michael'])
# 判断可以是否存在
print('Thomas' in dict)
# 如果jjk不存在返回None
print(dict.get("jjk"))
# 删除dict中的值
dict.pop('Bob')
print(dict)

# set 类似于数组无序 不重复
s = set([1, 2, 3])
print(s)
s.add("s")
print(s)
s.remove("s")
print(s)
s1 = set([1, 2, 3])
s2 = set([2, 3, 4])
print("s1取交集 ")
print(s1 & s2)
print("s1取并集 ")
print(s1 | s2)

# 取绝对值
print(abs(-1.23))
print(abs(1.23))
# 取最大值
print(max(1,2,3,4,5,8))
arr=[1,2,3,4,4,5]
print(max(arr))
# 取最小值
print(min(1,2,3,4,5,8))
arr=[1,2,3,4,4,5]
print(min(arr))
# 类型转换
print(int('123'))
print(int(12.34))
print(float('12.34'))
print(str(1.23))
print(str(100))
print(bool(1))
print(hex(23))
# 函数的定义和调用
from _ast import Num
def sum_seris(x):
    sum=0
    for number in range(x):
        print(number)
        sum = sum + number
    return sum
# 调用函数
print(sum_seris(10))
# 不做任何处理用pass
def Test_number(x):
    s=0
    if x==5:
        s=100
    elif x==10:
        s=1000
    else:
        pass
    return s
print(Test_number(11))
# 参数检查
def Test_number1(x):
    if not isinstance(x, (int, float)):
        raise TypeError('参数类型不对')
    s=0
    if x==5:
        s=100
    elif x==10:
        s=1000
    else:
        pass
    return s
print(Test_number1(11))
# python可以有多个返回值

# 默认返回值
def infor(name,gender,age=7,city="wuhan"):
    print('name:', name)
    print('gender:', gender)
    print('age:', age)
    print('city:', city)
    
print(infor("lll","n"))
print(infor("zj","w",6))
print(infor("gx","w",6,'hefei'))

#传递list参数
def calc(numbers):
    sum = 0
    for n in numbers:
        sum = sum + n * n
    return sum
print(calc([1, 2, 3]))
print(calc([1, 2, 3,7,9]))

#传递可变参数
def calcs(*numbers):
    sum = 0
    for n in numbers:
        sum = sum + n * n
    return sum
print(calcs(1, 2, 3))
print(calcs())

#python 中的切片操作符slice
L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
print(L[0:3])
print(L[:3])
print(L[0:])
LL=L = list(range(100))
print(LL[:10:2]) #前10个数,每两个取一个
print(LL[::5]) #取所有,每五个取一个

# 列表生成式代替循环
print([x * x for x in range(1, 11)])

#for循环后面还可以加上if判断 仅偶数的平方
print([x * x for x in range(1, 11) if x % 2 == 0])

#双重循环
print([m + n for m in 'ABC' for n in 'XYZ'])

#判断是否为数字或者字母
#用isdigit函数判断是否数字
str_1 = "123"
str_2 = "Abc"
str_3 = "123Abc"
print(str_1.isdigit())
#用isalpha判断是否字母
print(str_1.isalpha())  
#isalnum判断是否数字和字母的组合
print(str_1.isalpha())  

#生成器
g = (x * x for x in range(10))
print(next(g)) 
#map()传入的第一个参数是f,即函数对象本身。
#由于结果r是一个Iterator,Iterator是惰性序列,
#因此通过list()函数让它把整个序列都计算出来并返回一个list。
from _functools import reduce
def f(x):
    return x+x 
r = map(f,[1,2,3])
print(list(r))

#reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,
#这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算
def add(x,y):
    return x+y
print(reduce(add,[1,3,5,7]))

#练习把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字
def returnName(Str):
    rStr=''
    for n,x in enumerate(Str,1):
        if x.islower() and n==1:
            x=x.upper() 
        elif x.isupper() and n !=1:
            x=x.lower();
        rStr=rStr+x
    return rStr
print(returnName("admin"))
print(list(map(returnName,['adam', 'LISA', 'barT'])))

#upper()  :将字符串转成大写,并返回一个拷贝
#lower()  :将字符串转成小写,并返回一个拷贝
#capitalize() :将字符串首字母,并返回一个拷贝
#title() :将每个单词的首字母大写,并返回一个拷贝
#isupper() :判断一个字符串是否是大写
#islower() :判断一个字符串是否是小写

#filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素
#,然后根据返回值是True还是False决定保留还是丢弃该元素。
def is_odd(n):
    return n % 2 == 1

print(list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15])))
print(list(map(is_odd, [1, 2, 4, 5, 6, 9, 10, 15])))

#Python内置的sorted()函数就可以对list进行排序
print(sorted([36, 5, -12, 9, -21]))
#绝对值大小排序
print(sorted([36, 5, -12, 9, -21], key=abs))
#倒序排列
print(sorted([36, 5, -12, 9, -21],reverse=True))
#字母排序可实现忽略大小写的排序
print(sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower))

#关键字lambda表示匿名函数,冒号前面的x表示函数参数
print(list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])))

#装饰器  
def log(func):
    def wrapper(*args, **kw):
        print('call %s():' % func.__name__)
        return func(*args, **kw)
    return wrapper
@log
def now():
    print('2015-3-25')
print(now())

#偏函数 进制转换
def int2(x, base=2):
    return int(x, base)
print(int2('1010101'))

猜你喜欢

转载自www.cnblogs.com/LiLiliang/p/8872908.html