《Python数据分析》课后作业

2020年秋季开课,课程时间为第6-16周


Python第一次作业

Description:
1.Python单行注释和多行注释分别用什么表示?对下面不同格式语句分别进行相应的注释:
(1) “计算机编程是把数学知识转化为实际效益的强有力工具”;(写为一行)
(2) “计算机编程是
把数学知识转化为实际效益的 (保存格式不变,既两行)
强有力工具”。

(1)代码:

#计算机编程是把数学知识转化为实际效益的强有力工具

(2)代码:

'''
计算机编程是
把数学知识转化为实际效益的    (保存格式不变,既两行)
强有力工具
'''

Description:
2.编写脚本文件,命名为pythonfirst.py, 内容为print(“Hello, NAU”). 然后把它保存在桌面位置,最后在spyder的shell框里面运行该文件。写出整个流程与涉及的相应代码。

Answer:
省略

Description:
3.列出下列数学式的python代码:
(1)8×3^2+6%4 (2) ( 2^4+7-34)÷5

Answer:
在这里插入图片描述

Description:
4. 给变量str_1赋值“Hello,Stat.andMath.”, 然后输出内容:复制str_1 两遍。

Answer:
省略

Description:
5.写代码,有如下变量,请按照要求实现每个功能。
字符串类型的变量var_1=” #$Youth means limitless possibilities$#, &pursues breakthroughs in your life ! *”。(1)首先以逗号作为分割符,把该变量分为两部分,记为var_2与var_3; (2)用python命令分别去掉var_2,var_3的两端的空格符,以及“#¥&*”。

Answer:
在这里插入图片描述

运行结果:

#$Youth means limitless possibilities$#  &pursues breakthroughs in your life ! *

Python第二次作业

# 1. 输出10行内容,每行的内容都是“*****”。

#输出10行内容,每行的内容都是“*****”。
for i in range(10):
    print(5*"*")

# 2. 输出10行内容,每行的内容都不一样,第1行一个星号,第2行2个星号,依此类推第10行10个星号。

# 输出10行内容,每行的内容都不一样,第一行一个星号,第二行2个星号,依次类推第十行10个星号。
for i in range(1,11):
    print(i*"*")

# 3. 输出9行内容,,第1行输出1,第2行输出12,第3行输出123,以此类推,第9行输出123456789。

#输出九行内容,第一行输出1,第二行输出12,第三行输出123,以此类推,第九行输出123456789。
sum=0
for i in range(1,10):
    sum+=i
    print(sum)
    sum=sum*10

老师的标准答案:

for i in range(1,10):
    I=""
    for j in range(0,i):
       I=I+str(j+1)
       print(I) 

# 4. 计算10个99相加后的值并输出。

# 计算10个99相加后的值并输出。
sum=0
for x in range(10):
    sum+=99
print("10个99相加后的值为{}".format(sum))

# 5. 计算从1加到100的值并输出。

# 计算从1加到100的值并输出。
sum=0
for i in range(1,101):
    sum+=i
print("1+2+3+...+100={}".format(sum))

# 6. 计算10的阶乘(1x2x3x4x5x6x7x8x9x10)

# 计算10的阶乘。
# 方法一:使用for循环。
print("方法一:for循环")
sum=1
for i in range(1,11):
    sum*=i
print("10!={}".format(sum))
print("-—-—-—-—-—-—-—-—-—-—-—-—-")
# 方法二:使用递归。
print("方法二:递归")
def f(number):
    if number==0 or number==1:
        return 1
    return f(number-1)*number
num=f(10)   
print("10!={}".format(num))

# 7. 计算2的20次方。不允许用**和pow()

# 计算2的20次方。不允许用**和pow()
sum=1
for i in range(20):
    sum*=2
print("2的20次方为%d"%sum)

# 8. 计算从1到100临近两个整数的合并依次输出。比如第一次输出3(1+2),第二次输出5(2+3),最后一次输出199(99+100)。

#计算从1到100临近两整数的合并依次输出。
for x in range(1,100):
    print("{}+{}={}".format(x,x+1,x+x+1))

# 9. 打印99乘法表

#打印99乘法表
for i in range(1,10):
    for j in range(1,i+1):
        print("{}*{}={}  ".format(j,i,i*j),end="")
    print("\n")

# 10. 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第n=10次落地时,共经过多少米?

# 一球从100米高度自由落下,每次落地后跳回原高度的一半,再落下。求它在第n=10次落地时,共经过多少米?
sum=0
num=100
for i in range(10):
    sum+=num+num/2
    num/=2
    
print("它在第n=10次落地时,一共经过%d米"%sum)

python 第三次作业

1,输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。(显示程序运行时间)

#第一题
'''
1.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。(显示程序运行时间)
'''
import time
t1 = time.perf_counter()
count_letter,count_space,count_digit=0,0,0
#-------------------start-------------------------
a=input("请输入一行字符:")
for i in a:
    
    if i.isalpha():
        count_letter+=1
    elif i.isspace():
        count_space+=1
    elif i.isdigit():
        count_digit+=1
print("该字符的中,字母的个数{},空格的个数{},数字的个数{}\n".format(count_letter,count_space,count_digit))
#-------------------end-------------------------
t2 = time.perf_counter()
print("程序运行时间:",t2-t1)

2,一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。(显示程序运行时间)

#第二题
'''
2.一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。(显示程序运行时间)
'''
import time
t1 = time.perf_counter()

for i in range(1,1001):
    s = 0
    for j in range(1,i):
        if i%j==0:
            s+=j
    if i==s:
        print("1000以内的完全数有{} \n".format(s))

t2 = time.perf_counter()
print("程序运行时间:",t2-t1)

3,判断101-200之间有多少个素数,并输出所有素数。(显示程序运行时间)

#第三题
'''
3,判断101-200之间有多少个素数,并输出所有素数。(显示程序运行时间)
'''
#第三题
'''
3,判断101-200之间有多少个素数,并输出所有素数。(显示程序运行时间)
'''
import time
t1 = time.perf_counter()
#--------------------start---------------------------------
l=[ ]
for i in range(101,200):
    for j in range(2,i-1):
        if i % j==0:
            break
    else:                  #for......else 中,else语句会在 for 不通过 break 跳出而中断的情况下执行。
        l.append(i)
print(l)
print('总数为:%d'%len(l))
#--------------------end---------------------------------

t2 = time.perf_counter()
print("程序运行时间:",t2-t1)

4,打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

#第四题
'''
打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。(显示程序运行时间)
'''
import time
t1 = time.perf_counter()
#--------------------start---------------------------------
# 循环遍历出所有三位数
def digit_all(a,b):
    for tmp in range(a, b):
        # 取余找出个位数
        x = tmp % 10
        # 求商取整找出百位数
        y = tmp // 100
        # 通过求商取整找出百位和十位,然后求商找出十位
        z = tmp // 10 % 10
        if tmp == x**3 + y**3 + z**3:
            print("{}~{}水仙花数有{}".format(a,b-1,tmp))
digit_all(100,1000)
#--------------------start---------------------------------
t2 = time.perf_counter()
print("程序运行时间:",t2-t1)

5,有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。(显示程序运行时间)

#第五题
'''
有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。(显示程序运行时间)
'''
import time
t1 = time.perf_counter()
#--------------------start---------------------------------
n = int(input('请输入项数: '))
 
fenzi = 2#分子
fenmu = 1#分母
l = []
s = 0
 
for i in range(1,n+1):
    a = fenzi
    b = fenmu
    
    s += (a/b)
    l.append('%s/%s'%(a,b))
    
    fenzi = a+b
    fenmu = a
    
print('+'.join(str(i) for i in l),end = '')
print('=%.2f'%s)

#--------------------start---------------------------------
t2 = time.perf_counter()
print("程序运行时间:",t2-t1)

6,求1+2!+3!+…+20!的和。(显示程序运行时间)

#第六题
'''
求1+2!+3!+...+20!的和。(显示程序运行时间)
'''
import time
t1 = time.perf_counter()
#--------------------start---------------------------------
n = 0
s = 0
t = 1
for n in range(1,21):
    t *= n
    s += t
print("1+2!+3!+...+20!={}".format(s))
#--------------------start---------------------------------
t2 = time.perf_counter()
print("程序运行时间:",t2-t1)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值