and和or用于多个条件需要判断的情况下,以两个条件举例
and:只要有一个条件为假,最终结果就为假
条件1 | 条件2 | 结果 |
真 | 真 | 真 |
假 | 真 | 假 |
假 | 假 | 假 |
or :只要有一个条件为真,最终结果就为真
条件1 | 条件2 | 结果 |
真 | 真 | 真 |
真 | 假 | 真 |
假 | 假 | 假 |
框架在编程中有很多名字:框架、工具、包、插件。
Random就是用来获取随机数的一个包,我们今天先简单介绍一下获取随机整数的使用方法。
在这里也说一下关于计算机证的随机数:
1.计算机中的随机数也被称之为“伪随机数”;
2.计算机获得随机数是根据计算机内部的算法得到的
从random包中引出随机整数的方法:
在0和3之间随机获得一个整数:
From random import randint
number = randint(0,3)
print(number)
我们最后得到的number的值就是一个0和3之间的随机整数
在python中for循环的结构是for in结构,index索引 range 范围
range后面是一个值,表示代码循环的次数
for index in range(10):
print('我要学习')
print(index)
range后面是两个值的时候
值1表示循环开始的位置
值2表示循环结束的位置
for index in range(50,100):
print(index)
range后面是三个值得时候
值1表示循环开始的位置
值2表示循环结束的位置
值3表示增量
for index in range(50,100, 5):
print(index)
只是明白代码是什么意思还不够,编程就是要多练多敲
我们来做个小练习吧
如何获取1~100之间所有数字的和?
首先我们先定义一个变量sum
让它等于0
然后用for循环从1开始循环到101结束循环
循环里面用sum= sum + 1 得到1~100之间所有数字的和
用print('x=%s'%x)输出循环的次数
最后输出sum的值
sum = 0
for x in range(1,101):
sum = sum + x
print('x=%s'%x)
print(sum)
获取1~100之间所有奇数之和与5的倍数之和的差
第一种解法:
ji_shu_he = 0
bei_shu_he = 0
for index in range(1,101,2):
ji_shu_he = ji_shu_he + index
print('奇数和是%s'%ji_shu_he)
for index in range(5,101,5):
bei_shu_he = bei_shu_he + index
print('倍数和是%s'%bei_shu_he)
print('奇数与倍数和的差是%s'%(ji_shu_he - bei_shu_he))
第二种解法:
ji_shu_he = 0
bei_shu_he = 0
for index in range(1 , 101):
if index % 2 == 1 :
ji_shu_he = ji_shu_he + index
if index % 5 == 0:
bei_shu_he = bei_shu_he + index
print(ji_shu_he - bei_shu_he)
石头剪刀布有三种情况:赢、输、平局。
因为是三局两胜制所以我们需要统计这三种情况的次数;
当有一方赢了两次就判定它赢;
初次之外我们还需要考虑平局的情况,分别有三种可能:
1.三局都是平局;
2.一胜一负一平局;
3.一胜二平局。
前两种情况结果都是平局,只有第三种情况是有一局胜的一方最后结果是赢;
我们需要用if语句判断是哪一方最终是赢的一方。
初次之外还有两种特殊情况:
第一种情况是input获取到的值不是0~2之间的数值;
第二种情况是input获取到的值不是数字,是字母或者符号。
这两种情况我们都需要if判断语句排除掉。
最后当我们得到最终结果并输出之后需要用break结束循环。
from random import randint
#玩家胜利的次数
user_win = 0
#电脑胜利的次数
compunter_win = 0
#平局的次数
deuce = 0
#index 代表编号 value 代表值
for index , value in enumerate(range(3)):
print('请输入对应的数字')
print('0:石头,1:剪刀,2:布')
user_num = input()
if user_num.isdigit ():
user_num = int(user_num)
computer_num = randint(0,2)
if 0 <= user_num <=2 :
if user_num - computer_num == -1 or user_num - computer_num == 2 :
print('第{}局玩家胜'.format(index +1))
user_win += 1
elif user_num - computer_num == 0 :
print('第{}局平局'.format(index +1))
deuce += 1
else:
print('第{}局电脑胜'.format(index + 1))
compunter_win += 1
print('------第{}局结束------'.format(index+1))
if compunter_win == 2 :
print('电脑胜')
break
elif user_win == 2 :
print('玩家胜')
break
else :
#平1局一胜一负 平3局 平2局赢一局
if deuce == 1 and compunter_win - user_win == 0 and index == 2:
print('平局')
elif deuce == 3 :
print('平局')
elif deuce == 2 and index == 2:
if compunter_win - user_win == 1:
print('电脑胜')
else:
print('玩家胜')
break
else:
print('输入的数字错误,请重新输入')
break
else:
print('你的输入有误,请输入0~2之间的数字')
break