python第三版p160习题
GuessANum.py
import random
secret = random.randint(1, 100)
guesscuonts = 0 # 记录玩家猜的次数。
print("--------猜数字游戏--------")
guess = eval(input("请输入1-100的整数:"))
while True: # 循环判断是否猜中数字。
if guess != int(guess): # 判断输入是否为整数。
print("输入错误,请输入整数!") # 输入错误给出提示。
guess = eval(input("请输入1-100的整数:"))
elif guess > secret:
print("猜大了,请重新输入!")
guess = eval(input("请输入1-100的整数:"))
guesscuonts += 1
elif guess < secret:
print("猜小了,请重新输入!") # 输入错误给出提示。
guess = eval(input("请输入1-100的整数:"))
guesscuonts += 1 # 累加次数。
else : # 猜中数字给出提示。
break
print("恭喜你,猜中了,共猜了{:.0f}次".format(guesscuonts))
用户输入一个字符串,统计其中有多少个数字字符、多少个字母字符、多少个空格、多少个其他字符。
str = input("请输入字符串:")
num = 0 # 数字字符个数。
letter = 0 # 字母字符个数。
space = 0 # 空格个数。
other = 0 # 其他字符个数。
for i in str: # 遍历字符串:
if i.isnumeric(): # 判断是否为数字字符。
num += 1
elif i.isalpha(): # 判断是否为字母字符。
letter += 1
elif i.isspace(): # 判断是否为空格。
space += 1
else: # 其他字符个数。
other += 1
print("数字字符个数为:{}".format(num)) # 输出结果。
print("字母字符个数为:{}".format(letter))
print("空格个数为:{}".format(space))
print("其他字符个数为:{}".format(other))
最大公约数计算
def gcd(x, y):
if x < y: # 交换两个数的位置,保证x大于y。
x, y = y, x
while y != 0: # 循环计算余数,直到余数为0。
x, y = y, x % y # 交换两个数的位置,保证x大于y。
return x # 返回最大公约数。
最小公倍数计算
def lcm(x, y): # 计算最小公倍数。
return x * y // gcd(x, y) # 调用gcd函数计算最大公约数并计算最小公倍数。
主函数。
x = eval(input("请输入第一个整数:")) # 输入第一个整数。
y = eval(input("请输入第二个整数:")) # 输入第二个整数。
print("最大公约数为:{}".format(gcd(x, y))) # 输出最大公约数。
print("最小公倍数为:{}".format(lcm(x, y))) # 输出最小公倍数。
闰年计算
def is_leap_year(year): # 判断是否为闰年。
return year % 4 == 0 and year % 100 != 0 or year % 400 == 0 # 返回判断结果。
主函数。
while True: # 循环输入年份。
year = eval(input("请输入年份:")) # 输入年份。
if is_leap_year(year): # 判断是否为闰年。
print("{}是闰年".format(year)) # 输出结果。
else: # 不是闰年。
print("{}不是闰年".format(year)) # 输出结果。
整数合规输入
def input_int(prompt): # 输入整数。
while True: # 循环判断输入是否为整数。
try:
num = int(input(prompt)) # 输入整数。
return num # 返回整数。
except ValueError: # 输入不是整数。
print("输入错误,请输入整数!") # 输出错误提示。
print(input_int("请输入整数:")) # 输入整数。
小数合规输入
def input_float(prompt):
while True: # 循环判断输入是否为小数。
try:
num = float(input(prompt)) # 输入小数。
# 检查是否为整数
if num.is_integer():
print("输入错误,请输入非整数的小数!")
else:
return num # 返回小数。
except ValueError: # 输入不是小数。
print("输入错误,请输入小数!") # 输出错误提示。
print(input_float("请输入小数:"))