1、平方根的格式化

知识点:平方根计算

  • pow(a,0.5)[可以计算负数,结果为复数]
  • a**b

例题:

获得用户输入的一个整数a,计算a的平方根,保留小数点后3位,并打印输出。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

输出结果采用宽度30个字符、右对齐输出、多余字符采用加号(+)填充。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

如果结果超过30个字符,则以结果宽度为准。

我的答案:

a=eval(input())
print("{0:+>30.3f}".format(pow(a,0.5)))

运行结果:

1、10

+++++++++++++++++++++++++3.162

2、-10

++++++++++++++++++0.000+3.162j

点评分析:

这是一个简单题,重点在于理解格式化输出的方法。

注意:如果平凡根后产生一个复数,由于复数的实部和虚部都是浮点数,.3f可以将实部和虚部分别取三位小数。

1.1、凯撒密码( 栅栏密码 )

plaincode=input("请输入明文:")
for p in plaincode:
if ord("a")<=ord(p)<=ord("z"):
print(chr(ord('a')+(ord(p)-ord('a')+3)%26),end="")
#end="",是不想让【循环】输出换行。因为print自带换行。
else:
# %26,mod26是因为+3后可能超出范围,通过这个操作限定范围
print(p,end="")

1.2、随机密码生成

描述

补充编程模板中代码,完成如下功能:‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

以整数17为随机数种子,获取用户输入整数N为长度,产生3个长度为N位的密码,密码的每位是一个数字。每个密码单独一行输出。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

产生密码采用random.randint()函数。

建议答案:

import random

def mima(length):
a=10**(length-1)
b=10**length - 1
return "{}".format(random.randint(a,b)) #居然可以return这个东西 length=eval(input())
random.seed(17)
for i in range(3):
print(mima(length))

2、字符串分段组合

知识点:str.split("xxxxx"),返回一个 列表 ,由str中被 xxxxx 分隔的部分组成

例题:

获得输入的一个字符串s,以字符减号(-)分割s,将其中首尾两段用加号(+)组合后输出。

我的答案:

s=input()
for i in range(0,99991):
if(s[i]=="-"):
a=s[0:i]
break
for j in range(1,99999):
if(s[-j]=="-"):
b=s[(-j)+1:-1]
break
print("{}+{}{}".format(a,b,s[-1]))

运行结果:

1-2-3-4

1+4

建议答案:

s=input()
ls=s.split("-")
print("{}+{}".format(ls[0],ls[-1]))

运行结果:

1-2-3-4

1+4

3、四位玫瑰数

描述‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬:

四位玫瑰数是4位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数,3位数的自幂数被称为水仙花数。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

请输出所有4位数的四位玫瑰数,按照从小到大顺序,每个数字一行。 ‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

我的答案:

for i in range(1000,10000):
a=i//1000
b=(i%1000)//100
c=((i%1000)%100)//10
d=((i%1000)%100)%10
if(a**4+b**4+c**4+d**4==i):
print("{}\n".format(i))

建议答案:

s = ""
for i in range(1000, 10000):
t = str(i)
if pow(eval(t[0]),4) + pow(eval(t[1]),4) + pow(eval(t[2]),4) + pow(eval(t[3]),4) == i :
print(i)

分析解释

1、print()本身就带有换行了

2、eval()评估函数,居然可以把数当作字符串处理,及其简单的得到这个数的个位、十位、百位、等等

4、100以内素数之和

描述

求100以内所有素数之和并输出。‪‬‪‬ ‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

素数指从大于1,且仅能被1和自己整除的整数。 ‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

提示:可以逐一判断100以内每个数是否为素数,然后求和。

我的答案:

在cpp里,是两个for循环,然后判断(2,n)之后,n是否还等于i

建议答案:

#Prime
def is_prime(n):
for i in range(2,n):
if n%i == 0:
return False
return True
sum = 0
for i in range(2,100):
if is_prime(i):
sum += i
print(sum)

5、连续素数(质数)计算

  • str字符串不能单独赋值,和cpp不一样,所以直接输出
  • python在使用变量前不需要定义,用的时候,进行什么样的操作,就可以看出是什么变量类型
  • 与cpp不同的是:python中 for一般是遍历,while一般限定循环次数。

描述

补充编程模板中代码,完成如下功能: ‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

获得用户输入数字N,计算并输出从N开始的5个质数,单行输出,质数间用逗号,分割。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

注意:需要考虑用户输入的数字N可能是浮点数,应对输入取整数;最后一个输出后不用逗号。

我的答案:

建议答案:

def sushu(m): #判断素数的函数
for i in range(2,m):
if m%i == 0:
return False
return True #注意缩进,是for循环完了还不满足,才return True n=eval(input())
n_=int(n)+1 #把浮点数换成整数
count=5 #限定输出个数
while count>0: # count =5,4,3,2,1都可以循环,不就是循环5次嘛
if sushu(n_):
if count>1: #这个东西是为了前4次输出有结尾的逗号,
print(n_,end=",")
else:
print(n_,end="")
count-=1 #注意缩进,不管啥,只要 if sushu()成立[是素数],都要把计数器减1
n_+=1 #注意缩进,不管啥,每次搞完都要把 n_加1,方能遍历 【遍历】

6、七段数码管turtle绘制

知识点:

  • 函数定义与编写
  • return
  • 局部变量和全局变量
  • 参数传递问题

建议答案:

import turtle
def drawgap(): #画空白函数
turtle.penup()
turtle.fd(5)
def drawline(line): #画线条函数
drawgap()
turtle.pendown() if line else turtle.penup
turtle.fd(20)
drawgap()
turtle.right(90)
def drawdigit(digit): #画一个数码函数
drawline(1) if digit in [2,3,4,5,6,8,9] else drawline(0)
drawline(1) if digit in [0,1,3,4,5,6,7,8,9] else drawline(0)
drawline(1) if digit in [0,2,3,5,6,8,9] else drawline(0)
drawline(1) if digit in [0,2,6,8] else drawline(0)
turtle.left(90)
drawline(1) if digit in [0,4,5,6,8,9] else drawline(0)
drawline(1) if digit in [0,2,3,5,6,7,8,9] else drawline(0)
drawline(1) if digit in [0,1,2,3,4,7,8,9] else drawline(0)
turtle.right(180)
turtle.fd(10)
def drawdate(date): #需要的日期函数
for p in date:
drawdigit(eval(p))
def main(): #主函数
turtle.setup(800,250,200,300)
turtle.pensize(5)
turtle.penup()
turtle.fd(-150)
drawdate("20200117")
turtle.hideturtle()
turtle.done()
main()

7、汉诺塔问题

知识点:函数递归调用

三个部分

  • 函数+分支(if ->3 else ->2)
  • 链条
  • 基例

建议答案

count=0
def han(n,A,C,B): #四个参数采用位置传递,代表的含义分别为:搬运圆盘编号,圆盘起始位置,圆盘目标位置,过渡位置
global count
if n==1:
print("{}:{}->{}".format(1,A,C))
count+=1
else: #递归链条表示:先把上面n-1个搬到过渡位置,剩的那个最大的放到目标位置,再把那n-1个放到目标位置
han(n-1,A,B,C)
print("{}:{}->{}".format(n,A,C))
count+=1
han(n-1,B,C,A)
print(han(3,"A","C","B")) #以三个圆盘为例
print(count)

输出结果:

1:A->C
2:A->B
1:C->B
3:A->C
1:B->A
2:B->C
1:A->C
7

8、基本统计值计算

总和、平均数、中位数、方差

def getnum():
ls=[]
nums=input("请输入数字:")
while nums !='':
ls.append(eval(nums))
nums=input("请输入数字:")
return ls
def pingjun(ls):
sum=0.0
for p in ls:
sum+=p
return sum/len(ls) def fangcha(ls,ave):
sum=0.0
for p in ls:
sum+=(p-ave)**2
return sum def mid(ls):
sorted(ls)
size=len(ls)
if size%2==0:
med=(ls[size//2-1]+ls[size//2])/2
else:
med=ls[size//2]
return med n=getnum() print("平均数:{}\n方差{}\n中位数{}\n".format(pingjun(n),fangcha(n,pingjun(n)),mid(n)))

Python语言程序设计(笔记)的更多相关文章

  1. 【任务】Python语言程序设计.MOOC学习

    [博客导航] [Python导航] 任务 18年11月29日开始,通过9周时间跨度,投入约50小时时间,在19年1月25日之前,完成中国大学MOOC平台上的<Python语言程序设计>课程 ...

  2. Python语言程序设计之二--用turtle库画围棋棋盘和正、余弦函数图形

    这篇笔记依然是在做<Python语言程序设计>第5章循环的习题.其中有两类问题需要记录下来. 第一是如何画围棋棋盘.围棋棋盘共有19纵19横.其中,位于(0,0)的星位叫天元,其余8个星位 ...

  3. 全国计算机等级考试二级Python语言程序设计考试大纲

    全国计算机等级考试二级Python语言程序设计考试大纲(2018年版) 基本要求 掌握Python语言的基本语法规则. 掌握不少于2个基本的Python标准库. 掌握不少于2个Python第三方库,掌 ...

  4. Python语言程序设计之一--for循环中累加变量是否要清零

    最近学到了Pyhton中循环这一章.之前也断断续续学过,但都只是到了函数这一章就停下来了,写过的代码虽然保存了下来,但是当时的思路和总结都没有记录下来,很可惜.这次我开通了博客,就是要把这些珍贵的学习 ...

  5. Python语言程序设计之三--列表List常见操作和错误总结

    最近在学习列表,在这里卡住了很久,主要是课后习题太多,而且难度也不小.像我看的这本<Python语言程序设计>--梁勇著,列表和多维列表两章课后习题就有93道之多.我的天!但是题目出的非常 ...

  6. Python语言程序设计(1)--实例1和基本知识点

    记录慕课大学课程<Python语言程序设计>的学习历程. 实例1:温度转换 #温度转换TempStr = input("请输入带有符号的温度值:") #TempStr是 ...

  7. 【学习笔记】PYTHON语言程序设计(北理工 嵩天)

    1 Python基本语法元素 1.1 程序设计基本方法 计算机发展历史上最重要的预测法则     摩尔定律:单位面积集成电路上可容纳晶体管数量约2年翻倍 cpu/gpu.内存.硬盘.电子产品价格等都遵 ...

  8. Python语言程序设计学习 之 了解Python

    Python简介 Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. Python是纯粹的自由软件,源代 ...

  9. Python语言程序设计(3)--实例2-python蟒蛇绘制-turtle库

    1. 2. 3.了解turtle库 Turtle,也叫海龟渲染器,使用Turtle库画图也叫海龟作图.Turtle库是Python语言中一个很流行的绘制图像的函数库.海龟渲染器,和各种三维软件都有着良 ...

随机推荐

  1. 后端程序员之路 44、Redis结合protobuf

    protobuf序列化速度不错,在往Redis里存对象时,用protobuf序列化可以节省内存,省去写序列化反序列化代码的工作. google protocol buffer 与 redis 结合使用 ...

  2. 【图像处理】使用OpenCV+Python进行图像处理入门教程(三)色彩空间

    这篇随笔介绍使用OpenCV进行图像处理的第三章 色彩空间. 3  色彩空间 之前的介绍,大多是基于BGR色彩空间进行的,但针对不同的实际情况,研究人员提出了许多色彩空间,它们都有各自擅长处理的领域. ...

  3. 蓝桥杯-分考场(dfs)

    分考场 PREV-53 这题的解决方法使用dfs,因为数据很小,才100. 每次当前的人人是否可以和前面的组队,设置两个数组group和fri /*DFS求解:思路每次判断输入的人是否可以和前面的组队 ...

  4. HDOJ-1358(字符串压缩+KMP)

    Period HDOJ-1358 这题还是属于KMP算法的应用,属于字符串压缩问题.也就是在一个字符串s中寻找一个前缀,使得s可以被一份或者多份前缀子串t拷贝连接,也就是串接. #include< ...

  5. 文件包含-phpinfo()

    我也是听朋友说有这个姿势的,github有集成好的环境 先讲一下利用phpinfo上传文件,然后在文件包含的原理: 在给PHP发送POST数据包时,如果数据包里包含文件区块,无论访问的代码中是否有处理 ...

  6. C# 通过ServiceStack 操作Redis——ZSet类型的使用及示例

    Sorted Sets是将 Set 中的元素增加了一个权重参数 score,使得集合中的元素能够按 score 进行有序排列 /// <summary> /// Sorted Sets是将 ...

  7. 【java框架】SpringBoot(5)--SpringBoot整合分布式Dubbo+Zookeeper

    1.理论概述 1.1.分布式 分布式系统是若干独立计算机的集合,这些计算机对于用户来讲就像单个系统. 由多个系统集成成一个整体,提供多个功能,组合成一个板块,用户在使用上看起来是一个服务.(比如淘宝网 ...

  8. ubuntu修改默认启动内核

    一.序言 新换的笔记本由于太新的主板芯片,驱动还没有完善.每次升级系统内核都要小心谨慎.经常发生部分硬件驱动失败的事情.系统Ubuntu 20.04.2 LTS x86_64 ,我现在使用的两个版本的 ...

  9. java例题_08 输入特定数字求和(n个a位数递增求和问题)

    1 /*8 [程序 8 输入数字求和] 2 题目:求 s=a+aa+aaa+aaaa+aa...a 的值,其中 a 是一个数字.例如 2+22+222+2222+22222(此时共有 5 个数相加), ...

  10. 2021精选 Java面试题附答案(一)

    1.什么是Java Java是一门面向对象的高级编程语言,不仅吸收了C++语言的各种优点,比如继承了C++语言面向对象的技术核心.还摒弃了C++里难以理解的多继承.指针等概念,,同时也增加了垃圾回收机 ...