python第6周

1•(最大数的出现)编写程序读取整数,我出它们中的最大值,然后计算它的出现次数。假设输人

以数字口结束。假设你输人的是“3525550”;程序找出的最大数是5,而5的出现次数是4。 (提示:维护两个变量max和count。变量max存储的是当前最大数,而count存储的是它的出 现次数。初始状态下,将第一个值赋值给max,将1赋值给count。将max和每个随后的数宇

进行比较。如果这个数宇大于max,就将它赋值给max且将count重置为1。如果这个数等于

max,给count自增1。)

num_str = input("请输入数字串,以数字字符结束:")

max_num = num_str[0]

max_count = 1

for i in range(1, len(num_str)):

    if num_str[i] > max_num:

        max_num = num_str[i]

        max_count = 1

    elif num_str[i] == max_num:

        max_count += 1

print("最大数为{},出现次数为{}".format(max_num, max_count))

读取用户输入的数字串,并将第一个值赋值给max_num,将1赋值给max_count。然后,通过一个for循环,遍历数字串中的每个数字,逐个与当前最大值(max_num)比较。如果这个数字比max_num大,就将它赋值给max_num,将计数器count重置为1。如果这个数字等于max_num,将计数器count加1,最后输出最大数和出现次数

2•(十进制到十六进制)编写程序提示用户输人一个十进制数,然后显示它对应的十六进制数

decimal = int(input("请输入一个十进制数:"))

hexadecimal = hex(decimal)

print("对应的十六进制数为:", hexadecimal)

通过`input()`函数读取用户输入的十进制数。然后,利用内置函数`hex()`将这个十进制数转换为十六进制数,并赋值给变量`hexadecimal`。最后,使用`print()`函数输出结果

3•(显示闰年)编写程序显示21世纪(从2001年到2100年)里所有的国年,每行显示10个国年,这些年被一个空格隔开

year = 2001  # 起始年份

while year <= 2100:

    if year % 4 == 0 and (year % 100 != 0 or year % 400 == 0):

        print(year, end=' ')

    year += 1

    # 每输出10个年份,换行

    if year % 10 == 1:

        print()

我们定义了`year`变量,并将其初始化为2001,即21世纪的起始年份。然后,我们使用`while`循环遍历了21世纪里的所有年份。在循环中,我们使用`if`条件判断语句判断年份是否为闰年,如果是则输出该年份。输出10个年份后换行,使用`end=' '`让年份之间用空格隔开。最后,我们使用`year += 1`语句增加年份,并在每个10年的末尾自动换行,保证程序输出规范

4•(求一个整数各个数字的和)编写一个两数,计算一个整数各个数宇的和。使用下面的两数头:

def sumDigits(n):

例如:sumDigits(234)返回9(2+3+4)。(提示:使用求余运算符%提取数字,而使用除号 11去掉提取出来的数字。例如:使用234%10(=4)抽取4,然后使用234//10(=23)从234中

去掉4。使用一个循环来反复提取和去掉每个数字,直到所有数字被提取完为止。)编写程序提

示用户输人一个整数,然后显示这个整数所有数字的和

def sumDigits(n):

    sum = 0

    while n > 0:

        sum += n % 10

        n //= 10

    return sum

number = int(input("请输入一个整数:"))

digit_sum = sumDigits(number)

print("该整数每个数位上的数字之和是:", digit_sum)

我们先定义了一个函数`sumDigits(n)`,用于计算出一个正整数`n`各个数位的数字之和。该函数使用了一个`while`循环。在每一次循环中,我们使用求余运算符`%`提取出最后一位数字,然后使用整除运算符`//`从`n`里面去掉这一位数字,以继续提取下一个数位。在每次循环中,我们将提取出来的数字加到总和`sum`上。当`n`小于等于0时,表示所有数字都被分离出来,循环结束,返回数字之和`sum`

接下来,我们使用`input()`函数读取用户输入的整数,并将其赋值给变量`number`。然后,我们调用函数`sumDigits(number)`将输入的整数传递给该函数,计算出该整数每个数位上的数字之和,并赋值给变量`digit_sum`。最后,我们使用`print()`函数输出结果

5•(回文整数)编写带下面两数头的函数。

# Return the reversal of an integer, e.g. reverse (456) returns

# 654

def reverse(rumber):

# Return true if number is a palindrome

def isPalindrome(number): 使用两数reverse实现isPalindrome。如果一个数的反向数和它的顺向数一样,那么这个数就

被称为回文数。编写一个测试程序,提示用广输人一个整数,然后输出这个整数是不是回文数

def reverse(number):

    reverse_number = 0

    while number > 0:

        last_digit = number % 10

        reverse_number = reverse_number * 10 + last_digit

        number //= 10

    return reverse_number

def isPalindrome(number):

    return number == reverse(number)

n = int(input("请输入一个整数:"))

if isPalindrome(n):

    print("该整数是回文数")

else:

    print("该整数不是回文数")

我们定义了函数`reverse(number)`,用于返回一个正整数的反向数,即将该数的每一位数字翻转过来。该函数使用了一个`while`循环。在每一次循环中,我们使用求余运算符`%`提取出最后一位数字,然后将其加到结果数字的末位。接着,我们使用整除运算符`//`从`number`里面去掉这一位数字,以继续反转下一位数字。当`number`小于等于0时,表示所有数字都被反转完毕,循环结束,返回反转后的数字

接下来,我们定义了函数`isPalindrome(number)`,该函数判断一个数字`number`是否为回文数。函数中,我们直接将`number`与`reverse(number)`进行比较,如果相等,则说明`number`是回文数,返回`True`;否则,返回`False`

最后,我们使用`input()`函数读取用户输入的整数,并将其赋值给变量`n`。然后,我们分别调用函数`isPalindrome(n)`判断该整数是否为回文数。如果是,输出“该整数是回文数”;否则,输出“该整数不是回文数”

6•(反向显示一个整数)编写下面的两数,反向显示一个整数。

def reverse (number):

例如:reserse(3456)显示6543。编写一个测试程序,提示用户输人一个整数,然后显示它

的反向数。

def reverse(number):

    reverse_number = 0

    while number > 0:

        last_digit = number % 10

        reverse_number = reverse_number * 10 + last_digit

        number //= 10

    return reverse_number

n = int(input("请输入一个整数:"))

reverse_n = reverse(n)

print("反向数为:", reverse_n)

定义了函数`reverse(number)`,用于返回一个正整数的反向数,即将该数的每一位数字翻转过来。该函数使用了一个`while`循环。在每一次循环中,我们使用求余运算符`%`提取出最后一位数字,然后将其加到结果数字的末位。接着,我们使用整除运算符`//`从`number`里面去掉这一位数字,以继续反转下一位数字。当`number`小于等于0时,表示所有数字都被反转完毕,循环结束,返回反转后的数字

接下来,我们使用`input()`函数读取用户输入的整数,并将其赋值给变量`n`。然后,我们调用函数`reverse(n)`将该整数传递给该函数,计算出该整数的反向数,并赋值给变量`reverse_n`。最后,我们使用`print()`函数输出结果

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值