目录:
1.python经典案例
2.python经典例程
3.python100例详解
4.python3例子
5.python例子大全
6.python小例子代码
7.python 简单例子
8.python简单小案例
9.python小案例
10.python中简单的例子
1.python经典案例
告别枯燥,60秒学会一个Python小例子奔着此出发点,我在过去1个月,将平时经常使用的代码段换为小例子,分享出来后受到大家的喜欢今天我完整梳理一遍,总结到这里很感谢这段时间,有3个小伙伴为此库所做出的贡献。
2.python经典例程
入门Python其实很容易,但是我们要去坚持学习,每一天坚持很困难,我相信很多人学了一个星期就放弃了,为什么呢?其实没有好的学习资料给你去学习,你们是很难坚持的,这是小编收集的Python入门学习资料关注,转发,私信小编“01”,即可免费领取!希望对你们有帮助
3.python100例详解
一、基本操作1 链式比较i = 3print(1 < i < 3) # Falseprint(1 < i <= 3) # True2 不用else和if实现计算器from operator import
4.python3例子
*defcalculator(a, b, k):return { +: add, -: sub, *: mul, /: truediv,
5.python例子大全
**: pow }[k](a, b)calculator(1, 2, +) # 3calculator(3, 4, **) # 813 函数链from operator import (add, sub)
6.python小例子代码
defadd_or_sub(a, b, oper):return (add if oper == +else sub)(a, b)add_or_sub(1, 2, -) # -14 求字符串的字节长度
7.python 简单例子
defstr_byte_len(mystr): return (len(mystr.encode(utf-8)))str_byte_len(i love python) # 13(个字节)str_byte_len
8.python简单小案例
(字符) # 6(个字节)5 寻找第n次出现位置defsearch_n(s, c, n): size = 0for i, x in enumerate(s): if x == c: size +=
9.python小案例
1if size == n: return i return-1print(search_n(“fdasadfadf”, “a”, 3))# 结果为7,正确print(search_n(“fdasadfadf”, “a”, 30))# 结果为-1,正确
10.python中简单的例子
6 去掉最高最低求平均defscore_mean(lst): lst.sort() lst2=lst[1:(len(lst)-1)] return round((sum(lst2)/len(lst2)),
2)score_mean([9.1, 9.0,8.1, 9.7, 19,8.2, 8.6,9.8]) # 9.077 交换元素defswap(a, b):return b, aswap(1, 0) # (0,1)
二、基础算法1 二分搜索def binarySearch(arr, left, right, x): whileleft <= right: mid = int(left + (right
– left) / 2); # 找到中间位置求中点写成(left+right)/2更容易溢出,所以不建议这样写 # 检查x是否出现在位置mid if arr[mid] == x: 。
print(found %d 在索引位置%d 处 %(x,mid)) return mid # 假如x更大,则不可能出现在左半部分 elif arr[mid] < x:
left = mid + 1 #搜索区间变为[mid+1,right] print(区间缩小为[%d,%d] %(mid+1,right)) elif x
right = mid – 1 #搜索区间变为[left,mid-1] print(区间缩小为[%d,%d] %(left,mid-1)) return -12 距离矩阵x,y
=mgrid[0:5,0:5]list(map(lambdaxe,ye:[(ex,ey)forex,eyinzip(xe,ye)],x,y))[[(0,0),(0,1),(0,2),(0,3),(0,4
)],[(1,0),(1,1),(1,2),(1,3),(1,4)],[(2,0),(2,1),(2,2),(2,3),(2,4)],[(3,0),(3,1),(3,2),(3,3),(3,4)],[(4,
0),(4,1),(4,2),(4,3),(4,4)]]三、列表1 打印乘法表for i in range(1,10): for j in range(1,i+1): print({0}*{1}={2}
.format(j,i,j*i),end=”\t”) print()结果:1*1=11*2=22*2=41*3=32*3=63*3=91*4=42*4=83*4=124*4=161*5=52*5=10
3*5=154*5=205*5=251*6=62*6=123*6=184*6=245*6=306*6=361*7=72*7=143*7=214*7=285*7=356*7=427*7=491*8=82*8=16
3*8=244*8=325*8=406*8=487*8=568*8=641*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=812 嵌套数组完全展开from
collections.abc import *defflatten(input_arr, output_arr=None):if output_arr isNone: output_arr = []
for ele in input_arr: if isinstance(ele, Iterable): # 判断ele是否可迭代 flatten(ele, output_arr) # 尾数递归 else: output_arr.append(ele) # 产生结果 return output_arrflatten([[1,2,3],[4,5]], [6,7]) # [6, 7, 1, 2, 3, 4, 5]
3 将list等分为子组from math import ceildef divide(lst, size): if size <= 0: return [lst] return
[lst[i * size:(i+1)*size] for i in range(0, ceil(len(lst) / size))]r = divide([1, 3, 5, 7, 9], 2) #
[[1, 3], [5, 7], [9]]4 生成fibonacci序列前n项deffibonacci(n):if n <= 1: return [1] fib = [1, 1]
while len(fib) < n: fib.append(fib[len(fib) – 1] + fib[len(fib) – 2]) return fibfibonacci(5
) # [1, 1, 2, 3, 5]5 过滤掉各种空值deffilter_false(lst):return list(filter(bool, lst))filter_false([None, 0
, False, , [], ok, [1, 2]])# [ok, [1, 2]]6 返回列表头元素defhead(lst):return lst[0] if len(lst) > 0else Nonehead([])
# Nonehead([3, 4, 1]) # 37 返回列表尾元素deftail(lst):return lst[-1] if len(lst) > 0else Noneprint(tail([]))
# Noneprint(tail([3, 4, 1])) # 18 对象转换为可迭代类型from collections.abc import Iterabledef cast_iterable(val
): returnvalif isinstance(val, Iterable) else [val]cast_iterable(foo)# foocast_iterable(12)# [12]cast_iterable({
foo: 12})# {foo: 12}9 求更长列表defmax_length(*lst):returnmax(*lst,key=lambdav:len(v))r=max_length([1,2,3],
[4,5,6,7],[8])#[4,5,6,7]10 出现最多元素defmax_frequency(lst):returnmax(lst,default=列表为空,key=lambdav:lst.count(v))lst
=[1,3,3,2,1,1,2]max_frequency(lst)# 1 11 求多个列表的最大值defmax_lists(*lst):returnmax(max(*lst,key=lambdav:max(v)))max_lists([1,
2,3],[6,7,8],[4,5])# 812 求多个列表的最小值defmin_lists(*lst):returnmin(min(*lst,key=lambdav:max(v)))min_lists([1,
2,3],[6,7,8],[4,5])# 113 检查list是否有重复元素defhas_duplicates(lst):returnlen(lst)==len(set(lst))x=[1,1,2,2,
3,2,3,4,5,6]y=[1,2,3,4,5]has_duplicates(x)# Falsehas_duplicates(y) # True14 求列表中所有重复元素fromcollections
importCounterdeffind_all_duplicates(lst):c=Counter(lst)returnlist(filter(lambdak:c[k]>1,c))find_all_duplicates([1,
2,2,3,3,3])# [2,3]15 列表反转defreverse(lst):returnlst[::-1]reverse([1,-2,3,4,1,2])#[2,1,4,3,-2,1]16 浮点数等差数列
def rang(start, stop, n): start,stop,n = float(%.2f % start), float(%.2f % stop),int(%.d % n) step = (
stop-start)/n lst = [start] while n > 0: start,n = start+step,n-1 lst.append(round
((start), 2)) return lstrang(1, 8, 10) # [1.0, 1.7, 2.4, 3.1, 3.8, 4.5, 5.2, 5.9, 6.6, 7.3, 8.0]四、字典
1 字典值最大的键值对列表defmax_pairs(dic):if len(dic) == 0: return dic max_val = max(map(lambda v: v[1
], dic.items())) return [item for item in dic.items() if item[1] == max_val]max_pairs({a: -10, b:
5, c: 3, d: 5})# [(b, 5), (d, 5)]2 字典值最小的键值对列表def min_pairs(dic): iflen(dic) == 0: return [] min_val = min(
map(lambda v: v[1], dic.items())) return [item for item in dic.items() if item[1] == min_val]min_pairs({}) # []r = min_pairs({
a: -10, b: 5, c: 3, d: 5})print(r) # [(b, 5), (d, 5)]3 合并两个字典def merge_dict2(dic1, dic2): return {**dic1, **dic2} # python3
.5后支持的一行代码实现合并字典merge_dict({a: 1, b: 2}, {c: 3}) # {a: 1, b: 2, c: 3}4 求字典前n个最大值fromheapqimportnlargest#
返回字典d前n个最大值对应的键deftopn_dict(d,n):returnnlargest(n,d,key=lambdak:d[k])topn_dict({a:10,b:8,c:9,d:10},3)
# [a, d, c]5 求最小键值对d={a:-10,b:5, c:3,d:5}min(d.items(),key=lambda x:x[1]) #(a, -10)五、集合1 互为变位词from collections
import Counter# 检查两个字符串是否 相同字母异序词,简称:互为变位词def anagram(str1, str2): return Counter(str1) == Counter(str2)anagram(
eleven+two, twelve+one) # True 这是一对神器的变位词anagram(eleven, twelve) # False六、文件操作1 查找指定文件格式文件import osdef find_file(work_dir,extension=
jpg): lst = [] for filename inos.listdir(work_dir): print(filename) splits = os.path
.splitext(filename) ext = splits[1] # 拿到扩展名 if ext == .+extension: lst.append(filename)
return lstfind_file(.,md) # 返回所有目录下的md文件七、正则和爬虫1 爬取天气数据并解析温度值素材来自朋友袁绍import requestsfrom lxml import etreeimport pandas
as pdimport reurl = http://www.weather.com.cn/weather1d/101010100.shtml#inputwith requests.get(url) as
res: content = res.content html = etree.HTML(content)通过lxml模块提取值,lxml比beautifulsoup解析在某些场合更高效location
= html.xpath(//*[@id=”around”]//a[@target=”_blank”]/span/text())temperature = html.xpath(//*[@id=”around”]/div/ul/li/a/i/text()
市规划展览馆,
什刹海, 南锣鼓巷, 天坛公园, 北海公园, 景山公园, 北京海洋馆][11/-5°C, 14/-5°C, 12/-6°C, 12/-5°C, 11/-1°C, 11/-5°C, 8/-7°C, 13/-2°C
, 8/-6°C, 5/-9°C, 14/-6°C, 11/-4°C, 13/-3°C, 13/-3°C, 12/-3°C, 12/-3°C, 13/-3°C, 12/-2°C, 12/-3°C, 13/-3°C
, 12/-2°C, 12/-2°C, 12/-2°C, 12/-3°C]df = pd.DataFrame({location:location, temperature:temperature})print
(温度列)print(df[temperature])正则解析温度值df[high] = df[temperature].apply(lambda x: int(re.match((-?[0-9]*?)/-?[0-9]*?°C
, x).group(1) ) )df[low] = df[temperature].apply(lambda x: int(re.match(-?[0-9]*?/(-?[0-9]*?)°C, x).group
(1) ) )print(df)详细说明子字符创捕获除了简单地判断是否匹配之外,正则表达式还有提取子串的强大功能用 () 表示的就是要提取的分组(group)比如: ^(\d{3})-(\d{3,8})$ 分别定义了两个组,可以直接从匹配的字符串中提取出区号和本地号码。
m = re.match(r^(\d{3})-(\d{3,8})$, 010-12345)print(m.group(0))print(m.group(1))print(m.group(2))# 010-12345# 010# 12345
如果正则表达式中定义了组,就可以在 Match 对象上用 group() 方法提取出子串来注意到 group(0) 永远是原始字符串, group(1) 、 group(2) ……表示第1、2、……个子串。
最终结果Name:temperature,dtype:objectlocationtemperaturehighlow0香河11/-5°C11-51涿州14/-5°C14-52唐山12/-6°C12-63
沧州12/-5°C12-54天津11/-1°C11-15廊坊11/-5°C11-56太原8/-7°C8-77石家庄13/-2°C13-28涿鹿8/-6°C8-69张家口5/-9°C5-910保定14/-6°C
遗址公园13
/-3°C13-317北京市规划展览馆12/-2°C12-218什刹海12/-3°C12-319南锣鼓巷13/-3°C13-320天坛公园12/-2°C12-221北海公园12/-2°C12-222景山公园
12/-2°C12-223北京海洋馆12/-3°C12-32 批量转化驼峰格式import redef camel(s): s = re.sub(r”(\s|_|-)+”, ” “, s).title().replace(
” “, “”) return s[0].lower() + s[1:]# 批量转化def batch_camel(slist): return [camel(s) for s in slist]batch_camel([student_id, student\tname, student-add]) #[studentId, studentName, studentAdd]
八、绘图1 turtle绘制奥运五环图结果:
2 turtle绘制漫天雪花结果:
3 4种不同颜色的色块,它们的颜色真的不同吗?
4 词频云图import hashlibimport pandas as pdfrom wordcloud import WordCloudgeo_data=pd.read_excel(r”../data/geo_data.xlsx”
)words = ,.join(x for x in geo_data[city] if x != []) #筛选出非空列表值wc = WordCloud( background_color=”green”, #背景颜色”green”绿色 max_words=100, #显示最大词数 font_path=./fonts/simhei.ttf, #显示中文 min_font_size=5, max_font_size=100, width=500 #图幅宽度 )x = wc.generate(words)x.to_file(../data/geo_data.png)
八、生成器1 求斐波那契数列前n项(生成器版)deffibonacci(n): a, b = 1, 1for _ in range(n): yield a a, b = b, a + blist(fibonacci(
5)) # [1, 1, 2, 3, 5]2 将list等分为子组(生成器版)from math import ceildef divide_iter(lst, n): if n <= 0:
yield lst return i, div = 0, ceil(len(lst) / n) while i < n: yield lst[i * div: (i +
1) * div] i += 1list(divide_iter([1, 2, 3, 4, 5], 0)) # [[1, 2, 3, 4, 5]]list(divide_iter([1,
2, 3, 4, 5], 2)) # [[1, 2, 3], [4, 5]]九、keras1 Keras入门例子import numpy as npfrom keras.models import Sequentialfrom keras.layers
import Densedata = np.random.random((1000, 1000))labels = np.random.randint(2, size=(1000, 1))model = Sequential()model.add(Dense(
32, activation=relu, input_dim=100))model.add(Dense(1, activation=sigmoid
))model.compile(optimize=rmsprop, loss=binary_crossentropy, metrics=[accuracy])model.fit(
data, labels, epochs=10, batch_size=32)predictions = model.predict(data)