第四章练习题
4.2
input_str = input("请输入一行字符:")
letters = 0
digits = 0
spaces = 0
others = 0
for char in input_str:
if char.isalpha():
letters += 1
elif char.isdigit():
digits += 1
elif char.isspace():
spaces += 1
else:
others += 1
print(f"英文字符个数:{letters}")
print(f"数字个数:{digits}")
print(f"空格个数:{spaces}")
print(f"其他字符个数:{others}")
4.3
import math
num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))
gcd = math.gcd(num1, num2)
lcm = num1 * num2 // gcd
print(f"最大公约数(GCD):{gcd}")
print(f"最小公倍数(LCM):{lcm}")
4.6
year = int(input("请输入年份:"))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print(f"{year}年是闰年")
else:
print(f"{year}年不是闰年")
4.7
while True:
try:
number = int(input("请输入一个全数字的十进制整数:"))
print(f"您输入的整数是:{number}")
break
except ValueError:
print("输入无效!请确保输入的是纯数字且不超过整数范围。")
4.8
import re
def get_valid_float():
pattern = r'[1]?\d*.\d+$' # 匹配带小数点的数字,可选正负号
while True:
user_input = input("请输入一个带小数点的浮点数:").strip()
if re.fullmatch(pattern, user_input):
return float(user_input)
print("输入无效!请确保输入包含小数点且不是科学计数法8.99")
number = get_valid_float()
print(f"您输入的浮点数是:{number}")
+- ↩︎