“Python 语言程序设计实验2023春季”实验报告

实验报告二 选择结构与循环结构 (3月17日23:00截止)

实验二 选择结构与循环结构

班级:软件22-12 姓名:宋思睿

一、实验目的

  1. 熟练掌握 Python 选择结构与循环结构语法,理解缩进的作用。
  2. 熟练运用 for 循环和 while 循环,理解带有 else 子句的循环语句执行流程。
  3. 理解 break 语句和 continue 语句在循环中的作用。
  4. 理解并能够熟练设计条件表达式。

二、实验内容

1、编写程序。如图所示的算法,请用Python程序写出实现该算法相应的代码。 图片描述

2、水仙花数是指一个三位数,它的每个位上的数字的3次方之和就等于它本身,例如:13+53+33=153,13+53+33=153。这类三位数也被叫做自恋数、自幂数或者阿姆斯特朗数。现通过键盘输入一个数,判断这个数是否是水仙花数,如果是水仙花数,输出YES,否则输出NO。

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

4、一个富翁试图与陌生人做一笔换钱生意,换钱规则为:陌生人每天给富翁10万元钱,直到满一个月(30天);而富翁第一天给陌生人1分钱,第2天给2分钱,第3天给4分钱,…,富翁每天给穷人的钱是前一天的两倍,直到满一个月,分别显示富翁给陌生人的钱和陌生人给富翁的钱各是多少?

5、一小球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

6、编写程序打印考拉兹序列,输入任意一个正整数,如果为奇数则将其乘3加1,如果为偶数则将其除以2,输出结果值并再次对结果值执行上述操作,如此循环直到结果值为1时结束。

7、编写一个程序输出同时掷出两个骰子所有可能地结果组合(例如1,21,2与2,12,1为同一组合,不应重复输出)。输出应如下所示。1+1,1+2,1+3,...1+1,1+2,1+3,...

8、输入一个日期,计算这一天是当年的第几天(日期输入格式:2023-03-02)

9、本金10000元存入银行,年利率是千分之三。每过11年,将本金和利息相加作为新的本金。计算55年后,获得的本金是多少。

10、编写一个程序,它将找到1000 到 3000 之间的所有这些数字(均包括在内),这样数字的每个数字都是偶数。获得的数字应以逗号分隔的顺序打印在一行上。

三、实验步骤及结果

1.

a=int(input())
b=int(input())
c=int(input())
if c>a & c>b :
    print(c)
else:
    if b>a:
        print(b)
    else :
        print(a)
copy

image-20230316223823138

2.

a=int(input())
b=int(a/100)
print(b)
c=int(a/10-b*10)
print(c)
d=a%10
print(d)
if  b*b*b+c*c*c+d*d*d==a:
    print('yes')
else :
    print ('no')
    
copy

image-20230316230105514

3.

a=10
b=1
while a!=1:
    b=(b+1)*2
    a-=1
print(b)
copy

image-20230316233440194

4.

a=1000000
b=1
c=1
d=0
e=0
while c!=31:
    d+=a
    e+=b
    b*=2
    c+=1
print(d/100,e/100)
copy

image-20230317000021618

5.

a=100
b=0
c=0
while b!=10:
    d=a
    a/=2
    c=c+d+a
    b+=1
    
print(c,a)
copy

image-20230317000712240

6.

a=int(input())
while(a!=1):
    if(a%2==0):   
        a=a/2
    else:         
        a=a*3+1
    if a != 1:
        print("%d"%a,end = ",")    
    else:
        print("%d"%a)
copy

image-20230317000841634

7.

a=int(1)
b=1
for b in range(1,7):
    
    print(a,',',b)
b+=1
a+=1
for b in range(2,7):
    print(a,',',b)
b+=1
a+=1
for b in range(3,7):
    print(a,',',b)
b+=1
a+=1
for b in range(4,7):
    print(a,',',b)
b+=1
a+=1
for b in range(5,7):
    print(a,',',b)
b+=1
a+=1
for b in range(6,7):
    print(a,',',b)
copy

image-20230317004647464

8.

date = input('请输入日期,格式YYYY MM DD:')
year = int(date[0:4])                
month = int(date[5:7])
day = int(date[8:])
def is_leap_year(year):
    if year % 4 == 0:
        if year % 100 == 0:
            if year % 400 == 0:
                return True                
            return False                
        return True                        
    return False
if is_leap_year(year) is True:
    month_list = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
else:
    month_list = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
days = 0                            
for i in range(month - 1):
    days += month_list[i]
total = days + day                    
print('{}是{}年的第{}天'.format(date, year, total))
copy

image-20230317004942251

9.

oriCache=10000
for i in range(5):
    oriCache=oriCache*(1+3/1000)

print(oriCache)
copy

image-20230317005143323

10.

a = []
for i in range(1001,3001):
    n = str(i)
    if int(n[0]) %2 ==0 and int(n[1]) %2 ==0 and int(n[2]) %2 ==0 and int(n[3]) %2 ==0:  
        a.append(n)
print(','.join(a))
copy

image-20230317005445553

四、实验小结

问题与解决办法

  1. int 类型问题,解决方法:问同学,改类型即可

心得体会:

  1. python真好玩
最新评论

代码运行结果未显示,不符合实验要求。

2023-03-29 12:53:55
回复