博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python基础二--基本控制语句
阅读量:5917 次
发布时间:2019-06-19

本文共 4308 字,大约阅读时间需要 14 分钟。

基本接触每一种语言,都须要做的:1.print 一个"Hello world!" 2.了解主要的数据类型 3.学习控制语句。

当我们学习控制语句,一般都离不开if,for ,while,switch(case)。本文就做一个简单的介绍python的基本控制语句。当中我们用if while来做一个经典的“猜数字游戏”,if for来做一个“输出完美数”。

在此之前,对于一些没用过python的同学而熟悉c/c++等用{}来做块的要注意了,python的是利用缩进来分块的,小小烦恼。可是习惯一段时间还是能够接受的,这种优点就是从直观上看来大家的代码是基本一样的格式。所谓的简单易读。

来说一下缩进的烦恼,属于我们刚開始学习的人的烦恼。

a=3b=5if a>b:   print aelse:   print b print a+b
上面的代码所做的就是输出a,b中最大,最后输出a+b,注意到最后一行print a+b没有顶格,所以就error了,缩进问题。

之后,我们来说一下缩进的优点。假设你写过C/C++类似的

你会不会犯过这个错误

#include
#include
#include
using namespace std;int main(){ int a=160,b=170; //1案例,当a比b大时候,假设a为奇则输出a,否则输出Error,这样是没有问题的 if(a>b) if(a&1) cout<
b) if(a&1) cout<
 
 

好了,本文的主要是讲述基本控制语句

首先,大家都写过的输出a,b最大者,用伪代码看来就是

if a>b   print aelse   print bendif
而这里就是用到了最主要的if条件语句,python中的
if的使用方法

if expression:  #注意到  ":",漏了可不行,在写脚本时时常范的小错误    if_suit
example

age=19if age>18:     print 'You are  adult!'
result

You are  adult!

当然。有if自然有else

if expression:      if_suitelse:    else_suit
example

IQ=250if IQ>250:    print "Your IQ is very high!"else:    print "Normal guy!"

result

Normal guy!

还有不能少的else if,可是python的elseif写的是和shell一样的elfi

example

IQ=250if IQ>250:    print "Your IQ is very high!"elif IQ==250:    print "You are 250!" else:    print "Normal guy!"
result

You are 250!

(以上样例内容仅供娱乐,不要认真,基础总是枯燥的,多多调侃自己找乐子!)

接下来是while了,基本使用方法就是

while expression:        while_suit
exmple

cnt=0while cnt<5:    print cnt    cnt+=1
result

01234

另外,有while,我们还必须提到break。break就是打破循环嘛,和c++基本一样。举个样例

cnt=1while cnt<10:    print cnt    if cnt%2==0:         break;    cnt+=1
这时候结果就是

12
猜数字大家都清楚,就是在设定一个随机数作为答案(也能够手动设置),之后输入数字,系统判别。大了或者小了,假设相等就跳出循环

code

#!/usr/bin/env python# coding=utf-8import randoma=1b=1000ans=random.randint(a,b)cnt=0while True :    num=int(raw_input('Guess the number:'))    cnt+=1    if num==ans:          print "Great!%d is the answer!"%num          print "You guessed %d times"%cnt          break     elif num>ans:          print "%d is greater than the ans"%num     else:          print "%d is less than the ans"%num
 当中要用到random,大概的使用方法就是从a,b之间产生一个随机数。如样例所说 

result

Guess the number:00 is less than the ansGuess the number:10001000 is greater than the ansGuess the number:500500 is greater than the ansGuess the number:250250 is greater than the ansGuess the number:125125 is less than the ansGuess the number:185185 is greater than the ansGuess the number:155155 is less than the ansGuess the number:170170 is less than the ansGuess the number:177177 is greater than the ansGuess the number:173173 is greater than the ansGuess the number:172172 is greater than the ansGuess the number:171Great!171 is the answer!You guessed 12 times
这个二分还是不错的^_^,懂二分的程序猿是非常值钱的。回忆五月中的广东省赛。我们就是死在了一条二分题上,罚时太多了!

遗憾铁牌。

for

实际上。python的for 跟c++的for感觉是不一样的,他更像for each迭代。

基本使用方法就是:

for iterating_var in sequence:   statements(s)

举个样例来看。

ProLan=['C','CPP','JAVA','PYTHON']for item in ProLan:       print item
这样输出的结果是:

CCPPJAVAPYTHON
假设不想换行。那么就在item后增加" ,"

ProLan=['C','CPP','JAVA','PYTHON']for item in ProLan:       print item,
结果就是

C CPP JAVA PYTHON
还有我们想做

for(int i=0;i<100;i++)    printf ("%d ",i);

这样的事情,在python要这么写

for i in range(0,100):       print i,
到此为止,我们就能够做事情了。输出0~10000
完美数

首先,先科普一下完美数,完美数就是全部非本身的因子加起来为本身。比方6就是一个完美数,6的非本身因子有1,2,3,1+2+3=6。

我们能够用for 和 if 来实现

一个很粗糙的方法,全然讲不算是算法

#!/usr/bin/env python# coding=utf-8for i in range(1,10000):    fact=0    for j in range(1,i):        if i%j==0:            fact+=j    if fact==i:        print i
一个略微的改良nlogn,这个大家都懂。就不废话了。

#!/usr/bin/env python# coding=utf-8import mathfor i in range(1,10000):    fact=1    end=int(math.sqrt(i))+1    for j in range(2,end):        if i%j==0:            fact+=j            if j*j!=i:                fact+=i/j;    if fact==i:        print i
result

16284968128
另外,还值得一提的是。还有
for..else,
While ...else

对于我们这样的习惯写C/C++的人来说,甚是“新奇”!只是我认为还是不要用好~多写点,避免混淆啊。亲!

举个样例

for i in range(1,10):   if i&1:       breakelse:   print "for-else"
这样break掉就不会走else,也就是正常结束才会走else.实际上我理解为

for i in range(1,10)

 //do somting

if i==10

  //do else

即假设是

for i in range(1,10):   if i>250:       breakelse:   print "for-else"
这样就会输出

for-else
while..else也如此。

至此。基本上的控制语句已经讲完了。

在python 2.X中是没有case的,这不知道是好是坏,我们仅仅能用

if..elif..else来取代了!

转载于:https://www.cnblogs.com/yutingliuyl/p/7215777.html

你可能感兴趣的文章
企业Windows服务器备份和灾难恢复案例
查看>>
“跑路风波”的内在缘由?P2P网络信贷将何去何从?
查看>>
常用vim设置
查看>>
美国的油价以后可能由AI决定了
查看>>
关于.NET解决方案批生成的一点探索(同一个解决方案下多项目批生成)
查看>>
本地运行ASP.NET 网站组件CYQ.IIS发布--网站项目展示必备工具
查看>>
E-HPC在科研领域的应用--告别“假期大把时间没法做事,回校又和大家抢机器”的时代...
查看>>
Linux OpenSSL:基于密码和密钥的远程登录
查看>>
C#生成缩略图
查看>>
物联网时代,终端市场将会焕发第二春
查看>>
答疑解惑:Linux与Windows的那些事儿(2)
查看>>
HTTP中Get与Post的区别
查看>>
[好文推荐] 给年轻程序员的8条建议
查看>>
计算二进制中的字符串的长度
查看>>
System Center 2016 - Configuration Manager 部署安装(一)
查看>>
HTML页面基本结构
查看>>
OpenCV高斯差分技术实现图像边缘检测
查看>>
dp - Google Code jam Qualification Round 2015 --- Problem B. Infinite House of Pancakes
查看>>
网站架构资料收集整理
查看>>
WifiDog and OpenWrt
查看>>