python 流程控制基础知识总结 和九九乘法表、质数、水仙花数、猜拳游戏练习

python 流程控制基础知识总结 和九九乘法表、质数、水仙花数、猜拳游戏练习



1、条件判断

条件判断语句( if语句 )

  • 执行的流程:
    • if语句在执行时,会先对条件表达式进行求值判断,
    • 如果为True,则执行if后的语句
    • 如果为False,则不执行
  • **语法:if 条件表达式 : **
  • 代码块
    • 代码块代码块中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行
    • 代码块以缩进开始,直到代码恢复到之前的缩进级别时结束
    • 代码块就是一种为代码分组的机制
a = int(input("请输入012中的一个数字:"))
if a == 0:
    print(111111)
if a == 1:
    print("哈哈哈哈")
if a == 2:
    print("shbvubsv")

input() 函数

  • 该函数用来获取用户的输入
  • input()调用后,程序会立即暂停,等待用户输入
  • 用户输入完内容以后,点击回车程序才会继续向下执行
  • 用户输入完成以后,其所输入的的内容会以返回值得形式返回
# input()(输入)函数: 接收到的是一个字符串,实际应用中根据自己的需求进行转换
# str()函数:将数据强制转换为字符串
# int()函数:将数据强制转换为整型
# float()函数: 将数据强制转换为浮点型
# print()(输出)函数: 打印输出函数
a = input('请输入内容:')
print(a,type(a))

在这里插入图片描述

if-else语句

  • 语法:
    if 条件表达式 :
       代码块
    else :
       代码块
  • 执行流程:
    • if-else语句在执行时,先对if后的条件表达式进行求值判断
    • 如果为True,则执行if后的代码块
    • 如果为False,则执行else后的代码块
n = int(input("请输入内容:"))

if n < 20:
    print("skdbdsnbkn")
else:
    print("我见众生皆无意,唯有见你动了情")
    
'''如果输入的整数小于20,就会打印:skdbdsnbkn,反之就会打印:我见众生皆无意,唯有见你动了情'''

if-elif-else 语句

• 语法:
if 条件表达式 :
   代码块
elif 条件表达式 :
   代码块
elif 条件表达式 :
   代码块

else :
   代码块

money = 2000

if money <= 1000:
    print('这个月要吃土')
elif 1000<money<=2000:
    print('月光族')
elif 2000<money<5000:
    print("生活温饱")
else:
    print("生活太梦幻了")
  • 执行流程:
    • if-elif-else语句在执行时,会自上向下依次对条件表达式进行求值判断,
    • 如果表达式的结果为True,则执行当前代码块,然后语句结束
    • 如果表达式的结果为False,则继续向下判断,直到找到True为止
    • 如果所有的表达式都是False,则执行else后的代码块
  • 总结: if-elif-else中只会有一个代码块会执行

2、循环控制

while语句

  • 循环语句可以使指定的代码块重复指定的次数.循环语句分成两种,while循环 和 for循环
  • 语法:
    while 条件表达式 :
      代码块
    else:
      代码块
n = int(input("请输入内容:"))
while n<10:
    print('继续')
else:
    print('over')

break和continue

• break 可以用来立即退出循环语句,包括else语句
• continue 用来跳过当次循环

import random
a = random.randint(0,6)   #随机生成0-6之间的整数
while True:
    if 3<=a<6:
        print("这个数字是%d"%a)
        break
    else:
        print("不符合要求")
        continue
'''break是跳出当前循环,并结束程序,continue是跳出本次循环,进行下一次程序运行'''

for循环遍历
for循环
• 通过for循环来遍历列表

语法
for 变量 in 序列(遍历的规则):
  代码块

  • 注意: for循环的代码块会执行多次,序列中有几个元素就会执行几次。每执行一次就会将序列中的一个元素赋值给变量,所以我们可以通过变量来获取列表中的元素
for i in [1,2,3,4,5,6,7,8]:
    print(i)
    
'如果i在列表[1,2,3,4,5,6,7,8]里,将i依次打印出来'    
  • range(start, stop[, step])
    参数说明
    • ·start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
    • stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
    • step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

3、循环嵌套

  • 循环嵌套
    • Python 语言允许在一个循环体里面嵌入另一个循环。

while 表达式:
  while 表达式:
    代码块
  代码块

for 变量 in 循环规则:
  for 变量 in 循环规则:
    代码块
   代码块

4、练习

  • 1、九九乘法表
#九九乘法表
i = 1
j = 1
n = i * j
for i in range(1,10):
    for j in range(1,i+1):
        m = '%d * %d = %d'%(j,i,n)
        print(m,end=' ')
    print()
  • 2、求1000以内所有的水仙花数
for i in range(1, 10):
    for j in range(0, 10):
        for k in range(0, 10):
            if i * 100 + j * 10 + k == i ** 3 + j ** 3 + k ** 3:
                print(i * 100 + j * 10 + k)
  • 3、获取用户输入的任意数,判断其是否是质数?
# 获取用户输入的任意数,判断其是否是质数?
while True:
    n = int(input('请输入数字:'))
    if n == 0:
        print('%d不是质数,请重新输入!'%n)
    elif n % 2 == 1:
        print('%d是质数。'%n)
        break
    else:
        continue

  • 4、1. 猜拳游戏:
    • 出拳 玩家:手动输入 电脑:随机输入
    • 判断输赢: 玩家获胜 电脑获胜 平局
#出拳  玩家:手动输入  电脑:随机输入
#判断输赢:  玩家获胜  电脑获胜  平局
import time
import random

def function():
    win_n = 0  # 用于存放【玩家】的胜利次数
    win_m = 0  # 用于存放【电脑】的胜利次数
    for i in range(1,4):
        n = int(input('请玩家输入数值(0代表石头,1代表剪刀,2代表布):'))  # n代表玩家
        m = random.randint(0, 2)  # m代表电脑,随机获取0-2之间的整数
        time.sleep(2)

        print('进行第{}局游戏'.format(i))
        if n==0 and m==1 or n==1 and m==2 or n==2 and m==0 :
            win_n += 1           #玩家胜场次+1
            print(f'【电脑】输入的是{m},【玩家】输入的是{n}且获胜,胜利次数为{win_n}')
        elif n == 0 and m == 2 or n == 1 and m == 0 or n == 2 and m == 1:
            win_m += 1           #电脑胜场次+1
            print('【电脑】获胜输入的是%d且获胜,【玩家】输入的是%d,胜利次数为%d' %(m,n,win_m))
        else:
            print('平局不计分!!!')

    #将进行3场游戏后,进行玩家和电脑的胜场次进行判断
    if win_m<win_n<=2:
        print('经过3次游戏后,【玩家】胜出,胜场为%d'%win_n)
    elif win_n<win_m<=2:
        print('经过3次游戏后,【电脑】胜出,胜场为%d'%win_m)
    elif win_n==win_m==1:
        print('*'*60)
        print('【电脑】和【玩家】平局,进行加赛!')
        a = 5
        for j in range(4,a):
            print('进行第%d局比赛' % j)
            n = int(input('请玩家输入数值(0代表石头,1代表剪刀,2代表布):'))  # n代表玩家
            m = random.randint(0, 2)  # m代表电脑,随机获取0-2之间的整数
            if n == 0 and m == 1 or n == 1 and m == 2 or n == 2 and m == 0:
                win_n += 1
                print(f'【电脑】输入的是{m},【玩家】输入的是{n}且获胜,胜利次数为{win_n}')
            elif n == 0 and m == 2 or n == 1 and m == 0 or n == 2 and m == 1:
                win_m += 1
                print('【电脑】获胜输入的是%d且获胜,【玩家】输入的是%d,胜利次数为%d' % (m, n, win_m))
            elif n == m:
                a += 1
                print('平局不计分!!!')
                continue
function()

'''
0代表石头,1代表剪刀,2代表布
   我还想了另一种方法,就是通过n-m的差值来进行的,因为时间原因也没有仔细研究,\
如果你感兴趣可以自己尝试尝试,但是会有一个问题是不同的差值会代表双重含义,有可能会失败。
如:1-0=1,2-1=1中’1‘所代表的胜负是不一样!!'''





总结:

本文为学习笔记,转载请标明出处,本文仅供交流学习,请勿用于非法途径,希望本文对大家有帮助。

仅是个人意见,如有不足之处或者侵权,请留言

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python独角兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值