class Solution:
def twoSum(self, nums: list, target: int) -> list: zt = [] qc = False for i in nums: if qc == True: break for z in nums: if int(i) + int(z) == target: qc = True zt.append(nums.index(i)) zt.append(nums.index(z,nums.index(i)+1)) break return zt
class Solution: def arrayRepeat(self, arr: list) -> str: if len(arr) != len(set(arr)): for i in range(len(arr)): if i != 0: if arr[i] != arr[i - 1]: pass else: return "03" return "01" else: num = 0 zt = 0 for i in arr: if i % 2 == 0: num += 1 else: zt += 1 if num > zt: return "02" else: return "03"
import math
class Solution:
def SpMtFml(self, num: int) -> int: return math.ceil(math.sqrt((3**4+5*6**5)/num))
class Solution: def detectCapital(self, st: str) -> bool: list1 = st.split(" ") t=0 ww=0 for i in list1: t=t+1 if i.upper() in ['PYTHON', 'JAVA', 'MACHINELEARNING', 'DATAMINING']: if i not in ["Python", "Java", "MachineLearning", "DataMining"]: return False else: continue if any(char.isdigit() for char in i): if i.upper() != i: return False elif t == 1: if i.capitalize() != i: return False elif i.lower() != i and i.upper() != i: return False return True
class Solution:
def patternRepeatedSubstring(self, s: str) -> str: ss = "" for i in s: ss += i if s.count(ss) == len(s) / len(ss): return ss return s
import requests from bs4 import BeautifulSoup
class Solution:
def table_num(self, row: int, col: int) -> int: url = "http://72.itmc.org.cn:80/JS001/open/show/random-num/index.html" zt = requests.get(url) zt.encoding= "utf-8" qc = BeautifulSoup(zt.text,"html.parser") jg = qc.find_all("td")[(row-1)*26+row-1+col].text return int(jg)
import requests import jieba from jieba import analyse
class Solution:
def wordTfidf(self) -> list: url = "http://72.itmc.org.cn:80/JS001/data/user/15930/61/fj_chiffon_lady_dress.txt" zt = requests.get(url) zt.encoding = "utf-8" jg = jieba.analyse.extract_tags(zt.text,topK=5,allowPOS=("n","nr","ns")) return jg
import re
import requests from bs4 import BeautifulSoup
class Solution: def weixinData(self, name: str) -> str: url = 'http://72.itmc.org.cn:80/JS001/open/show/weixindata.html' zt = requests.get(url) zt.encoding = "utf-8" qc = BeautifulSoup(zt.text,"html.parser") for i in range(100): try: txt = qc.find_all("span",class_="js-rank-detail-btn")[i].text txt1 = qc.find_all("td")[i*11+4+i].text txt2 = qc.find_all("td")[i*11+7+i].text txt3 = qc.find_all("td")[i*11+3+i].text if txt == name : if "万" in txt1 or float(txt1) > 90000: if "万" in txt2 or float(txt2) >80000: if float(txt3[0:-1]) < 300: return "YES" else: return "NO" else: return "NO" else: return "NO" except: break
import re
import requests
class Solution: def aliceText(self, word: str) -> int: url = "http://72.itmc.org.cn:80/JS001/data/user/15930/76/fj_alice_adventure.txt" zt = requests.get(url) zt.encoding="utf-8" if len(word) < 3 : return 0 qc = re.findall(word,zt.text,re.I) return len(qc)
import re
from bs4 import BeautifulSoup import requests
class Solution: def BoxOfficeSpider(self, movie_name: str) -> list: url = "http://72.itmc.org.cn:80/JS001/open/show/box_office_on_a_certain_day.html" zt = requests.get(url) zt.encoding="utf-8" qc = BeautifulSoup(zt.text,"html.parser") name = qc.find_all("p",class_="movie-name") txt1 = qc.find_all("span",class_="releaseInfo") txt2 = qc.find_all("div",class_="boxDesc-wrap red-color") txt3 = qc.find_all("div",class_="countRate-wrap") key = {} val = [[i for i in range(3)]for j in range(len(name))] for i in range(len(txt1)): for j in range(1): if (re.findall(r"\d+",txt1[i].text)): val[i][j] = int(re.findall(r"\d+",txt1[i].text)[0]) elif ("点映" in txt1[i].text): val[i][j] = -1 else: val[i][j] = 0 val[i][j+1] = float(txt2[i].text) val[i][j+2] = txt3[i].text[:-1] if ("<" in val[i][j+2]): val[i][j+2] = 0.001 else: val[i][j+2] = float(val[i][j+2])*0.01 val[i][j+2] = float(str(val[i][j+2])[0:5]) key[name[i].text] = val[i] return key[movie_name]
import re
import requests from bs4 import BeautifulSoup
class Solution: def itemSearch(self, shop_name: str) -> list: url = "###/open/show/ecjd.html" response = requests.get(url) if response.ok: response.encoding = "utf-8" return self.parseItem(response.text)[shop_name]
def parseItem(self, html): soup = BeautifulSoup(html, 'html.parser') temp_dict = dict() for child in soup.findAll(class_="gl-item"): item_name = child.find(class_="J_im_icon").a.text temp_list = [] temp = child.find(class_="p-icons").text temp_list.append(re.search("满\d+-\d+", temp) != None) temp_list.append(float(child.find(class_="p-price").strong.i.text)) if child.find(class_="price-plus-1"): temp_list.pop() temp_list.append( round(float(child.find(class_="price-plus-1").text[1:]))) if child.find(class_="p-commit"): temp_commit = child.select_one(".p-commit strong a").text temp_list.append(int(float( temp_commit[:-2]) * 10000) if '万' in temp_commit else int(float(temp_commit[:-1]))) if item_name in temp_dict.keys() and temp_dict[item_name][1] >= temp_list[1]: continue temp_dict.update({item_name: temp_list}) return temp_dict
import requests from jieba.analyse import textrank
class Solution: def itemAnalyse(self) -> list: url = "http://72.itmc.org.cn:80/JS001/data/user/15930/77/fj_5392_hangzhou_top_woman_wear.txt" zt = requests.get(url) zt.encoding="utf-8" qc = textrank(zt.text,topK=5,allowPOS=("n","v")) return qc
import pandas as pd class Solution: def nanCount(self, order_data:'DataFrame') -> int: url = "http://72.itmc.org.cn:80/JS001/data/user/15930/63/fj_order_data.csv" zt = pd.read_csv(url) mo = zt["choice_description"].isnull().sum() return mo
import pandas as pd
class Solution: def salesStr(self, condition: str) -> str: url = "http://72.itmc.org.cn:80/JS001/data/user/15930/80/fj_order_data.csv" zt = pd.read_csv(url) zt["item_price"] = zt["item_price"].apply(lambda x:x.replace("$","")).astype(float) zt["总金额"] = zt["item_price"] * zt["quantity"] if condition.lower() == "max": jg = zt.groupby("item_name").sum().sort_values("总金额").index[-1] else: jg = zt.groupby("item_name").sum().sort_values("总金额").index[0] return jg
class Solution:
def CalAvg(self, df: 'pandas.DataFrame') -> list: df["avg"] = df.mean(axis=1).round(2) return df["avg"].tolist()
import pandas as pd
class Solution: def task(self, title): url = "http://72.itmc.org.cn:80/JS001/data/user/15930/241/fj_lego_tmallshop_sales_data.xlsx" zt = pd.read_excel(url) zt.dropna(subset=["price"]) zt["sales_num"] = zt["sales_num"].fillna(0) mo = sum(zt["sales_num"] * zt["price"]) age = zt["price"].mean().round(2) title = zt[zt["title"] == title] jg = sum(title["sales_num"] * title["price"]) return [mo,age,jg]
import pandas as pd
class Solution:
def department_salary_summary(self) -> pd.Series: url = "http://72.itmc.org.cn:80/JS001/data/user/15930/242/fj_employee_salary_work_books.xlsx" zt = pd.read_excel(url, sheet_name="基本薪资") qc = pd.read_excel(url, sheet_name="上班通勤") mo = pd.merge(zt, qc, on="姓名") mo.fillna(0, inplace=True) mo["月基本薪资"] = mo["基本薪资"] + mo["岗位工资"] + mo["绩效工资"] mo["日薪"] = mo["月基本薪资"] / mo["应出勤天数(天)"] mo["时薪"] = mo["日薪"] / 8 mo["法定节假日加班"] = mo["时薪"] * mo["法定假日加班(小时)"] * 2 mo["周末加班"] = mo["时薪"] * mo["周末加班(小时)"] * 1.5 mo["工作日加班"] = mo["时薪"] * mo["工作日加班(小时)"] mo["通勤工资"] = mo["法定节假日加班"] + mo["周末加班"] + mo["工作日加班"] mo["请假扣费"] = mo["时薪"] * mo["请假(小时)"] mo["社保缴费"] = (mo["社会保险缴费基数"] * 0.08 + mo["社会保险缴费基数"] * 0.02 + mo["社会保险缴费基数"] * 0.01 + mo["社会保险缴费基数"] * 0.10) mo["实发工资"] = mo["月基本薪资"] + mo["通勤工资"] - mo["请假扣费"] - mo["社保缴费"] jg = mo.groupby("部门")["实发工资"].mean().round(2).astype(float).sort_values(ascending=False) jg.name = "平均薪资" jg.index.name = "部门" return jg
import pandas as pd
class Solution: def balance_sheet(self, name): url = "http://72.itmc.org.cn:80/JS001/data/user/15930/243/fj_Interprice_balance_data.xlsx" zt = pd.read_excel(url,sheet_name="比较资产负债表") zt.fillna(0,inplace = True) zt["变动额"] = zt["2021.12.31"] - zt["2020.12.31"] zt["变动率"] = zt["变动额"] / zt["2020.12.31"] mo = zt[zt["项目"]==name] txt1 = (mo["变动额"].values[0]).round(2) txt2 = (mo["变动率"].values[0]).round(4) return [txt1,txt2]
import pandas as pd
class Solution: def task(self, area: str) -> list: url = "http://72.itmc.org.cn:80/JS001/data/user/15930/240/fj_7568_tmall_order_report.csv" zt = pd.read_csv(url) qc = zt[zt["收货地址"] == area] mo = len(qc)
fkdds = len(qc.query("买家实际支付金额 !=0 | 退款金额 != 0")) fkzhl = f"{(fkdds / mo) * 100:.2f}%"
qefkdds = len(qc.query("买家实际支付金额 == 总金额")) qefkzhl = f"{(qefkdds / mo) * 100:.2f}%"
zfzje = f"{sum(qc['买家实际支付金额']):.2f}"
sjzfje = sum(qc["买家实际支付金额"]) zfmjs = len(qc[qc["买家实际支付金额"] != 0]) if zfmjs > 0: kdj = f"{sjzfje / zfmjs:.2f}" else: kdj = "本地沒有銷量" txt = qc[qc["买家实际支付金额"] != 0] if zfmjs > 0: po = f"{txt['买家实际支付金额'].mode()[0]:.2f}" else: po = "本地沒有銷量" ni = sum(zt["买家实际支付金额"]) ll = f"{(sjzfje / ni) * 100:.2f}%" return [fkzhl, qefkzhl, zfzje, kdj, po, ll]
import pandas as pd
class Solution: def jobStatistics(self, occupation: str) -> list: url ='http://72.itmc.org.cn:80/JS001/data/user/15930/67/fj_jobstatics.xlsx' chipo = pd.read_excel(url) chipo1 = chipo[chipo["occupation"] == occupation] num = "{:.2%}".format(len(chipo1[chipo1["gender"]=="F"]) / len(chipo1)) num1 = chipo.groupby(["occupation","gender"]).count()["user_id"].unstack().fillna(0) num1["占比"] = num1["F"] / (num1["F"] + num1["M"]) return [num,int(num1["占比"].rank(ascending = False)[occupation])]
|