python基础函数

冒泡排序

def sortport(lis):
    for i in range(len(lis)-1):
        for j in range(len(lis)-1-i):
            if(lis[j]<lis[j+1]):
                lis[j],lis[j+1]=lis[j+1],lis[j]
    return lis


lis=[10,8,3,4,5,6,7,2,1,9]

sortport(lis)
for i in range(len(lis)):
    print(lis[i],end=' ')

在这里插入图片描述

计算x 的 n 次方

def power(x,n):
    s=1
    while(n>0):
        s*=x
        n-=1
    return s

print(power(2,3))

在这里插入图片描述

计算a * a + b * b + c * c + …

def mulc(number):
    s=0
    for i in range(len(number)):
        s+=number[i]*number[i]
    return s

lis=[1,2,3]
print(mulc(lis))

在这里插入图片描述

计算阶乘 n!

def fac():
    n=int(input("请输入您要计算的数:"))
    if(n<0):
        print("对不起,负数没有阶乘。。。。。")
    elif n==0:
        print("0的阶乘为1。")
    else:
        s=1
        for i in range(1,n+1):
            s*=i
        print("%d的阶乘为%d" % (n,s))

fac()    

在这里插入图片描述

列出当前目录下的所有文件和目录名

1.
import os

for d in os.listdir('.'):
    print(d)

2.
[d for d in os.listdir('.')]

在这里插入图片描述

把一个list中所有的字符串变成小写:

print([item.lower() for item in ['ABC','SHAREJS.COM']])

在这里插入图片描述

输出某个路径下的所有文件和文件夹的路径

1.
import os

def dir_print():
    path=input("请输入您要查找的路径:")
    if (path==""):
        print("请输入正确地路径!")
    else:
        for i in os.listdir(path):
            print(i)
            
dir_print()          

在这里插入图片描述

2.
import os

def dir_print():
    path=input("请输入您要查找的路径:")
    if (path==""):
        print("请输入正确地路径!")
    else:
        for i in os.listdir(path):
            print(os.path.join(path,i))    #把路径组合起来
            
dir_print()

在这里插入图片描述

输出某个路径及其子目录下的所有文件路径

一开始总是出现此类报错:
在这里插入图片描述

原因1:用python3 的import os 访问路径时报错:
SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: truncated \UX
原因:文件中的\u被编译器认为是八进制
解决方法:访问路径前加一个r

import os

def show_dir(filepath):
    for i in os.listdir(filepath):
        path=(os.path.join(filepath,i))
        print(path)
        if os.path.isdir(path):
            show_dir(path)
            
filepath=r"C:\Users\win10\Desktop\python"
show_dir(filepath)

原因2:后斜杠‘\’导致的,python中的‘\’代表转义字符。与路径造成了混 淆。
解决办法:把路径中的后斜杠‘\’改为前斜杠‘/’,或者改为双后斜杠‘\’就可以了。

import os

def show_dir(filepath):
    for i in os.listdir(filepath):
        path=(os.path.join(filepath,i))
        print(path)
        if os.path.isdir(path):
            show_dir(path)
            
filepath="C:/Users/win10/Desktop/python"
show_dir(filepath)

在这里插入图片描述

输出某个路径及其子目录下所有以.html为后缀的文件

import os

def print_dir(filepath):
    for i in os.listdir(filepath):
        path=os.path.join(filepath,i)
        if os.path.isdir(path):
            print_dir(path)
        if path.endswith(".html"):
            print(path)
            
filepath=r"C:\Users\win10\Desktop\python"
print_dir(filepath)

把原字典的键值对颠倒并生产新的字典

dict1={"A":"a","B":"b","C":"c"}
dict2={y:x for x,y in dict1.items()}

print(dict2)

在这里插入图片描述

替换列表中所有的3为3a

num=["ship","hhhh",3,34,356,66,3,888,387,3]

for i in range(num.count(3)):
    e_index=num.index(3)
    num[e_index]="3a"
    
print(num)

在这里插入图片描述

合并去重

list1=[1,2,3,4,5,6,7,8]
list2=[2,4,6,8,9,10,11,12]

list3=list1+list2
print(list3)
#set是集合形式,自动去重。
print(set(list3))
print(list(set(list3)))

在这里插入图片描述

list1=[1,1,2,2,3,4,5,5,5,5]
print(list1)
print(set(list1))

在这里插入图片描述

随机生成验证码的两种方式

import random
list1=[]
for i in range(65,91): #大写字母
    list1.append(chr(i))
for j in range(97,123): #小写字母
    list1.append(chr(j))
for k in range(48,58):  #数字0-9
    list1.append(chr(k))

ma=random.sample(list1,6) #从list中随机获取6个元素,作为一个片断返回
print(ma)

ma=''.join(ma)#join():连接字符串数组。将字符串、元组、
            #列表中的元素以指定的字符(分隔符)
            #连接生成一个新的字符串
print(ma)
import random,string
str1="0123456789"
str2=string.ascii_letters  #string.ascii_letters包含所有的字母(大写或小写)
str3=str1+str2

ma=random.sample(str3,6)
ma=''.join(ma)
print(ma)

在这里插入图片描述

求平方根(主要想说明:python的求次方(**)的功能很强大,可以小数)


num=float(input("请输入一个你想开方的数字:"))
num_sqrt=num**0.5
print("%0.2f的平方根为%0.2f"%(num,num_sqrt))

在这里插入图片描述

判断字符串是否只由数字组成

def is_number(s):
    try:
        float(s)
        return True
    except ValueError:
        pass
    
#    try:
#        import unicodedata
#        unicodedata.numeric(s)
#        return True
#    except (TypeError,ValueError):
#        pass
#    
    return False

print(is_number(12))
print(is_number("a2"))
print(is_number(a))

在这里插入图片描述

print("a2".isdigit())

str = "123456";  # Only digit in this string
print("123".isdigit());

str = "string example....wow!!!";
print(str.isdigit())

在这里插入图片描述

判断奇偶数

while True:
    try:
        num=int(input("请输入一个您想要判断的整数:"))
    except ValueError:
        print("输入的不是整数!")
        continue
    if num%2==0:
        print('偶数')
    else:
        print('奇数')
    break

在这里插入图片描述

判断是否为闰年

year=int(input("请输入一个年份:"))
if (year%4==0) and (year%100!=0) or (year%400==0):
    print("{0}是闰年".format(year))
else:
    print('{0}不是闰年'.format(year))
import calendar

year=int(input("请输入年份:"))
check_year=calendar.isleap(year)
if check_year==True:
    print('{}是闰年'.format(year))
else:
    print('{0}不是闰年'.format(year))

在这里插入图片描述

输入一个数组

n=int(input('请输入您要输入的数组的数的个数:'))
num=[int(input('第%d个数:\n'%i)) for i in range(1,n+1)]
print(num)

在这里插入图片描述

十进制转化为二进制,八进制,十六进制

num=int(input('请输入一个数:'))
print('十进制数为:',num)
print('二进制数为:',bin(num))
print('八进制为:',oct(num))
print('十六进制为:',hex(num))

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值