Python中的and和or

and和or用于多个条件需要判断的情况下,以两个条件举例

and:只要有一个条件为假,最终结果就为假

 

条件1

条件2

结果










or :只要有一个条件为真,最终结果就为真

 

条件1

条件2

结果










Python框架

框架在编程中有很多名字:框架、工具、包、插件。

Random就是用来获取随机数的一个包,我们今天先简单介绍一下获取随机整数的使用方法。

在这里也说一下关于计算机证的随机数:

1.计算机中的随机数也被称之为“伪随机数”;

2.计算机获得随机数是根据计算机内部的算法得到的

从random包中引出随机整数的方法:

在0和3之间随机获得一个整数:

From random import randint
number = randint(0,3)
print(number)

我们最后得到的number的值就是一个0和3之间的随机整数

For循环和Range函数

在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