I…if else语句
if是如果的意思,例如a,b,c,d=1,2,3,4等等数字,如果a除以2能整除,没有余数,a就是偶数。
if else就是在如果后边加了个否则,例如a,b,c,d=1,2,3,4等等数字,如果(if)a除以2能整除,没有余数,a就是偶数。否则(else)就是奇数。
a = 0
if a % 2 == 0 :
print(" 偶数 “)
else:
print(” 奇数 ")
elif == else: if
来看一个例子三种不同写法:
1.
month = int(input(‘现在的月份:’))
if 0 < month < 13:
if 3 <= month < 6:
print(‘春季’)
if 6 <= month < 10:
print(‘夏季’)
if 10 <= month < 1:
print(‘秋季’)
if 1 <= month < 4:
print(‘冬季’)
else:
print(‘我可不过这个月’)
2.这个语句看上去比第一种方法代码要多,但是他有一个有点,就是在加了else后当任意一个if条件成立,他会结束判定,直接打印输出。再看一下第一种,比如我输入的是4,那么系统会在打印输出" 春季 "后继续完成以下的所有条件判断,会减慢运行速度。
month = int(input(‘现在的月份:’))
if 0 < month < 13:
if 3 <= month < 6:
print(‘春季’)
else:
if 6 <= month < 10:
print(‘夏季’)
else:
if 10 <= month < 1:
print(‘秋季’)
else:
if 1 <= month < 4:
print(‘冬季’)
else:
print(‘我可不过这个月’)
3.这样用elif代替else if效果是相同的,但会少些一些代码。但是要注意elif前一定要有一个并列等级的if。将else和if合并写,要求你要很清楚你代码的逻辑,不能随意合并。
month = int(input(‘现在的月份:’))
if 0 < month < 13:
if 3 <= month < 6:
print(‘春季’)
elif 6 <= month < 10:
print(‘夏季’)
elif 10 <= month < 1:
print(‘秋季’)
elif 1 <= month < 4:
print(‘冬季’)
else:
print(‘我可不过这个月’)
II… while语句(当型循环)
while语句和if相似 ,不同的是while在结果为真执行完语句后会进行重新判定条件的真假,直到条件为假,否则会一直循环。这就是while循环语句。所谓假就是0、空串、或条件判断为false才会结束循环。
这里以一个打印100以内的质数为例(用的自己的逻辑,不一定是最简单的。)
判断是否是100以内
while i < 100:
j = 1
while j <= i:
# 判定不为质数,则直接跳出循环
if i % j == 0 and j != 1 and j != i:
break
else:
# 判定是否取完所有可能的因数,若未取完则j自增
if j != i:
j += 1
# 如判定取完可能因数,且上述已判定完不为质数的情况下,则可以确定该数为质数,打印输出并且跳出循环。
else:
# 1不是质数
if i != 1:
print(i)
break
# 进行下一个数的判定。
i += 1
这个例子,要求打印100以内的质数,那么先判断这个数是0-100。
这里设定i为需要判定的数,j为辅助判定因数。
i = 0
判断是否是100以内
while i < 100:
然后打印质数,这就要从质数的定义入手,质数的定义是除了1和它本身没有别的因数。那么一个数可能的因数都有哪些呢,就是从1到它本身之间的数,那就一个一个试,这里我们就设置一个辅助因数。判断这个辅助因数到底是不是因数进行取余看是否为零就可以了。那么不满足质数定义的数直接跳到下一个数就可以了。
j = 1
while j <= i:
# 判定不为质数,则直接跳出循环
if i % j == 0 and j != 1 and j != i:
break
else:
# 1不是质数
if i != 1:
print(i)
break
i += 1
作业:
1.水仙花数:
num = 100
while num < 1000:
hundred = int(num / 100 % 10)
ten = int(num / 10 % 10)
a = int(num % 10)
if hundred ** 3 + ten ** 3 + a ** 3 == num:
print(num)
num += 1
continue
num += 1
2.质数
# 用户输入数字
num = int(input("请输入一个数字: "))
# 质数大于 1
if num > 1:
# 查看因子
for i in range(2,num):
if (num % i) == 0:
print(num,"不是质数")
print(i,"*",num//i,"=",num)
break
else:
print(num,"是质数")
# 如果输入的数字小于或等于 1,不是质数
else:
print(num,"不是质数")
3.石头剪刀布游戏
#将玩家和机器视为两个参量,机器产生随机数1-3,代表着'1':'石头','2':'剪刀','3':'布'
#然后玩家可以输入进行模拟比赛了
print('*******************begin*******************')
#先设置一个空表以及初始化infos
player_info = []
player_score = 0
infos = {'1':'石头','2':'剪刀','3':'布'}
while True:
#控制程序可以一直比赛下去
computer = str(random.randint(1,3))
player = input('请选择:1-石头,2-剪刀,3-布:')
if player not in ['1','2','3']:
print('输入有误,请重新输入:')
continue
else:
ret = (player,computer)
player_info.append(ret)
if ret==('1','2') or ret==('2','3') or ret=('3','1'):
print('玩家赢了')
player_score += 1
elif player == computer:
print('平局')
else:
print('机器赢了')
player_score -= 1
print('对战双方结果:玩家:%s,机器;%s'%(infos[player],infos[computer]))
#设置结束条件
choice = input('\n是否继续游戏?(yes/no):')
if choice=='no':
break
elif choice=='yes':
continue
else:
#这里还有优化的空间,后面补充如何让其跳转到——是否继续游戏
print('输入有误!')
continue
print('*******************end*******************')
index=1
print('玩家\t\t机器\n')
for m,n in player_info:
print('%s\t\t%s'%(infos[m],infos[n]))
print('总分为:%s'%player_score)