上机实验(流程控制语句)

  1. 对于按如下代码输入的一个数字,请判断其正负特征,分别打印 xx 是正数xx 是负数xx 是零 这样的结果。

    num = float(input('请输入一个数字:'))
  2. 完成如下程序,不用已有的任何函数,找到三个数字中的最大数:

    num1 = float(input('请输入第 1 个数字:'))
    num2 = float(input('请输入第 2 个数字:'))
    num3 = float(input('请输入第 3 个数字:'))
    
    # 在此编写判断最大数字的程序片段,并将该数字存储在新变量 largest 中。
    
    print('最大数字是', largest)
  3. 闰年(leap year)是指该年有 366 日,即较平常年份多出一日。闰年是为了弥补因人为历法规定的年度天数 365 日和平均回归年的大约 365.24219 日的差距而设立的。公历中每逢闰年,2月有 29 日而非 28 日,2月29日为闰日。1582年以来公历的置闰规则为:

    1. 公历年份是 4 的倍数,且不是 100 的倍数的,为闰年,如2004年、2020年是闰年,但1700年、1800年、1900年不是闰年。
    2. 公历年份是 400 的倍数的是闰年,如1600年、2000年是闰年。

    请编写一个程序,通过 year = int(input('请输入一个年份数字:')) 语句输入一个年份,然后判断该年份是否为闰年,并打印 xxxx年是闰年。 这样的结果。

  4. 一球从 100m 的高度自由落下,每次落地后反跳回原高度的 2/3 再落下,求它在第 10 次落地时,共经过多少米?以及第10次反弹有多高?
  5. 计算小于等于 num 的自然数之和。请补齐如下代码片段:

    num = 12
    
    if num < 0:
        print("要输入的数字必须是一个正整数。")
    else:
        sum = 0
        # 请补齐此处的代码!
        print(f"直到 {num} 的自然数之和为 {sum}。")
  6. 对于以下代码中的字符串 sentence,分两种方式打印:

    1. 打印 sentence 中的每个字符,每个字符占一行;
    2. 打印 sentence 中的每个单词,每个单词占一行。
    sentence = 'Coal is a combustible black or brownish-black sedimentary rock'

    注:要将 sentence 拆分为多个单词,需要用到字符串的 split() 方法,即采用 sentence.split(' ') 的形式以空格分割字符串。

  7. 从键盘输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

    注:此题需要遍历字符串中的每个字符,再用字符串方法 str.isalpha()str.isspace()str.isdigit() 分别判断字符串是否为英文字母、空格、数字或其他字符。

  8. 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。