python函数学习(持续更新ing)

一、判断是否为吉祥数字

方法一:数字转化为字符串再转化为集合去重

def lucky_num(num):

        #判断是否为吉祥数字
        for i in set(str(num)):
            if str(i)=="8":
                print("吉祥")
                break
            else:
                continue

方法二:

def lucky_num(num):
        return '8' in str(num)

二、给定任意字符串,查找其中每个字符的最后一次出现,并按每个字符最后一次出现的先后顺序依次存入列表。例如对于字符串'abcda'的处理结果为['b', 'c', 'd', 'a'],而字符串'abcbda'的处理结果为['c', 'b', 'd', 'a']。

方法一:

def reset_order(string):
    a = str(string)
    b = ""
    c = {}
    for i in a:
        for j in range(1,len(string)):
            if i==a[-j] and i not in b:
                b=i+b
                c[i]=[j]
                break
            else:
                continue
    return "".join(pd.DataFrame(c).T.rename(columns={0:"order"}).sort_values("order",ascending=False).index)

方法二:正则表达式‘(?!...)’后向非界定

import re
print(re.findall(r'(\w)(?!.*\1)', s))

三、编写函数,计算形式如a + aa + aaa + aaaa + ... + a个a的表达式的值,其中a为小于10的自然数

方法一:

def sum_num_num(num):
    i=0
    s=0
    for j in range(0,num):
        i = num*(10**j)+i
        s = s+i
    return s
        

方法二:

def sum_num_n(num, n):
    num = str(num)
    result = sum(eval(num*i) for i in range(1,n+1))
    return result

四、生成包含20个随机数的列表,然后删除其中的所有奇数

方法一:

a=[randrange(10) for i in range(20)]
b=[]
for i in a:
    if i%2==1:
        b.append(i)
    else:
        continue
print(a)
print(b)

方法二:

a=[randrange(10) for i in range(20)]

b=list(filter(lambda x: x%2==0, a))

五:有一个整数列表,要求调整元素顺序,把所有奇数都放到前面,偶数都放到后面。

方法一:

a=[randrange(10) for i in range(20)]
b=[]
c=[]
for i in a:
    if i%2==1:
        b.append(i)
    else:
        c.append(i)
print(b+c)

方法二:

a=[randrange(10) for i in range(20)]
def order_list(list):
    return sorted(list,key=lambda item:item%2==0)
order_list(a)


六:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n

import numpy as np
def add_1n(x):
    s=0
    if str(x).isdigit():
        if np.mod(x,2)==0:
            for i in range(2,x+2,2):
                s = s + 1/i
        elif np.mod(x,2)==1:
            for i in range(1,x+2,2):
                s = s + 1/i
        else:
            s = "请输入正整数"
    else:
        s = "输入错误"
    return s
七、#有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中。
with open("a.txt","r") as f,open("b.txt","r") as g,open("c.txt","w") as fg:
   word1 = f.read()
   word2 = g.read()
   word3 = list(word1+word2)
   word3.sort()
   word4 = "".join(word3)
   fg.write(word4)
   print(word4)

八、#从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存。

a = input("please input a word:")
b = str(a).upper()
with open("text.txt","w") as f:
    f.write(b)

九、#从键盘输入一些字符,逐个把它们写到磁盘文件上,直到输入一个 # 为止

with open("text.txt","w") as f:
    a = input("please input a word:")
    while a !="#":
        f.write(a)
        a = input("please input a word:")

十、计算字符串中子串出现的次数。

#a = input("请输入总文本:")
#b = input("请输入子串:")
a = "aaaaajsdjsdjjsdd"
b = "dj"
print(a.count(b))

十一、字符串日期转换为易读的日期格式

from dateutil import parser
a = "Apr 24 2018 11:56AM"
b = parser.parse(a)
print(b)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值