用python编写简单分段函数(如何用python编写分段函数)
用Python写一个,两个数的加,减,乘,除的函数,然后用这些函数,完成简单的计算,怎么写
我课程中的部分代码(除没写):
def?f_add(a,b):
????return?a+b
def?f_mul(a,b):
????return?a*b
def?f_sub(a,b):
????return?a-b
????
def?g1(f,a,b):
????return?f(a,b)
a,b,c,d?=?1,2,3,4
print?g1(f_sub,?g1(f_mul,?g1(f_add,a,b),?c),?d),??g1(f_mul,?g1(f_add,a,b),?g1(f_sub,c,?d))
对python感兴趣可以到这里了解一下:
study.163.com/course/courseMain.htm?courseId=1000035
python入门教程(非常详细)
python入门教程如下:
准备材料:windows电脑、python
1、这里简单告用python软件编写的一个关于货物售价折扣方面的一个计算程序,首先打开python软件。
2、进入python后,会出现如图所示界面,按照图中箭头指示,先选择File选项,然后在下拉菜单中选择New file选项。
3、选择完毕后,会出现一个新的界面,如图箭头和红色框指示。
4、进入这个新的界面,在里面输入自己想编辑的程序,如图所示是编写的一个关于货物售价折扣方面的一个简单的计算程序。
5、程序输入完毕后,按照图中箭头和红色框指示,先选择Run选项,然后在下拉菜单中选择Run Module(注:除此方法外还可以点击键盘F5)。
6、此时会在原界面出现如图所示的字样,这是因为编写程序编辑好的,此时可以输入一个数字,然后回车,又会让输入一个折扣,输入完即可得出最后售价结果。
7、如图所示,这里输入的原价是10,折扣是0.2,故此系统根据编写的程序计算除了打折后的价格为2。
数字图像处理Python实现图像灰度变换、直方图均衡、均值滤波
import CV2
import copy
import numpy as np
import random
使用的是pycharm
因为最近看了《银翼杀手2049》,里面Joi实在是太好看了所以原图像就用Joi了
要求是灰度图像,所以第一步先把图像转化成灰度图像
# 读入原始图像
img = CV2.imread('joi.jpg')
# 灰度化处理
gray = CV2.cvtColor(img, CV2.COLOR_BGR2GRAY)
CV2.imwrite('img.png', gray)
第一个任务是利用分段函数增强灰度对比,我自己随便写了个函数大致是这样的
def chng(a):
if a 255/3:
b = a/2
elif a 255/3*2:
b = (a-255/3)*2 + 255/6
else:
b = (a-255/3*2)/2 + 255/6 +255/3*2
return b
rows = img.shape[0]
cols = img.shape[1]
cover = copy.deepcopy(gray)
for i in range(rows):
for j in range(cols):
cover[i][j] = chng(cover[i][j])
CV2.imwrite('cover.png', cover)
下一步是直方图均衡化
# histogram equalization
def hist_equal(img, z_max=255):
H, W = img.shape
# S is the total of pixels
S = H * W * 1.
out = img.copy()
sum_h = 0.
for i in range(1, 255):
ind = np.where(img == i)
sum_h += len(img[ind])
z_prime = z_max / S * sum_h
out[ind] = z_prime
out = out.astype(np.uint8)
return out
covereq = hist_equal(cover)
CV2.imwrite('covereq.png', covereq)
在实现滤波之前先添加高斯噪声和椒盐噪声(代码来源于网络)
不知道这个椒盐噪声的名字是谁起的感觉隔壁小孩都馋哭了
用到了random.gauss()
percentage是噪声占比
def GaussianNoise(src,means,sigma,percetage):
NoiseImg=src
NoiseNum=int(percetage*src.shape[0]*src.shape[1])
for i in range(NoiseNum):
randX=random.randint(0,src.shape[0]-1)
randY=random.randint(0,src.shape[1]-1)
NoiseImg[randX, randY]=NoiseImg[randX,randY]+random.gauss(means,sigma)
if NoiseImg[randX, randY] 0:
NoiseImg[randX, randY]=0
elif NoiseImg[randX, randY]255:
NoiseImg[randX, randY]=255
return NoiseImg
def PepperandSalt(src,percetage):
NoiseImg=src
NoiseNum=int(percetage*src.shape[0]*src.shape[1])
for i in range(NoiseNum):
randX=random.randint(0,src.shape[0]-1)
randY=random.randint(0,src.shape[1]-1)
if random.randint(0,1)=0.5:
NoiseImg[randX,randY]=0
else:
NoiseImg[randX,randY]=255
return NoiseImg
covereqg = GaussianNoise(covereq, 2, 4, 0.8)
CV2.imwrite('covereqg.png', covereqg)
covereqps = PepperandSalt(covereq, 0.05)
CV2.imwrite('covereqps.png', covereqps)
下面开始均值滤波和中值滤波了
就以n x n为例,均值滤波就是用这n x n个像素点灰度值的平均值代替中心点,而中值就是中位数代替中心点,边界点周围补0;前两个函数的作用是算出这个点的灰度值,后两个是对整张图片进行
#均值滤波模板
def mean_filter(x, y, step, img):
sum_s = 0
for k in range(x-int(step/2), x+int(step/2)+1):
for m in range(y-int(step/2), y+int(step/2)+1):
if k-int(step/2) 0 or k+int(step/2)+1 img.shape[0]
or m-int(step/2) 0 or m+int(step/2)+1 img.shape[1]:
sum_s += 0
else:
sum_s += img[k][m] / (step*step)
return sum_s
#中值滤波模板
def median_filter(x, y, step, img):
sum_s=[]
for k in range(x-int(step/2), x+int(step/2)+1):
for m in range(y-int(step/2), y+int(step/2)+1):
if k-int(step/2) 0 or k+int(step/2)+1 img.shape[0]
or m-int(step/2) 0 or m+int(step/2)+1 img.shape[1]:
sum_s.append(0)
else:
sum_s.append(img[k][m])
sum_s.sort()
return sum_s[(int(step*step/2)+1)]
def median_filter_go(img, n):
img1 = copy.deepcopy(img)
for i in range(img.shape[0]):
for j in range(img.shape[1]):
img1[i][j] = median_filter(i, j, n, img)
return img1
def mean_filter_go(img, n):
img1 = copy.deepcopy(img)
for i in range(img.shape[0]):
for j in range(img.shape[1]):
img1[i][j] = mean_filter(i, j, n, img)
return img1
完整main代码如下:
if __name__ == "__main__":
# 读入原始图像
img = CV2.imread('joi.jpg')
# 灰度化处理
gray = CV2.cvtColor(img, CV2.COLOR_BGR2GRAY)
CV2.imwrite('img.png', gray)
rows = img.shape[0]
cols = img.shape[1]
cover = copy.deepcopy(gray)
for i in range(rows):
for j in range(cols):
cover[i][j] = chng(cover[i][j])
CV2.imwrite('cover.png', cover)
covereq = hist_equal(cover)
CV2.imwrite('covereq.png', covereq)
covereqg = GaussianNoise(covereq, 2, 4, 0.8)
CV2.imwrite('covereqg.png', covereqg)
covereqps = PepperandSalt(covereq, 0.05)
CV2.imwrite('covereqps.png', covereqps)
meanimg3 = mean_filter_go(covereqps, 3)
CV2.imwrite('medimg3.png', meanimg3)
meanimg5 = mean_filter_go(covereqps, 5)
CV2.imwrite('meanimg5.png', meanimg5)
meanimg7 = mean_filter_go(covereqps, 7)
CV2.imwrite('meanimg7.png', meanimg7)
medimg3 = median_filter_go(covereqg, 3)
CV2.imwrite('medimg3.png', medimg3)
medimg5 = median_filter_go(covereqg, 5)
CV2.imwrite('medimg5.png', medimg5)
medimg7 = median_filter_go(covereqg, 7)
CV2.imwrite('medimg7.png', medimg7)
medimg4 = median_filter_go(covereqps, 7)
CV2.imwrite('medimg4.png', medimg4)
如何用python把数字每4个用逗号分开?在线等。
# 这是一个长一点的,简单的,还做了一点重复的
a = input('请输入一串数字,是一串子:')
b = []
for n in range(len(a)):
if n % 4 == 0:
b.append(a[n:n + 4]) ?# 将a字符串每4个字符分割成列表添加到b列表中
print('输入的内容转化为的列表', b)
c = ','.join(b) ?# 以逗号作为分隔符,将 b中所有的元素合并为一个新的字符串
print('输入的内容每四个以逗号分开', c)
d = c.split(',')
print("把字符串转化成列表,终于用到了split", d)
for i in range(len(b)):
print('分开后第%s个是%s' % (i+1, d[i]))
如何用python写一段代码?
简单的,可以使用python 的CGI模块,需要你的服务器开启CGI支持。
网页内容如下:
html??
head
meta?http-equiv="Content-Type"?content="text/html;?charset=UTF-8"?/
titlepython?cgi/title
/headbody
????p?style="font-size:24pt;color:red"输入登录密码:/p
????form?name="zhaji"?action="login.py"?method="post"
????p密 码:input?type="password"?name="ma"?size="9"/p
????input?type="button"?name="shuru"?value="登录"?onclick="zhaji.submit()"
????/form
/body/html
login.py文件内容如下:
#!/usr/bin/python
#coding:utf-8
import?cgi
form?=?cgi.FieldStorage()
ma?=?""
if?'ma'?in?form:
????ma?=?form["ma"].value
print?'''Content-Type:?text/html\n\n'''
print?'''htmlheadmeta?http-equiv="Content-Type"?content="text/html;?charset=UTF-8"?/????titlepython?cgi/title/headbodyp你输入的密码是:%s/p?/body/html'''?%?ma
用python写一个函数,可以判断两个数组是否环型相等。跪拜大佬帮忙解答一下?
import numpy as np
a = np.array([1,2,3])
b = np.array([1,2,3])
print((a==b).all())
a = np.array([3,2,1])
b = np.array([1,2,3])
print((a==b).all())
可以用第三方库吧? 抄的。再加上计数,随机数列表就行了。$ pythonpython 2.7.3 (default, mar 14 2014, 11:57:14) [gcc 4.7.2] on linux2type "help", "copyright", "credits" or "license" for more information. a = 1 b = 2 c = 2 d = 4 if a b == c d:... print "ok"... ok