Python学习笔记(2)while循环

猜拳游戏1.0

python和java,c++那些不一样的地方就是,每句话后面不用必须加' ; '但我总是习惯,所以就加吧…另外找到了为什么昨天自己写总是报错的原因,还是语法问题,没有仔细学,else是要加冒号然后另起一行的,谨记!

首先了解了随机函数在python里的写法:

import random #先import
computer=random.randint(0,2)
#random.randint(a,b) 的含义就是在0-2的范围内产生随机数,randint是回传一个整数

基本思路就是:玩家选择出拳,计算机随机生成一个数字,再用if语句判断结果。

首先是最基础的版本:

就是让他一直if elif else判断就好了。

# 猜拳小游戏
import random
player=int(input('请出拳(0:石头 1:剪刀 2:布): '))
computer=random.randint(0,2)
if player == 0: #玩家出石头
    if computer == 0:
        print('打成平手,电脑也出了石头!')
    elif computer == 1:
        print('玩家获胜,电脑出了剪刀!')
    else:
        print('电脑获胜,电脑出了布!')
elif player == 1: #玩家出剪刀
    if computer == 0:
        print('电脑获胜,电脑出了石头!')
    elif computer == 1:
        print('打成平手,电脑也出了剪刀')
    else:
        print('玩家获胜,电脑出了布!')
elif player == 2: #玩家出布
    if computer == 0:
        print('玩家获胜,电脑出了石头!')
    elif computer == 1:
        print('电脑获胜,电脑出了剪刀!')
    else:
        print('打成平手,电脑也出了布!')

老师一开始没有嵌套代码结构,因为之前学过别的语言直接用了,相当于提前了一部分,但是我还在想能不能把几个判断条件合并一下,就类似c++,可以更简约代码语言,但是好像判断会更占性能?但我觉得可以几乎不计吧…

逻辑运算符python直接使用and or not,倒是很简约。

while循环结构

while 条件判断 :
    do xxxxx

有个和之前语法不一样的地方:

比如for(i=0;i<=100;i++)

在这里变成了while i<=100

                                i+=1

不能用i++,是错误的语法,这点要注意。

猜拳游戏2.0

# 猜拳小游戏
import random
num = 1;
comwin=0;
plwin=0
while num<4:
    player=int(input('请出拳(0:石头 1:剪刀 2:布): '))
    computer=random.randint(0,2)
    if player == 0: #玩家出石头
        if computer == 0:
            print('打成平手,电脑也出了石头!')
        elif computer == 1:
            plwin+=1
            print('玩家获胜,电脑出了剪刀!')
        else:
            comwin+=1
            print('电脑获胜,电脑出了布!')
    elif player == 1: #玩家出剪刀
        if computer == 0:
            comwin+=1
            print('电脑获胜,电脑出了石头!')
        elif computer == 1:
            print('打成平手,电脑也出了剪刀')
        else:
            plwin+=1
            print('玩家获胜,电脑出了布!')
    elif player == 2: #玩家出布
        if computer == 0:
            print('玩家获胜,电脑出了石头!')
        elif computer == 1:
            print('电脑获胜,电脑出了剪刀!')
        else:
            print('打成平手,电脑也出了布!')
    num+=1
if comwin >= 2:
    print('三局两胜,电脑赢了!')
elif plwin>=2:
    print('三局两胜,玩家赢了!')
else:
    print('你们最终打成平手!')

将游戏变为五局三胜的制度,一开始进入死循环了,发现是num+=1那里没有缩进,python对代码格式整洁的要求太高了,要多练习才行!

打印九九乘法表

一开始的代码:

注意这里学习一下

print("%d*%d=%d"%(row,col,row*col),end=" ")
# %d 是取整数的值,然后先把格式写出来,这里是双引号,后再用%确定公式里的几个%d分别的含义
#end是为了防止print自动换行

还有就是%d以外还有啥类似的print格式化输出,因为c++这里老师没怎么讲过,又没学过c,一直不太理解。 

%s    字符串 (采用str()的显示)

%r    字符串 (采用repr()的显示)

%c    单个字符

%b    二进制整数

%d    十进制整数,%6d表示输出6位整数,如果不足6位整数,则左边补空格

%i    十进制整数

%o    八进制整数

%x    十六进制整数

%e    指数 (基底写为e)

%E    指数 (基底写为E)

%f    浮点数

%F    浮点数,与上相同

%g    指数(e)或浮点数 (根据显示长度) 

%G    指数(E)或浮点数 (根据显示长度)

这一块哪里用到的时候再学习吧,先暂略。 

while col<=9:
    row=1
    while row<=(10-col) :
        print("%d*%d=%d"%(row,col,row*col))
        row+=1
        pass
    col+=1
    pass

但是问题出现了:没办法换行,好像这么写不可以。而且我发现我理解错九九乘法表了,这个得出来的不是……被自己蠢死orz

先按照教程打印正三角

row = 1
while row<=9:
    col=1
    while row>=col :
        print("%d*%d=%d"%(row,col,row*col),end=" ")
        col+=1
        pass
    row+=1
    print()
    pass

但是为了加深自己的理解,想打印个倒三角,或许应该变换row和col的选择,但是我现在只能想到的是把row和col给定值,让每次循环col开始的时候能够做到与row值相同。

row = 1
while row<=9:
    col=row
    while col<=9 :
        print("%d*%d=%d"%(row,col,row*col),end=" ")
        col+=1
        pass
    row+=1
    print()
    pass

这次结果是成功的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值