栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

[新医科辅修Python作业]控制系统的应用与循环系统深化训练

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[新医科辅修Python作业]控制系统的应用与循环系统深化训练

问题一:输出居中显示的三角形 题目解释:输入一个值a,输出一个高度为a的居中显示的三角形

例:

输入:
a = 5
输出:
    *
   ***
  *****
 *******
*********

这道开头小菜是比较简单的,首先输出的三角形每一行必须是奇数个数的字符,不然是成不了三角形的;第二就是如何控制居中问题

AC代码
# 输出三角形
n = int(input("输入三角形高度:"))
for i in range(1,2*n,2):
    a = int((i+1)/2)
    b = n-a
    print(" "*b,end='')
    print("*"*i)
解释

代码非常简单,控制居中问题其实可以转换为控制字符前空格个数的问题,我们来找一下规律
1.显然最长一行即最后一行是顶左写的,因此空格个数为0
2.从下往上数空格数量逐渐成等差数列增多,显然这个差值是1,那么只需要把这种关系通过程序表达式表现即可


问题二:输出乘法表 题目解释:没有啥好解释的,就是输出一个二年级的乘法算数表

例:

本题无输入
输出:
1 * 1 = 1
1 * 2 = 2  2 * 2 = 4
1 * 3 = 3  2 * 3 = 6  3 * 3 = 9
1 * 4 = 4  2 * 4 = 8  3 * 4 = 12  4 * 4 = 16
1 * 5 = 5  2 * 5 = 10  3 * 5 = 15  4 * 5 = 20  5 * 5 = 25
1 * 6 = 6  2 * 6 = 12  3 * 6 = 18  4 * 6 = 24  5 * 6 = 30  6 * 6 = 36
1 * 7 = 7  2 * 7 = 14  3 * 7 = 21  4 * 7 = 28  5 * 7 = 35  6 * 7 = 42  7 * 7 = 49
1 * 8 = 8  2 * 8 = 16  3 * 8 = 24  4 * 8 = 32  5 * 8 = 40  6 * 8 = 48  7 * 8 = 56  8 * 8 = 64
1 * 9 = 9  2 * 9 = 18  3 * 9 = 27  4 * 9 = 36  5 * 9 = 45  6 * 9 = 54  7 * 9 = 63  8 * 9 = 72  9 * 9 = 81
AC代码
# 输出乘法表
for i in range(1,10):
    for j in range(1,i+1):
        if j!=i:
            print("{} * {} = {}".format(j,i,i*j),end="  ")
        else:
            print("{} * {} = {}".format(j,i,i*j))

Random库的使用 常见的使用方法
import random

print( random.randint(1,10) )        # 产生 1 到 10 的一个整数型随机数  
print( random.random() )             # 产生 0 到 1 之间的随机浮点数
print( random.uniform(1.1,5.4) )     # 产生  1.1 到 5.4 之间的随机浮点数,区间可以不是整数
print( random.choice('tomorrow') )   # 从序列中随机选取一个元素
print( random.randrange(1,100,2) )   # 生成从1到100的间隔为2的随机整数
a=[1,3,5,6,7]                # 将序列a中的元素顺序打乱
random.shuffle(a)
print(a)

课后作业

1.从random 库中选取相应的函数满足下列条件。
(1)随机生成 100内的10个整数。
(2)随机选取0到100间的奇数。
(3)从字符串’abcdefghi’中随机选取4 个字符。
(4)随机选取列表[‘apple’,‘pear’,‘peach’,‘orange’]中的1个字符串。

2.使用for循环实现1+……+n(n输入)
3.分别使用for和while循环求n! (n:0-100(含)间的随机整数)
4.输出7*7的倒三角形
5.乘法表
6.pi的计算
7.角谷猜想

Promble 1 随机生成 100内的10个整数。 AC代码
# 随机生成10个随机整数
from random import *
for i in range(10):
	print(randint(1,100)) # 这里100是可以取到的

Promble 2 随机选取0到100间的奇数。 AC代码
# 随机选取0到100间的奇数
from random import *
print(randrange(0,49)*2+1) # 奇数k = 2*b + 1是定义,因此跟着定义走就行

Promble 3 从字符串’abcdefghi’中随机选取4 个字符。 AC代码
# 从字符串'abcdefghi'中随机选取4个字符
from random import *
str = "abcdefghi"
list = []
for i in range(4):
    list.append(choice(str))
print(list)

Promble 4 随机选取列表[‘apple’,‘pear’,‘peach’,‘orange’]中的1个字符串。 AC代码
# 随机选取列表['apple','pear','peach','orange']中的1个字符串。
from random import *
list1 = ['apple','pear','peach','orange']
list = sample(list1,1)
print(list)

Promble 5 使用for循环实现1+……+n(n输入) AC代码
# 使用for循环实现1+……+n(n输入)
sum = 0
n = int(input("输入一个n:"))
for i in range(n):
    sum += i+1
print(sum)

Promble 6 分别使用for和while循环求n! (n:0-100(含)间的随机整数) AC代码
# 分别使用for和while循环求n! (n:0-100(含)间的随机整数)
import sys
# for循环
ans = 1
n = int(input("输入一个n(0-100):"))
if n == 0:
    print("1")
    sys.exit(0) # 强制退出
for i in range(1,n+1):
    ans *= i
print(ans)

# while循环
ans = 1
n = int(input("输入一个n(0-100):"))
if n==0:
    print("1")
else:
    i = 1
    while(i<=n):
        ans *= i
        i+=1
print(ans)

# 递归知识点是超纲的,但是表达比较简洁,思维上比较有意思
# 超纲的递归循环
ans = 1
def dg(n):
    if n <= 1:
        return 1
    else:
        return n*dg(n-1)
n = int(input("输入一个n(0-100):"))
ans = dg(n)
print(ans)

Promble 7 输出7*7的倒三角形 AC代码
# 输出7*7的倒三角形
for i in range(7,0,-1):
	print("*"*i)

Promble 8 乘法表 AC代码
# 输出乘法表
for i in range(1,10):
    for j in range(1,i+1):
        if j!=i:
            print("{} * {} = {}".format(j,i,i*j),end="  ")
        else:
            print("{} * {} = {}".format(j,i,i*j))

Promble 9 pi的计算 AC代码
# 圆周率的计算
from random import seed, random
dot_point = eval(input("输入点数:"))
seed(123)
hits = 0.0
for i in range(dot_point):
    x ,y = random(), random()
    dis = pow(x**2 + y**2, 0.5)
    if(dis<=1):
        hits += 1
Pi = 4*(hits/dot_point)
print('{:.9f}'.format(Pi))

Promble 10 角谷猜想 AC代码
# 角谷猜想
import sys
n = int(input("输入一个正整数N:"))
if n == 1:
    print("输入就是1,不需要猜想")
    sys.exit(0)
print("证明过程:")
cnt = 0
while n!=1:
    cnt += 1
    if n%2==1: # 为奇数
        print("{} * 3 + 1 = {}".format(int(n),int(3*n+1)))
        n = 3*n + 1
    else:
        print("{} / 2 = {}".format(int(n),int(n/2)))
        n/=2
print("恭喜!你证明了角禮谷領猜想!经过了{}步".format(int(cnt)))

今天的题目比较多,但是内容不难,如果有任何疑问都可以在评论区留言讨论~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/657638.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号