第四章程序练习题

# 4.1 4.4 4.5 4.7(思路相同)
import random
while True:
    try:
        min, max = eval(input("请输入猜数的范围【用逗号隔开】:"))
        if min < max:
            if min - int(min) == 0:
                if max - int(max) == 0:
                    break
                else:
                    print("请输入整数猜数范围!")
            else:
                print("请输入整数猜数范围!")
        else:
            print("请正确输入范围值!")
    except:
        print("请按格式重新输入猜数范围!")
n = random.randint(min, max)
pred = 0
while True:
    try:
        m = eval(input("请输入所猜的整数({}~{}):".format(min, max)))
        if m - int(m) == 0:
            if min <= m <= max:
                pred = pred + 1
                if m > n:
                    print("遗憾,太大了!")
                    max = m - 1
                elif m < n:
                    print("遗憾,太小了!")
                    min = m + 1
                else:
                    break
            else:
                print("请输入范围内的整数!")
        else:
            print("请输入整数!")
    except:
        print("请不要输入其他符号,正确输入数字!")
print("预测{}次,你猜对了!".format(pred))
# 4.2
m = input("请输入一行字符:")
eng, num, space, others = 0, 0, 0, 0
for i in range(len(m)):
    if 'a' <= m[i] <= 'z' or 'A' <= m[i] <= 'Z':
        eng += 1
    elif '0' <= m[i] <= '9':
        num += 1
    elif m[i] == ' ':
        space += 1
    else:
        others += 1
print("英文字符:{}个,数字:{}个,空格:{}个,其他:{}个。".format(eng, num, space, others))
# 4.3
a, b = eval(input("请输入两个正整数(用逗号隔开):"))
if b > a:
    ma = b
    b = a
    a = ma
m, n = a, b
while n != 0:
    n, m = m % n, n
print("{}和{}的最大公约数是{:.0f}".format(a, b, m))
print("{}和{}的最小公倍数是{:.0f}".format(a, b, a * b / m))
# 4.6
import random
count1, count2 = 0, 0
for i in range(100000):
    car = random.randint(1, 3)
    one = random.randint(1, 3)
    sheep = random.randint(1, 3)
    while sheep == car or sheep == one:
        sheep = random.randint(1, 3)
    if one == car:
        count1 += 1
    two = random.randint(1, 3)
    while two == sheep or two == one:
        two = random.randint(1, 3)
    if two == car:
        count2 += 1
print("坚持选择,获胜机率{:.2f}%".format(count1/1000))
print("改变选择,获胜机率{:.2f}%".format(count2/1000))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值