python学习 09 编程小练习

本文介绍了使用Python编程实现一系列实用功能,包括计算BMI指数、猜数字游戏、字符统计、动态输出金字塔和空心金字塔、菱形图案以及九九乘法表。通过这些实例,读者可以深入理解Python的基础语法和控制结构,同时锻炼逻辑思维能力。
摘要由CSDN通过智能技术生成

思路:

  1. 先不考虑编程序,如果让你手动完成这些任务你怎么做?
  2. 把上面你想到的步骤拆分成不能再拆分的小步骤
  3. 想办法用程序去完成每个小步骤

1 计算 BMI值

  1. 编写程序实现,输入体重和身高计算BMI值,并根据BMI值同时输出国际和国内的BMI分类指标建议值在这里插入图片描述

1.接收用户输入体重 .
2.接收用户输入身高
3. 转换类型
4. 计算BMI值并打印
5. 判断所属的区间
6.输出对应区间的评价

weight = input('请输入你的体重(kg)>>>:')
height = input('请输入你的身高(m)>>>:')
# 转换数据类型
weight = float(weight)
height = float(height)
BMI = weight / (height ** 2)
print('BMI为{:.2f}'.format(BMI))
# 判断区间
wto, dom = '', ''  # wto,dom = 国际的,国内的
if BMI < 18.5:
    wto, dom = '偏瘦', '偏瘦'
elif 18.5 <= BMI < 24:
    wto, dom = '正常', '正常'
elif 24 <= BMI < 25:
    wto, dom = '正常', '偏胖'
elif 25 <= BMI < 28:
    wto, dom = '偏胖', '偏胖'
elif 28 <= BMI < 30:
    wto, dom = '偏胖', '肥胖'
else:
    wto, dom = '肥胖', '肥胖'
print('BMI指标为: 国际{},国内{}'.format(wto, dom))

2.

编写程序实现,在程序中预设一个0~9之间的整数,让用户通过键盘输入所猜的数,如果大于预设的数,显示“遗憾,太大了”,小于预设的数,显示“遗憾,太小了”,如此循环,直至猜中该数,显示“预测N次,你猜中了!”,其中N是用户输入数字的次数。

提示:使用while无限循环,当猜中时break

思路:

  1. 设置一个0-9之间的幸运数字
  2. 给出评价,大,小,对,如果猜对了,游戏结束
  3. 重复2,3
lucky = 6
times = 1
while True:
    guess = input('请输入0-9之间的整数>>>:')
    guess = int(guess)
    if guess < lucky:
        print('遗憾,太小了')
    elif guess > lucky:
        print('遗憾,太大了')
    else:
        print('预测{}次,终于猜对啦!'.format(times))
        break
    times += 1

3

3.编写程序实现,用户从键盘输入一行字符,,统计并输出其中英文字符(不考虑中文),数字,空格和其他字符的个数。

提示:遍历字符串,通过字符串方法判断字符类型,然后统计
思路
1.编写程序实现,用户从键盘输入一行字符
2.统计并输出其中英文字符(不考虑中文),数字,空格和其他字符的个数。

content = input('请输入任意内容>>>:')
char_num = 0
digit_num = 0
blank_num = 0
other_num = 0

for i in content:
    if i.isalpha():
        char_num += 1
    elif i.isdigit():
        digit_num += 1
    elif i.isspace():
        blank_num += 1
    else:
        other_num += 1
print('您输入了{}个字母,{}个数字,{}个空格,{}个其他字符'.format(char_num, digit_num, blank_num, other_num))

4

使用print函数和循环结构输出如下由*组成的金字塔(可以尝试根据层数动态输出)
在这里插入图片描述
思路:

  1. 先写死 :转换为四层
  2. 计算出每层要打印的空格的个数和星号的个数
  3. 根据空格和星号的个数打印
    我们可以先用最简单粗暴的方法把它写出来
print('   *')  # 3个空格  1个星号
print('  ***')  # 2  3
print(' *****')  # 1 5
print('*******')  # 0 7
for i in range(4):
	# 计算空格的个数
	space_num = 4 - i - 1
	# 计算星星的个数
	star_num = i * 2 + 1
	print(space_num * ' ' + star_num * '*')

那么怎么去动态输出金字塔呢?

n = 7
for i in range(n):
    # 计算空格的个数
    space_num = n - i - 1
    # 计算星星的个数
    star_num = i * 2 + 1
    print(space_num * ' ' + star_num * '*')

5

使用print函数和循环结构输出如下由星号组成的空心金字塔
在这里插入图片描述
思路:还是去计算每行的空格和*的个数
第一层和最后的一层与实心金字塔一致
第2层到第n-1层,保留第一个和最后一个星号,中间的部分用空格代替。

# 多少层
n = 7

for i in range(n):
    # 计算空格的数量
    space_num = n-i-1
    # 计算星星的数量
    star_num = i*2 + 1
    if i == 0 or i == n-1:
        # 第1层后最后一层和实心的一样
        # 打印对应数量的空格和星星
        print(' '*space_num + '*'*star_num)
    else:
        # 中间层
        print(' '*space_num + "*" + ' '*(star_num-2)+ '*')

6

使用print函数和循环结构输出由如下由*组成的菱型
在这里插入图片描述
思路:
拆分任务,上下两个部分
上面就是一个实心金字塔
下面就是一个倒的金字塔
计算,每层的星号和空格的数量。

# 第一步打印一个n层的金字塔
# 多少层
n = 7

for i in range(n):
    # 计算星星的数量
    star_num = i*2 + 1
    # 计算空格的数量
    space_num = n-i-1
    # 打印对应数量的空格和星星
    print(' '*space_num + '*'*star_num)
# 下一步打印一个n-1层的倒金字塔
for i in range(n-1):
    # 星星的数量
    star_num = (n-1-i)*2-1
    # 打印空格和星星的数量
    print(' '*(i+1) + '*'*star_num)

7

输出九九乘法表,格式如下:(每项数据之间空一个Tab键,可以使用’\t‘)
在这里插入图片描述

for i in range(1, 10):
    for j in range(1, i + 1):
        print('{}*{}={}'.format(j, i, j * i), end='\t')
    print()

for i in range(1, 10):
    content = ''
    for j in range(1, i + 1):
        content += '{}*{}={}\t'.format(j, i, j * i)
    print(content + '\n')

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值