python函式學習 持續更新ing

2021-08-18 14:33:23 字數 3558 閱讀 8889

一、判斷是否為吉祥數字

方法一:數字轉化為字串再轉化為集合去重

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=).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=0s=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:

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:

else:

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=0if 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)

Python學習 持續更新

先立個flag 2017 10 13 time 2017 10 15 今天花時間搭好了環境,寫了幾個print語句。實際上一臉懵逼,還不太清楚python的整個結構。說實話我找不到類似c語言裡面的.c h檔案這樣的。對整個結構都不太清楚,也沒找到.py檔案,實在是不清楚。哦原來是建立檔案的時候錯了 ...

shader常用數學函式整理(持續更新)

step a,b b a 1 0 smoothstep x,y,a a如果小於x返回0 如果a y返回1 在x y之間返回 3a 2 2a 3 saturate x 如果x取值小於0,則返回值為0。如果x取值大於1,則返回值為1。若x在0到1之間,則直接返回x的值.lerp a,b,w a,b,w ...

Python學習筆記 持續更新

1 匿名函式lambda 一段示例 def f x,y return x y reduce f,1,2,3 reduce的作用是將list中的值累計相加 f函式提供的計算 1 2 3,3 3 6 等價於 reduce lambda x,y x y,1,2,3 list1 2,18,9,22,17,2...