当前位置: 首页 > article >正文

python 结构作业

基础练习

练习目标

if-else判断语句

while循环语句

01. 计算车费

题目描述

小红打车,起步价8元(3公里), 每公里收费 2 元,她打车行驶了 n 公里,计算车费

输入描述

输入一个公里数

输出描述

输出应付车费

示例

输入:

5

输出:

12

#输入
km=float(input("公里数:"))
if km<=3:
    print("车费为:")
else:
    print("车费为:%.2f" %(8+2*(km-3)))

02. 判定闰年

题目描述

一个年份如果能被4整除但不能被100整除,或者能被400整除,那么这个年份就是闰年

输入输出描述

输入一个年份

输出Yes表示该年份为闰年,No则表示不是闰年

示例1

输入:

2008

输出:

Yes

示例2

输入:

2002

输出:

No

#输入
year=int(input("输入年份:"))
if(year%4==0 and year%100!=0) or (year%400==0):
    print("Yes")
else:
    print("No")

03. 未来周几

题目描述

输入表示今天是一周内哪一天的数字(星期天是0,星期一是1,...,星期六是6)

并输入今天之后到未来某天的天数,然后输出该天是星期几

输入描述

分别输入两个数据,表示今日星期几的数字和未来某天的天数

输出描述

输出未来某天是星期几

示例1

输入:

1

3

输出:

星期四

示例2

输入:

0 31

输出:

星期三

#输入
today=int(input("今天星期几:"))
days=int(input("未来第几天:"))
x=days%7
#输出
print("今天星期"+str(x+today))

04. 方程求解

题目描述

如有一个2×2的线程方程组:

你可以使用克莱姆法则解该线性方程:

其中$ad-bc$为判别式,如果为零则输出无解

输入输出描述

输入a、b、c、d、e、f六个数据,数据之间用空格分隔

输出两行,第一行x的解,第二行y的解,保留一位小数

示例1

输入:

9.0 4.0 3.0 -5.0 -6.0 -21.0

输出:

-2.0

3.0

示例2

输入:

1.0 2.0 2.0 4.0 4.0 5.0

输出:

无解

#输入
#ax+by=e cx+dy=f
a,b,c,d,e,f=map(float,input("请依次输入a,b,c,d,e,f 6个数据:").split())
if (a*d-b*c==0):
    print("该方程无解")
else:
    print("x的解为:x=%.1f" %((e*d-b*f)/(a*d-b*c)))
    print("y的解为y=%.1f" %((a*f-e*c)/(a*d-b*c)))

05. 三角形周长

题目描述

输入三角形三边的长度,如果输入合法则计算周长并输出结果;否则输出非法

如果任意两边之和大于第三边则输入都是合法的

输入输出描述

输入三个数据表示三边,数据之间用空格分隔

输出三角形的周长,如果非法则输出非法

示例1

输入:

1 1 1

输出:

3

示例2

输入:

1 3 1

输出:

非法

#输入
a,b,c=map(float,input("请输入三角形的边长:").split())
if((a+b>c) and (a+c>b) and (b+c>a)):
    print("三角形三边的周长是:%.1f" %(a+b+c))
else:
    print("非法")

06. 图形构建

题目描述

输入一个整数n,按照下面的格式输出n行满足规律的数据

输入描述

输入一个整数n,表示输出n行数据

输出描述

输出满足规律的数字组成的图形(示例中的几种模式分别输出)

示例

模式A
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
模式B
1 2 3 4 5 6
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
模式C
          1
        2 1
      3 2 1
    4 3 2 1
  5 4 3 2 1
6 5 4 3 2 1
模式D
1 2 3 4 5 6
  1 2 3 4 5
    1 2 3 4
      1 2 3
        1 2
          1
for i in range(1,7):
    for j in range(1,i+1):
      print(j,end="")
    print("\n")
​
#在 range() 函数中,如果只提供两个参数,第三个参数(步长)默认为1。
#为了代码的可读性,加一个-1
​
for i in range(7,0,-1):
    for j in range(1,i):
        print(j,end="")
    print()

07. 判断素数

题目描述

一个大于1的整数如果只能被正整数1和它本身整除,则它就是素数,例如2、3、5和7都是素数,而4、6、8、9则不是

输入描述

输入一个大于1的正整数

输出描述

输出Yes表示该数字是素数,否则输出No

示例1

输入:

9

输出:

No

示例2

输入:

11

输出:

Yes

a=int(input("输入一个大于1的数:"))
for i in range(2,a+1):
    if(a%i==0):
        break
if(a==i):
    print("Yes")
else:
    print("No")

最大公约数

题目描述

输入两个正整数,计算其最大公约数,例如4和2的最大公约数是2,16和24的最大公约数是8

输入描述

输入两个数字

输出描述

输出最大公约数

示例1

输入:

16 24

输出:

8

示例2

输入:

7 3

输出:

1

a,b=map(int,input("请输入两个正整数:").split())
if(a>b):
    x=b
else:
    x=a
for i in range(x,1,-1):
    if(a%i==0 and b%i==0):
        break
print(str(a)+"与"+str(b)+"的最大公约数为",i)

09. 计算π

题目描述

你可以使用下面的数列近似计算π

当i越大时,计算结果越近似于π

pi=0
for i in range(1,100):
    if(i%2==1):
        x=1
    else:
        x=-1
    pi+=1/(2*i-1)*x
print("Π值为:",4*pi)

10. 排列组合

题目描述

在数字范围[1,7]之间,任意选择两个不相同的数作为一个组合,输出每一组组合,并统计所有组合的个数

注:组合(a,b)与组合(b,a)算同一种组合,只记录一次

sum=0
for i in range(5,1,-1):
    sum+=i
print("一共有"+str(sum)+"可能")

拓展作业

w01.计算e

题目描述

你可以使用下面的数列近似计算e

当i越大时,计算结果越近似于e

#设x为每一项的分母,y为每一项
x=1
sum=0
sum=float(sum)
for i in range(1,100):
    x=x*i
    sum+=1/x
print("e的值为",sum+1)

w02.组合

题目描述

有1、2、3、4这个四个数字,能组成多少个互不相同且无重复数字的三位数?分别又是多少?

#建立数组
digits=[1,2,3,4]
x=0
#应为 4*3*2 种可能
for i in range(1,5):
    for j in range(1,5):
        if(i!=j):
            for k in range(1,5):
                if((i!=k) and (j!=k)):
                    x+=1
                    print(100 * i + 10 * j + k)
print("如上所示,共有"+str(x)+"种可能")

w03.水仙花

题目描述

水仙花数,是一个三位数,且这个数的个位、十位和百位的立方和等于该数字本身,例如$153=1^3+5^3+3^3$

编写程序,输出所有的水仙花数

#设百 十 个 位分别为a b c,这个三位数为x
#i % 100 / 10 会得到一个浮点数  //得到的商向下取整
print("水仙花数有:")
for i in range(100,1000):
    a=i//100
    b=i%100//10
    c=i%100%10
    if(i==a**3+b**3+c**3):
        print(i)

w04.进制

题目描述

编写代码,实现十进制数据转换二进制、二进制转换十进制、十进制转换十六进制、十六进制转换十进制的代码实现

输入描述

输入一个原始数据

输出描述

输出一个转换后的数据

示例

输入一个数据(十进制): 3

输出(二进制):11

#输入一个十进制数x
#x=int(input("输入(十进制):"))
# #创建一个列表存储i
i_list=[]
while(x!=0):
    i=x%2
    #将i添加到空列表中
    i_list.append(str(i))
     x=x//2
     #将i_list中的项目反转输出
# # list.reverse()方法用于原地反转列表中的元素顺序,但是这个方法没有返回值(即返回None)
# i_list.reverse()
# #使输出数据之间没有间隔
 print(''.join(i_list))
    
   
​
​
#十进制转16进制
#输入十进制数x
 x=int(input("输入一个十进制数:"))
#创建一个列表存储i
 i_list=[]
 while (x!=0):
     i=x%16
     i_list.append(str(i))
     x=x//16
 i_list.reverse()
#代码应该在循环中更新列表 i_list,而不是更新循环变量 j,因为循环变量 j 的更新不会影响到列表 i_list。
# 使用 enumerate 来获取每个元素的索引和值
for index,j in enumerate(i_list):
     if j=="10":
         i_list[index]="A"
     if j=="11":
         i_list[index]="B"
     if j=="12":
         i_list[index]="C"
     if j=="13":
         i_list[index]="D"
     if j=="14":
         i_list[index]="E"
     if j=="15":
         i_list[index]="F"
 print(''.join(i_list))
​
​
​
#2进制转10进制
#输入2进制x
 str=input("输入一个字符串:")
 sum=0
# #range() 函数生成一个从字符串长度减1(即最后一个字符的索引)开始到0(包括0)的逆序列。步长设置为-1,表示索引是递减的。
#
 for index,i in enumerate(str):
     sum+=int(i)*(2**(len(str)-1-index))
 print("十进制数为:",sum)
​
​
​
#16进制转10进制
str=input("请输入一个16进制数:")
sum=0
str_list=list(str)
for index,i in enumerate(str_list):
    if(i=="A"):
        str_list[index]=10
    if(i=="B"):
        str_list[index]=11
    if(i=="C"):
        str_list[index]=12
    if(i=="D"):
        str_list[index]=13
    if(i=="E"):
        str_list[index]=14
    if(i=="F"):
        str_list[index]=15
    sum+=int(str_list[index])*(16**(len(str_list)-index-1))
print("10进制数为:",sum)
​


http://www.kler.cn/news/361594.html

相关文章:

  • Zookeeper面试整理-源码及实现细节
  • 搭建微信AI机器人
  • 若依框架的下载与配置
  • html+css+js实现Notification 通知
  • HubSpot的AI技术:企业营销和销售的好帮手
  • 学习vue20.17.0-列表渲染
  • Maven项目管理工具-初始+环境配置
  • Anthropic 发布Claude 3.5 Haiku 以及一项炸裂的新功能 AI可以模仿人类访问电脑
  • 【Linux系统编程】第三十六弹---深入探索进程间通信:封装共享内存类并实现进程间数据共享
  • 点跟踪论文—RAFT: Recurrent All-Pairs Field Transforms for Optical Flow-递归的全对场光流变换
  • Python基础——类与对象
  • C++算法练习-day15——1.两数之和
  • 打造开放式语音智能体
  • 拴柱说Mac之Mac的高效使用技巧第三期
  • 源码编译方式安装htppd软件
  • mysql学习教程,从入门到精通,SQL导入数据(44)
  • Java重修笔记 UDP 网络通信
  • python从0快速上手(十六)小游戏开发
  • 某科技——北京——国护蓝中研判岗
  • 至多六步,linux挂载磁盘
  • DORA 机器人中间件学习教程(6)——激光点云预处理
  • 电脑输入账号密码后,屏幕黑屏只有鼠标解决办法
  • OBOO鸥柏:引领液晶拼接大屏kvm集中控制系统的技术革新
  • 基于SpringBoot的在线文档管理系统的设计与实现(论文+源码)_kaic
  • 【Python数据可视化】利用Matplotlib绘制美丽图表!
  • Sentinel 介绍