Python编程练习:身体BMI质量检测、实例和实例方法的创建、100以内的偶数和、输入年份判断是不是闰年、编写分段函数、因式分解、检查二进制是否可被整除、查找数字等等

目录

  • 身体BMI质量检测
  • 实例和实例方法的创建
  • 100以内的偶数和
  • 输入年份判断是不是闰年
  • 编写分段函数
  • 因式分解
  • 检查二进制是否可被整除
  • 查找每个数字均为偶数的数
  • 计算字母和数字数量
  • 计算大写字母和小写字母的数量

身体BMI质量检测

# coding:utf-8
"""
11、身体BMI质量检测
难度:中等
身体质量指数(BMI),是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个指标。它的计算公式∶BMI=体重÷身高2(注意是体重除以身高的平方)。
其中,体重的单位是kg,身高的单位是m。
中国人的BMI参考标准:BMI<18.5为偏瘦﹔18.5≤BMI<24为正常;24≤BMI<28为偏胖﹔BMI≥28位肥胖。
编写一个程序,输入一个人的体中和身高,计算BMI并输出体重是否正常。请在下面回答处上传程序的代码和运行结果。
(可以在课程中任选一个代码框编写代码),如下图是一个运行结果的示例,其中74和1.74都是通过键盘输入的。
(本题18分,涉及的知识包括: if-elif 结构,fIfloat()函数,input()函数,比较运算符,字符串格式化输出等)
"""
weight = int(input("请输入体重(kg):"))
height = float(input("请输入身高(m):"))
BMI = weight/height**2
print("你的BIM是:{}" .format(BMI))
if BMI < 18.5:
    print("偏瘦")
elif BMI >= 18.5 and BMI < 24:   # “&”和“and”有本质区别,属于不同类型的运行符号。& 是位运算;and 是逻辑运算
    print("正常")
elif BMI >= 24 and BMI < 28:
    print("偏胖")
else:
    print("肥胖")

实例和实例方法的创建

# coding:utf-8
"""
12、实例和实例方法的创建
难度:中等
使用Python 的 class定义一个类,它具有两个int的属性,a和 b,有一个sum方法,得到a和 b 的和。初始化这个类的一个示例,并打印出它的两个属性和sum方法。
"""
class Basic:
    def __init__(self,a,b):
        self.a = a
        self.b = b
    def sum(self):
        return self.a+self.b

s = Basic(1,2)
print(s.a,s.b,s.sum())

100以内的偶数和

# coding:utf-8
"""
100以内的偶数和
for循环实现1~100之间的偶数和
"""

# Python 不支持 i++ 自增语法,不提供 ++ 操作符

sum = 0
for i in range(1,101):
    if i % 2 == 0:
        sum += i
    i += 1
print("1~100之间偶数的和是:",sum)

输入年份判断是不是闰年

# coding:utf-8
"""
输入年份判断是不是闰年
通过键盘输入年份,如果是闰年输出True,否则输出False
"""

# 方法一
# calendar 库中封装的isleap()方法判断是否为闰年
import calendar

year = int(input("请输入年份:"))
if calendar.isleap(year):
    print(f"{year}年是闰年")
else:
    print(f"{year}年不是闰年")


# 方法二
# 单分支if
try:
    year=int(input("请输入一个年份:"))
    if (year%4==0) and (year%100 !=0) or (year%400)==0:
        print("{}年是闰年".format(year))
    else:
        print("{}年不是闰年".format(year))
except:
    print("您输入有误!")

编写分段函数

# coding:utf-8
"""
编写分段函数
通过键盘输入x的值
"""
x = float(input("请输入一个x值:"))
if x < 0:
    y = 0
elif x >= 0 and x < 5:
    y = x
elif x >= 5 and x < 10:
    y = 3 * x - 5
elif x >= 10 and x < 20:
    y = 0.5 * x - 2
else:
    y = 0
print(f"根据分段函数计算,当x={x}时,y={y}")

因式分解

# coding:utf-8
"""
16、因式分解
难度:中等
用户从键盘输入小于1000的整数,对齐进行因式分解,比如10=2*5,60 =2*2*3*5
输入∶
请输入一个小于1000整数:90
输出︰
90 = 2*3*3*5
"""
n = int(input("请输入一个小于1000的整数:"))
t = n
factor = []
while t > 1:
    for i in range(2,t+1):
        if t % i == 0:
            factor.append(i)
            t = int(t / i)
            break
print("%d=%s" % (n ,"*".join(map(str,factor))))

检查二进制是否可被整除

# coding:utf-8
"""
编写一个程序,该程序接受以逗号分隔的4位二进制数字序列作为输入,然后检查它们是否可被5整除。被5整除的数字将以逗号分隔的顺序打印。
例子:
0100,0011,1010,1001
然后输出应为:
1010
注意:假设数据是通过控制台输入的。
提示:
如果将输入数据提供给问题,则应假定它是控制台输入。
"""
m = list( input("请输入以逗号分隔的4位二进制数字序列:").split(','))
n = []
# int()的常用语法:   int(字符串或者数字,进制数)  进制数默认为十进制
for i in range(len(m)):
    if int(m[i],2) % 5 == 0:
        n.append(m[i])
print(n)

查找每个数字均为偶数的数

# coding:utf-8
"""
编写一个程序,查找所有介于1000和3000之间的数字(都包括在内),以使数字的每个数字均为偶数。获得的数字应以逗号分隔的顺序打印在一行上。
提示:
如果将输入数据提供给问题,则应假定它是控制台输入。
"""
#方法一
n , m = map(int,input("请输入以逗号为间隔的两个数字范围:").split(','))
list = []
for i in range(n,m + 1):
    for j in str(i):
        if int(j) % 2 == 0:
            list.append(i)

print(list)


#方法二
# lst = []
#
# for i in range(1000, 3001):
#     flag = 1
#     for j in str(i):
#         if ord(j) % 2 != 0:
#             flag = 0
#     if flag == 1:
#         lst.append(str(i))
#
# print(",".join(lst))

计算字母和数字数量

# coding:utf-8
"""
问题:
编写一个接受句子并计算字母和数字数量的程序。
假设将以下输入提供给程序:
hello world! 123
然后,输出应为:
LETTERS 10
DIGITS 3
提示:
如果将输入数据提供给问题,则应假定它是控制台输入。
"""
# 如果字符串中的所有字符均为数字字符,则isnumeric()方法将返回True。如果不是,则返回False。
# Python isdigit() 方法检测字符串是否只由数字组成,只对 0 和 正数有效。
# Python isalpha() 方法检测字符串是否只由字母组成。
"""
方法一
"""
# seq = input("请输入一个句子:")
# num1 = 0  # 数字数量
# num2 = 0  # 字母数量
# num3 = 0  # 其他符号数量
#
# for ch in seq:
#     if ch in '1234567890':
#         num1 += 1
#     elif ch.isalpha():
#         num2 += 1
#     else:
#         num3 += 1
#
# print("在这个句子中存在{}个数字、{}个字母和{}个其他字符" .format(num1,num2,num3))
"""
方法二
"""
seq = input("请输入一个句子:")
num1 = 0  # 数字数量
num2 = 0  # 字母数量
num3 = 0  # 其他符号数量

for ch in seq:
    if ch.isnumeric():  # 或者是if ch.isdigit():
        num1 += 1
    elif ch.isalpha():
        num2 += 1
    else:
        num3 += 1

print("在这个句子中存在{}个数字、{}个字母和{}个其他字符" .format(num1,num2,num3))

"""
方法三
"""
# seq = input("请输入一个句子:")
# num1 = 0  # 数字数量
# num2 = 0  # 字母数量
# num3 = 0  # 其他符号数量
#
# for ch in seq:
#     try:
#         int(ch)
#         num1 += 1
#     except Exception as e:
#         if ch.isalpha():
#             num2 += 1
#         else:
#             num3 += 1
#
# print("在这个句子中存在{}个数字、{}个字母和{}个其他字符" .format(num1,num2,num3))

"""
方法四
"""
# word = input()
# letter, digit = 0, 0
#
# for i in word:
#     if ('a' <= i and i <= 'z') or ('A' <= i and i <= 'Z'):
#         letter += 1
#     if '0' <= i and i <= '9':
#         digit += 1
#
# print("LETTERS {0}\nDIGITS {1}".format(letter, digit))

计算大写字母和小写字母的数量

# coding:utf-8
"""
问题:
编写一个接受句子的程序,并计算大写字母和小写字母的数量。
假设将以下输入提供给程序:
Hello world!
然后,输出应为:
UPPER CASE 1
LOWER CASE 9
提示:
如果将输入数据提供给问题,则应假定它是控制台输入。
"""

"""
方法一
"""
# word = input("请输入一句话:")
# letter, LETTER, other = 0, 0 ,0
#
# for i in word:
#     if ('a' <= i and i <= 'z'):
#         letter += 1
#     elif ('A' <= i and i <= 'Z'):
#         LETTER += 1
#     else:
#         other += 1
#
# print("UPPER CASE {0}\nLOWER CASE {1}\nOTHER CASE {2}".format(LETTER, letter, other))

"""
方法二
Python isupper() 方法检测字符串中所有的字母是否都为大写。
Python islower() 方法检测字符串是否由小写字母组成。
Python istitle() 方法检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。
"""
word = input("请输入一句话:")
letter, LETTER, other = 0, 0 ,0

for i in word:
    if i.isupper():
        LETTER += 1
    elif i.islower():
        letter += 1
    else:
        other += 1
print("UPPER CASE {0}\nLOWER CASE {1}\nOTHER CASE {2}".format(LETTER, letter, other))

你可能感兴趣的:(Python,python,开发语言)