Python 语法基础小结可编辑doc文档格式.docx
《Python 语法基础小结可编辑doc文档格式.docx》由会员分享,可在线阅读,更多相关《Python 语法基础小结可编辑doc文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
while和if之间的区别是:
if条件:
如果条件满足,则在重复执行该代码的同时执行该代码一次,直到条件不满足。
场景1场景2迪·
徐人杰说:
我只会问你一个问题,然后让你走。
。
如果山上没有坟墓,天地将与你携手。
如果说:
让你去当诺特(山,山,天堂和地球):
与你永远在一起的例子:
寻找数组,,,最大元素方法3#编码=gbk#寻找数组,,,,,最大值X=,,,,MX=Xi=当ilen(x):
IFMXXI:
MX=XII=iprint(x=,x)打印(最大元素=,mx)x=,,,,最大元素=示例:
寻找数组,,,最大元素方法4#编码=gbk#寻找数组,,,最大值x=,,,MX=Xi=len(x)whitei=:
MX=XII=Iprint(X=,x)print(maximumelement=,mx)x=,,,,maximumelement=non-circulation:
findingarray,,,,,,MX=Xi=len(x)的最大值为true:
ifmxxi:
Mx=XII=iifi:
break#结束循环打印(x=,x)print(maximumelement=,mx)x=,,,最大元素=练习题:
将以下数组中的奇数更改为其平方偶数,并保持不变x=,,,,,#coding=gbk#将以下数组中的奇数更改为其平方偶数,并保持不变x=,,,,,,,,,print(x=,x)foriirange(,len(x)):
if(Xi)!
=:
#如果第一个元素是奇数xi=xi*xiprint(转换后,x=,x)x=,,,,,,转换后,x=,,,,,章函数系统内置函数系统内核提供了许多基本的常用函数,如:
ord()查找字符的编码,chr()将字符的编码转换成字符。
Wait()顺序(字符)返回值:
int类型顺序(A)值是顺序(A)值是顺序(A)值是顺序(B)值是顺序(Yo)值是中文字符是字符(描述:
在pyhon之前,中文字符是两个字符)()chr(编码)从字符编码转换为字符chr()值是achr()值是Bchr()值是Achr()值是chr()值,you()hex()的值将整数转换为二进制字符串hex(),x#hex()的值是#xb#hex(),x#的值请注意:
python负十六进制字符串不同于c语言表示()int()将字符串转换为整数,stringtointegerint()的值是int,而()的值是将字符串转换为十六进制整数int(,),int(,)的值,int(x)的值和description的值:
int(string,decimal)的值范围是、、和,默认值是()以查找序列类型元素len(、、、()的值是#这是数组元素len(abcYou)的个数,而#这是字符串中的字符数()变量、常数、表达式类型(表达式)返回表达式类型()确定表达式是否为整数的方法:
iftype(x)==int:
()确定表达式是否为实数的方法:
iftype(x)==float:
()判断x是数字:
整数还是实数if(类型(x)==float)或(type(x)==int):
也可以写成(type(x)inheat,int):
()当整数或实数的绝对值abs(x)x为整数时,abs返回整数x,当实数为实数时返回实数,以及更多实数系统函数。
在接下来的章节中,介绍了函数的定义。
到目前为止,我们都使用了Python定义的函数。
这些Python内置函数对我们来说是部分透明的。
因此,我们只关注这些函数的用法,而不必关心函数是如何定义的。
我们还可以创建自己的函数来执行特定的操作。
函数的定义如下:
定义函数名(arg,arg,argN):
语句函数的名称也必须以字母开头,并且可以包含下划线,但是Python关键字不能定义为函数名。
()函数中的语句数是任意的(至少有一条语句)()函数中的每条语句都至少有一个空格缩进,表示该语句属于该函数。
()缩进结束时,函数自然结束。
()函数如果有返回值,使用returnexpression语句。
示例:
阶乘函数#coding=gbk#ex阶乘函数deffact(n):
阶乘函数fact(n)n:
=自然数返回值:
n!
f=foriinrange(,n):
f=f*ireturnfprint(!
=,fact())!
=在事实函数中:
n是形式数f,I是函数事实的局部变量,returnf是函数的返回值和调用函数事实的实际参数。
函数的形式参数和实际参数让我们看下面的例子:
#coding=gbkdftest(x,x):
#x,x是形式参数x=x*xx=x*xy=xx#y是局部变量returnya=a=b=test(a,a)#a,a是实际参数print(a,a=,a,a)print(b=,b)a,a=b=在这个例子中:
函数test有两个形式参数:
x和x。
变量a和a是函数的实际参数。
当调用测试(a,a)时,实际参数a、a的值被分别传递给形式参数x、x,尽管形式参数x,x的值在函数内部被改变,而实际参数a,a没有被改变。
序列类型的元组通过用逗号分隔几个量并用一对圆括号将它们括起来而形成一个元组。
例如:
(,,abc)使用:
x,y,z=(,)#这个句子叫做元组的解包。
执行该语句后,x=y=z=。
在实际应用中,当不出现歧义时,可以省略圆括号。
姓名,性别,年龄=张三,男,元组作为函数的返回值。
当我们需要从函数返回多个值时,我们可以使用tuple作为返回值。
#coding=gbk#表示序列类型#条目的最大元素和最小元素:
v序列类型#return:
(最大元素,最小元素)defgetmaxmin(v):
big=vsmall=voriirange(,len(v)):
ifbigVI:
big=viifsmallvi:
Small=vireturnig,Small#应用示例A=,,,X,Y=GetMaxmin(A)Print(A=,A)Print(最大元素=,X,最小元素=,y)a=张三,李四,王五,HardStreagX,Y=Y敏元素=,Y)a=满清皇帝听说有一个大秘密X,Y=GetMaxmin(a)Print(a=,a)Print(maxelement=,X,MinElement=,y)a=,,,maxelement=minelement=a=#张三#,李四#,王五#,艰苦斗争#最大元素=艰苦斗争敏元素=张三a=清皇帝听说这两把刀有一个大秘密,是天下无敌的。
最大元素=这个最小元素=一个试题:
请猜猜下面代码的结果是什么Z=(,,)X,Y=GetMaxmin(Z)#GetMaxmin是上面的函数打印(X,Y)章节简单应用问题闰年的计算地球的公转周期是一个太阳日。
根据这个天数,地球绕着太阳转不是一天一夜。
因此,根据每年的日常计算,每四年地球离其四年前的位置有近一天的距离。
今天的公转距离需要一个闰日来弥补,所以通常每四年有一个闰年。
*=所以每一次跳跃都会有点过头,导致当天的错误。
每个闰年(即年份)都会导致日期误差。
为了减少这一误差,还规定在第一个闰年、第一个闰年、第二个闰年(减去额外天数)没有闰年,闰年保持在第二个闰年。
为了便于计算,人们制定了这样一条规则:
、如果年数可以被整除,那么年就是闰年。
否则,法官。
、如果年数可以整除,则该年不是闰年。
如果年数可以整除,则、闰年。
否则,这不是闰年。
闰年的计算方法不仅是编程语言中常见的例子,也是实际编程中常见且不可避免的问题。
函数DeffLeaYear(y):
if(y)=:
LP=elif(y)确定一年是否为闰年!
=and(y)=:
LP=else:
LP=returnLP这个函数被无数人写了无数遍。
虽然它不是这里最简单的一个,但它似乎与之前的算法一致。
确定接下来的年份是否是闰年?
,,,.
#coding=gbk#函数#entry确定一年是否是闰年:
y,int类型,=#return:
#=y是闰年#=y不是闰年(y):
LP=elif(y)!
=和(y)=:
LP=returnlp#应用示例:
#确定接下来的年份是否为闰年?
#,,,,YY=,,,foryinyy:
Z=leapy(Y)IFZ==:
S=闰年否则:
S=非闰年打印(Y,Year,S)年非闰年非闰年非闰年非闰年闰年非闰年闰年非闰年示例:
函数getLastDay(y,M)#计算Y年中的天数和M个月定义getLastDay(Y,M):
Ify:
Y=Ifm:
M=Ifm:
M=#每月的正常天数#monthDay=,,,,,,,r=monthdaymifm==:
r=rleapyyear(y)#这是对计算闰年的函数returnr的上一个示例的调用:
计算从年/月/年a.d.到y中的m/月/d(包括两端)的天数,例如:
从年/月/年a.d.到年/月/年a.d.的天数,is=日分析:
计算从年/月/年a.d.到y中的m/月/d的天数,我们分为三个部分:
(1)计算从公元到公元的一年是否是一整年,是一天还是一天(如果一年是闰年)
#coding=gbk#用于判断一年是否为闰年的函数#entry,int类型,=#return:
#=y是闰年#=y不是闰年defleapyear(y):
ify:
y=if(y)===:
LP=elif(y)==:
LP=elif(y)=:
LP=returnlp#计算y年中m个月的defgetLastDay(y)天数。
m):
分析:
公元一月一日是星期一。
很久很久以前,上帝创造了天地。
(这一天定为公元1月1日)第二天,上帝创造了空气(大气)或天空,并称之为天堂。
根据上帝的命令,黑暗再次取代了光明。
这发生在那天晚上。
第三天,上帝创造了海和山。
第四天,上帝创造了太阳、月亮和星星。
从那时起,太阳为地球提供了光和热。
第五天,上帝创造了空中的鸟和水中的鱼。
第六天,上帝在地上创造了各种各样的动物。
此后,上帝在第七天休息。
因此,我们也应该在6号星期天休息。
根据这个故事,我们知道星期几是某年某月的某一天。
只需调用日历(y,m,d)并将其除以其余部分,即可确定星期几和星期日。
计算序列的前N个项,示例为Sn=n#编码=gbk#Sn=n#方法1:
累加方法defcalcsn(N):
IFN:
returns=foriirange,N):
s=sireturns#方法2:
使用算术级数的求和公式#条目:
a=第一个项#n=项数#d=容差#return:
Sn#Sn=N*an*(N)*DDefcalSn(a,N,d):
如果(类型(a)==int)和(类型(d)==int):
returnn*an*(n)*delse:
returnn*an*(n)*dn=print(sn=n)print(n=,n)print(累计Sn=,calcSn(n))print(公式Sn=,calcSn(,,))Sn=nn=累加方法Sn=公式方法Sn=案例搜索Sn=(最后一项为n)分析:
项目T=项目T==项目T*项目T==T*即后一项=前一项*加#编码=gbk#搜索Sn=(最后一项为n)定义范围(n):
T=s=foriirange(,n):
s=stt=t*returnsn=print(s,n,=,calcsn(n))s=说明:
此算法适用于以下问题
对于C或delphi来说,可以用整数表示的范围太小(用实数得到的结果不够精确)。
当n较大时,需要首先解决大数运算的问题。
例如,Sn=分析:
序列号为I的第一项第一项符号的绝对值()**
(一)*一观察:
()第一项XI的绝对值与前一项XI的绝对值之间的关系:
|XI|=|XI|()第一项XI的符号FI与前一项XI的符号FI之间的关系:
FI=FI#编码=gbk#对于Sn=DefCalcsn(n):
x=s=f=foriirange(,n):
s=sf*xx=xf=fretur=print(s,n,=,calcsn(n))s=case计算要求:
计算的相对偏差小于#coding=gbk#calculationsn=!
!
!
#要求:
计算的相对偏差**()s=#最后的计算结果F=#符号n=#计数器T=#分母n!
当为真时:
f=fn=nt=t*NSN=sftifabs(SNS)e*(ABS(sn)ABS(s)):
#如果尚未达到计算精度s=snelse:
breakprint(sn=,sn)sn=时,计算方法为:
()给出初始值x=,()()()如果x非常接近x,则x为该值,否则x将替代x,turn()。
#coding=gbk#defmysqrt(a):
IFA:
a=aifa==:
returnx=whiletrue:
x=(xax)ifab(xx)e*(ABS(x)ABS(x)):
#如果尚未达到计算精度x=xelse:
breakreturnxa=print(a),算术平方根=,mysqrt(a))a=print(a,算术平方根=,mysqrt(a))算术平方根=算术平方根=MHNO溶液的酸碱度。
分析:
我们都知道强酸在稀溶液中是完全离子化的。
也就是说,H和被HNO电离的一氧化氮都是m,但我们不能考虑它的酸碱值=ho====hohskw=e的计算方案:
让x=OH=E()H=CX()X=KwH()如果X非常接近X(),否则让X=X,Turn()()pH=logH#编码=gbk#计算电磁的硝酸溶液的酸碱值#使x=OH#,那么H=OHC#OHNew=kwhimportmathDefCalcch(C):
KW=Ex=EWHILELTRUE:
H=XCX=KWHILIFABS(XX)E*(ABS(X)ABS(X)):
#如果计算精度X=XELSE:
Breakretarmathlog(H)C=EPRINT(C,M的硝酸溶液pH=,calcPH(C))eM的硝酸溶液pH=讨论:
也许你认为我们可以使x=OH,那么(Cx)x=Kw可以用以下公式求解二次方程为什么这么麻烦?
我们在这里举例说明解决问题的迭代方法。
第二章溶液中酸碱平衡的分配系数;
三元弱酸溶液的电离平衡忽略电荷,根据电离平衡常数:
ha=阿哈*khha=阿哈*kh=阿哈*k*kha=阿哈*kh=阿哈*k*k*k*KH酸的总浓度c=哈哈a*khha*k*khha*k*k*k*KH=ha(khk*khk*k*KH)分配系数的公式可由此获得:
标题:
MNaHAc(草酸氢钠)的计算溶液的酸碱度k=k=e分析:
()溶液中的物质:
H,OH,Na,HAc,HAc,Ac=()草酸的分析浓度(即草酸的各种形式的总和)C=m:
ha=δha*C=f(CK,k,H)ha=δha*C=f(CK,k,H)a=δa*C=f(CK,k,H)OH=H为了得到氢,他们需要满足电荷平衡:
HNa=HAAOH,也就是说,要解这个方程,氢的值就是溶液的氢,这样就可以得到溶液的酸碱度。
求解一元方程y=f(x)=方程f(x)=实数解:
对于连续函数f(x),如果f(Xa)和f(Xb)符号相反,则方程在(Xa,Xb)之间至少有一个解。
对于上述问题,我们知道ph值必须介于和之间,根据化学知识,所以我们设计了以下计算方案:
阶梯法:
(1)给定初始的pH值范围a,b=,()将区间分成n=相等的部分来探究每个细胞之间的ai,如果f(ai)和f(bi)具有相反的符号,则Bi找到新的解区间AI。
Bi溶液间隔结束,否则n=n*turn()#编码=gbk#计算m的草酸钠水溶液的酸碱度#k=k=eimportmath=k=edefq(h):
kw=eoh=kwhha=c*k*h(h*hk*hk*k)a=c*k*k(h*hk*hk*k)q=(HC)(ohha*a)#电荷平衡返回qdefmaibu(a,b):
N=whiletrue:
DH=(ba)nhavefind=foriinfrange,N):
ai=ai*dhbi=aidfa=q(**(ai))FB=q(**(bi))iffa*FB=:
havefind=breakifhavefind==:
N=N*否则:
breakreturnnai,bia,b=maibu(,)通过逐步搜索,我们可以获得相同水平的溶液的酸碱度。
当我们得到一个细胞,我们可以进一步搜索得到一个更小的细胞。
那么搜索什么时候会停止?
如果细胞两端非常接近,搜索可以停止,间隔的中点是所需的酸碱值。
方案如下:
(A,B=,()进行搜索:
A,b=maibu(a,B)()如果A非常接近B,ph=(ab),停止搜索或使a=a,b=b.Turn()#coding=gbk#计算酸碱值#k=k=eimportmath=k=k=edefq(h):
kw=eoh=kwhha=c*k*h(h*hk*hk*k)a=c*k*k(h*hk*hk*k)Q=(HC)(ohha*a)returnqdefmaibu(a),B):
n=Wheretre:
DH=(ba)NHaveFind=foriirange(,n):
ai=ai*dhbi=aidhfFBb)ifabs(ab)=e*(abs(a)abs(b)):
a,b=a,belse:
pH=(ab)breakprint(ph=,ph)ph=示例,以找出MHNO溶液的pH值。
也就是说,H和被HNO电离的一氧化氮都是m,但我们不能考虑它的酸碱值=ho===hohww=e计算方案:
设x=OH=E()H=CX()X=KwH()如果X非常接近X(),否则设X=X,Turn()()pH=logH#编码=gbk#计算电磁硝酸溶液的酸碱值#使x=OH#,那么H=OHC#OHNew=kwhimportmathDefCalcch(C):
水溶液中酸碱平衡的一个例子MHA溶液的酸碱度()分析:
(电离平衡()物质平衡()电荷平衡:
在这个系统中有一种物质(氢、氢氧、氢氧、氢氧、氢氧、氢氧、氢氧、氢氧、氢氧、氢氧、氢氧、氢氧、氢氧、氢氧、氢氧、氢氧、氢氧、氢氧、氢氧、氢
然而,这个方程组不是很方便求解,是吗?
你一定学过无机或分析化学中的几个近似公式。
很难相信能解决这个问题。
但是在这里我们想为计算机找到一个解决方案。
()根据电离平衡,我们得到:
将公式、代入电离平衡:
二元弱酸的分配系数:
然后我们得到下面的计算方案:
让H=E(A)计算羟基、羟基、羟基、羟基的浓度,计算氢=(C)如果氢非常接近氢,那么氢就是我们想要的氢离子浓度。
否则,H=H转向(a)重新计算#coding=gbk#计算m#K=ek=eimportmathdfalcha(c,K,K)的ha溶液的酸碱度:
kw=eh=ewhilettrue:
oh=kwhha=c(khk*khh)HA=K*hah=ohha*a#电荷平衡ifab(HH)E*(ABS(H)ABS(H)):
#如果计算精度h=helse:
print(oh,HA,HA,a,h=,oh,H)h)brekturnathlog(h)c=k=ek=eprin