码迷,mamicode.com
首页 > 其他好文 > 详细

运算符、单双分支&多分支、while循环

时间:2018-01-14 11:02:58      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:you   密码   一点   比较大小   不能   否则   第一个   while语句   登录   

一 、运算符:

1. 算术运算符:

“ + ”、“ - ” 、“ * ” 、“ / ” 分别为加、减、乘、除。

% 是“取模运算符”,就是返回除法的余数。eg. a = 3, b=5, b % a 就是b/a的余数2。 常见用处:判断奇偶性及跟奇偶性有关的需求。

** 是“幂运算符”。eg. a**b为a的b次方。

// 是“取整除”, 就是返回商的整数部分。eg. 9//2输出结果为4。

 

2. 比较运算符:

== 是“等于”;

!= 是“不等于”;

<> 是“不等于” (Python2 语法,Python3不能用);

> 是“大于”;

< 是“小于”;

>= 是“大于等于”;

<= 是“小于等于”;

 

3. 赋值运算符:

= 是简单的赋值运算符;

+= 是加法赋值运算符。c += a 等效于 c = c+a;

-= 是减法赋值运算符。c -= a等效于 c = c - a;

*= 是乘法赋值运算符。c *= a 等效于 c = c * a;

/= 是除法赋值运算符。c /= a 等效于 c = c/a;

%= 是取模赋值运算符。c %= a 等效于 c = c % a;

**= 是幂赋值运算符。c **= a 等效于 c = c ** a;

//= 是取整除赋值运算符。c //= a等效于 c = c // a 。

 

4. 逻辑运算符:

and 布尔“与”; (用途:用户登录时需要 用户名正确 and 密码正确)

or 布尔“或”;

not 布尔“非”。

 

二、控制流程

1. 单分支:

定义:

if 条件:

    满足条件后要执行的代码

 

2.双分支:

定义:

if 条件 :

    满足条件执行代码

else :

    if条件不满足就走这段

 

(1). if_else用户名、密码登录代码及运行:

 

技术分享图片

 

技术分享图片

 

这段代码用到的知识点:if...else语法、逻辑运算符“and”。

(2). if...else程序练习: 输入姓名、性别、年龄,判断如果是女生且年龄小于28岁,打印我喜欢女生,否则,打印姐弟恋也很好哦。如果是男生,打印一起来搞基。

源代码如下:

 

技术分享图片

 

这段代码中用到的知识点:1. if...else中又嵌套了一个if...else语句,2. 因为 变量age要跟28这个数字做大小比较,字符串(str)和数字(int)不能比较大小,所以需要把input( ‘ Age:‘) 这个字符串用int()处理变成数字。

 

3. 多分支:

定义:

if条件 :

    满足条件执行代码

elif条件 :   

    上面的条件不满足就走这个

elif条件 :    

    上面的条件不满足就走这个

elif条件 :    

    上面的条件不满足就走这个

else:

    上面所有的条件不满足就走这段

 

匹配成绩小程序:

要求:成绩有ABCDE 5个等级,对应关系如下

A  90~100

B 80 ~ 89

C 60~79

D 40~60

E 0~40

根据输入的分数来查询成绩等级。

 

下图是别人写的的比较正确规范的代码:

技术分享图片

 

下图是我当时自己写的代码:

技术分享图片

对比我写的 “ elif 80 <=grade <90 : ” 和别人写的 “ elif grade >= 90 : ” ,发现我一个认识不足的地方,这个不足也反映了我对elif语句的理解不透彻。 我不应该再去强调 “ grade < 90 ”,因为elif 的定义就是 “如果上面的条件不成立,就走elif”,程序既然能走到 “ 80 <= grade < 90 ”这一步,输入的分数肯定不能满足“ grade >= 90 ”,要不然程序不会走到这一步。

 

四、while循环

语法:

while 条件:

    执行代码...

 

基础程序: 写个程序从0打印到100,每循环一次+1。

技术分享图片

 

程序练习1: 编写一个程序打印1到100的偶数。

下图是我当时写的错误代码:

技术分享图片

 

 

执行结果:

技术分享图片

我的错误之处:我写的while语句意思是“count小于等于100,且count对2取模为0”,下面的程序才会执行,count第一个数是1, 满足小于等于100这个条件,但却不满足对2取模为0这个条件,所以后面的代码就直接不执行了。

正确代码:

技术分享图片

关于这段代码有一点需要注意,如下图

技术分享图片

 

程序练习2: 循环打印1到100,第50次不打印值,第60-80次,打印对应值的平方。

我当时写的代码:

技术分享图片

 

别人写的更简洁的代码:

技术分享图片

我的代码和别人简洁代码产生出入的原因: 1. pass这个功能以前不会用,pass的作用就是什么都不执行; 2. 写作时的思路不同: 我的代码是先写“大众化的需求”,例如先写了count 位于1~60和 位于 80~100时的代码,后来在这两行代码中间加上了60~80这个“小众化的要求”, 最后在while语句的最前部分加上了“排除50”这个“最小化的要求”;但别人的写作思路是最先把50这个“最小众化的要求”写出来,然后再写60~80这个“小众化的需求”, 最后再写其他所有的、也是“最大众化的需求”。

还有一个猜年龄3次的程序,我第一次写的时候忘记把 guess_age = int( input(‘ your guess:‘) ) 这句代码写到while语句里面。因为需要输入3次。 如下图

 

技术分享图片

运算符、单双分支&多分支、while循环

标签:you   密码   一点   比较大小   不能   否则   第一个   while语句   登录   

原文地址:https://www.cnblogs.com/neozheng/p/8281012.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!