第四章练习
大小写转换
a、b、c、d这样的52个字母(包括大写)在计算机中存储时也要使用二进制数来表示。
标准ASCII码使用7位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,如下图所示,可以看出字母对应大小写的差值为32。
ASCII码
来进行大小写转换吧。
注意:python 中,使用 ord() 函数将 字符 转换成其对应的 ASCII 码;使用 chr() 函数将 ASCII 码转换成其对应的 字符。
如:ord(‘A’) 得到结果 65,chr(65) 得到结果 ‘A’。
请用程序实现
输入一个英文字母char,判断它是「大写字母」还是「小写字母」。如果是大写字母,将其转换为「对应的小写字母」;如果是小写字母,将其转换为「对应的大写字母」;并将转换后的结果输出。`
# 请使用 input() 输入一个英文字母 char
char=input()
# 请实现英文字母的大小写转化
if ord(char)>=65 and ord(char)<=90:
s1=ord(char)+32
print(chr(s1))
if ord(char)>=97 and ord(char)<=122:
s2=ord(char)-32
print(chr(s2))
=====================================
判断位数并打印各位的值
请用程序实现
输入一个不多于五位的正整数num,求出它是几位数,将结果输出,并将每一位的数字都打印出来。
注意: 位数和每位的数字分两行打印。
使用空格分隔同行多数据输出。
# 请使用 input() 输入一个不多于五位的正整数 num
num = int(input(""))
# 请计算这个正整数的位数,并将每一位的数字都打印出来。
w = len(str(num))
a = ["一","二","三","四","五"]
print(a[w-1])
for i in range(w):
print(str(num)[i],end=" ")
=====================================
地铁车票
购买地铁车票的规定如下:
乘 1~4 站,3 元/位;
乘 5~9 站,4 元/位;
乘 9 站以上,5 元/位。
请用程序实现
输入乘坐人数(per_num)和乘坐站数(sta_num),计算购买地铁车票需要的总金额,并将计算结果输出。
# 请使用 input() 输入乘坐的人数 per_num 和站数 sta_num
per_num = int(input())
sta_num = int(input())
# 请判断输入的人数和站数是否正确,计算购买车票的总金额,并将计算结果输出
if per_num<=0 or sta_num<=0:
print("error")
else:
if 1<=sta_num<=4:
pl = 3
if 5<=sta_num<=9:
pl = 4
if sta_num>9:
pl = 5
add = pl*per_num
print(add)
=====================================
考试评级
请用程序实现
输入一个表示考试成绩score的整数,判断该成绩属于哪个级别,并将判断结果输出。
# 请使用 input() 输入考试成绩 score
score = int(input('请输入考试成绩: '))
# 请判断成绩属于哪个级别
if 0<=score<=59:
print("E")
elif 60<=score<=69:
print("D")
elif 70<=score<=79:
print("C")
elif 80<=score<=89:
print("B")
elif 90<=score<=100:
print("A")
=====================================
判断星期
每个星期对应的英语单词都不同,星期一到星期天的单词分别为:monday、tuesday、wednesday、thursday、friday、saturday、sunday。
请用程序实现
输入单词的前两个字符,判断输入的单词是星期几,并输出对应的单词;如果输入的字符不匹配,则输出error。
# 请使用 input() 输入单词的前两个字母 chars
chars = input()
# 请判断输入的是星期几,并输出对应的单词
if chars!="mo"and chars!="tu" and chars !="we" and chars != "th" and chars != "fr" and chars != "sa" and chars != "su":
print("error")
else:
if chars =="mo":
print("monday")
if chars =="tu":
print("tuesday")
if chars =="we":
print("wednesday")
if chars =="th":
print("thursday")
if chars =="fr":
print("friday")
if chars =="sa":
print("saturday")
if chars =="su":
print("sunday")
=====================================
身体质量指数BMI
BMI :Body Mass Index 国际上常用的衡量人体肥胖和健康程度重要标准,主要用于统计分析。BMI 的计算公式为 BMI = 体重(kg) / (身高(m) * 身高(m))。
获取用户输入的体重和身高值,计算并给出国际和国内的 BMI 分类。
BMI值
要求如下:
(1) 混合计算并给出国际和国内的 BMI 分类;
(2) 使用input()获得测试用例输入时,不要增加提示字符串。
height = float(input())
weight = float(input())
# 计算bmi值并将判断结果输出
bmi=weight/(height*height)
bmif=""
bmin=""
if bmi<18.5:
bmif=bmin="偏瘦"
elif bmi>=18.5 and bmi<24:
bmin=bmif="正常"
elif bmi>=24 and bmi<25:
bmin="偏胖"
elif bmi>=25 and bmi<28:
bmif=bmin="偏胖"
elif bmi>=28 and bmi <30:
bmin="肥胖"
elif bmi>=30:
bmif="肥胖"
print("BMI数值为:{:.2f}".format(bmi))
print("BMI指标为:国际'"+str(bmif)+"', 国内'"+str(bmin)+"'")
bbmif="'"+bmif+"'"
bbmin="'"+bmin+"'"
=====================================
阶乘
请用程序实现
输入一个正整数num,计算这个正整数的阶乘,并将计算结果输出。
# 请使用 input() 输入一个正整数 num
num=int(input())
count=1
# 请计算这个正整数的阶乘,并将计算结果输出
for i in range(num,1,-1):
count=count*i
print(count)
水仙花数
"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如 153 = 1³ + 5³ + 3³,所以 153 是一个水仙花数。
请用程序实现
输入一个三位数,找出100~num(含)中的所有水仙花数,并将找出的水仙花数从小到大输出,每行输出1个数
# 请使用 input() 输入一个三位数 num
num = int(input('请输入一个三位数: '))
# 请找出 100 - num(含) 中的所有水仙花数,并将找出的水仙花数输出
count = 0
for i in range(100, num):
f = i
# 提取百位数
a = int(f / 100)
# 提取十位数
f -= a*100
b = int(f / 10)
# 提取个位数
c = f - b*10
# 判断是否是水仙花数
if a**3 + b**3 + c**3 == i:
print(i)
=====================================
猴子摘桃
一只猴子摘桃子, 第一天摘了两个桃, 以后每天摘的是前一天的两倍还多一个.
请用程序实现
输入一个天数day,计算第day天它摘的个数,并将结果输出。
# 请使用 input() 输入一个天数 day
day = int(input('请输入一个天数: '))
n = 2
# 请计算第 day 天猴子摘的桃子个数,并将结果输出
for i in range(2,day+1):
n=2*n+1
print(n)
=====================================
素数
「质数」又称素数,有无限个。素数定义为在大于 1 的自然数中,除了 1 和它本身以外不再有其他因数的数称为素数。
例如17就是素数,因为它不能被2 - 16的任一整数整除。
请用程序实现: 输入一个大于 1 的整数num,输出1~num(含)中的所有的素数(每行输出1个素数,从小到大排列)。
# 请使用 input() 输入一个整数 num
num = int(input('请输入一个整数: '))
# 输出 1 - num(含) 中的所有的素数
for i in range(2,num+1):
ss=0
for j in range(2,i-1):
if i%j ==0:
ss=1
break
if ss==0:
print(i)
=====================================
随机密码生成
补充编程模板中代码,完成如下功能:
以整数 17 为随机数种子,获取用户输入整数 N 为长度,产生 3 个长度为 N 位的密码,密码的每位是一个数字。每个密码单独一行输出。
import random
def genpwd(length):
a = 10**(length-1)
b = 10**length - 1
return "{}".format(random.randint(a, b))
length = eval(input())
random.seed(17)
for i in range(3):
print(genpwd(length))
=====================================
圆周率的计算
求解圆周率可以采用蒙特卡罗方法,在一个正方形中撒点,根据在 1/4 圆内点的数量占总撒点数的比例计算圆周率值。
import random as r
quantity = eval(input())
r.seed(123)
counts = 0
for i in range(quantity):
x,y = r.random(),r.random()
distance = pow(x**2+y**2,0.5)
if distance <= 1:
counts += 1
pi = 4 * counts/quantity
print("{:.6f}".format(pi))
=====================================
求pi的近似值
输入精度 e,使用格雷戈里公式求 π 的近似值,精确到最后一项的绝对值小于 e.
格雷戈里公式如下:
π/4 = 1 − 1/3 + 1/5 - 1/7 + 1/9 + ··· + 1/(2 * n - 1)
注意: n从 1 开始.
输入格式:
输入在一行中给出精度 e
输出格式:
对于给定的输入,在一行中输出π的近似值。
e = float(input())
# 请根据 e 计算 pi 的近似值
x=-1
n=2
result=1
while(1/(2*n-3)>=e):
result = result+x*(1/(2*n-1))
x=x*(-1)
n=n+1
count=4*result
print(count)
====================================
篮球弹跳
篮球从一定高度向下掉落,每一次弹起的高度,都是前一次高度的一半。一次掉落和一次弹起极为一次弹跳。假设篮球初始高度为10米。
请用程序实现
输入篮球弹跳的次数num,计算num次后篮球所在的高度,并将计算结果输出。
# 请使用 input() 输入弹跳的次数 num
num = int(input('请输入弹跳的次数: '))
height = 10
# 请计算弹跳 num 次后的篮球高度,并将结果输出
for i in range(num):
height=height/2
print(height)
==========================================================================
以上内容可供初学者进行练习使用,欢迎大家转载转发,注明出处即可。