习题解析

0.打印10以内偶数:位运算

for i in range(10):

if not i & 0x01:

print(i)

1.给定一个不超过5位的正整数,判断其有几位(使用input函数)

方法一:正常逻辑处理

a = int(input("Please enter a numer: "))

if a < 0:

print('Error')

if a < 10:

print(1)

elif a < 100:

print(2)

elif a < 1000:

print(3)

elif a < 10000:

print(4)

elif a < 100000:

print(5)

else:

print('Error')

方法二:折半

a=int(input("Please enter a numer: "))

if a < 0:

print('Error')

elif a < 1000:

if 9 < a < 100:

print(2)

elif a < 10:

print(1)

else:

print(3)

elif a < 10000:

print(4)

elif a < 100000:

print(5)

else:

print('Error')

方法三:字符串处理

a = str(int(input("Please enter a number: ")))

print(len(a))

2.给定一个不超过5位的正整数,判断该数的位数,依次打印出个位、十位、百位、千位、万位的数字

方法一:

a = int(input("Please enter a number: "))

length = 0

if a < 0:

print('Error')

elif a < 1000:

if 9 < a < 100:

length = 2

elif a < 10:

length = 1

else:

length = 3

elif a < 10000:

length = 4

elif a < 100000:

length = 5

else:

print('Error')

print(length)

for i in range(length):

print(a % 10)

a = a // 10

方法二:

a = input("Please enter a number: ")

b = int(a)

print(len(a))

for i in range(len(a)):

print(b % 10)

b = b // 10

方法三:

a = int(input("Please enter a number: "))

length = 0

if a < 0:

print('Error')

elif a < 1000:

if 9 < a < 100:

length = 2

elif a < 10:

length = 1

else:

length = 3

elif a < 10000:

length = 4

elif a < 100000:

length = 5

else:

print('Error')

print(length)

for i in range(length):

print(a - (a // 10) * 10)

a = a // 10

方法四:

a=int(input("Please enter a number: "))

a *= 10

while (a // 10) != 0:

a //= 10

print(a % 10)

3.给定一个不超过5位的正整数,判断该数的位数,依次打印出万位、千位、百位、十位、个位的数字

方法一:

a=input('Please enter a number: ')

b=int(a)

for i in range(len(a),0,-1):

te = 10 ** (i - 1)

c = b // te

print(c)

b -= (c * te)

print(len(a))

方法二:

a = int(input("Please enter a number: "))

length = 0

if a < 0:

print('Error')

elif a < 1000:

if 9 < a < 100:

length = 2

elif a < 10:

length = 1

else:

length = 3

elif a < 10000:

length = 4

elif a < 100000:

length = 5

else:

print('Error')

print(length)

pre = 0

for i in range(length,0,-1):

cur = a // (10 ** (i - 1))

print(cur - pre * 10)

pre = cur

方法三:

a = int(input("Please enter a number: "))

length = 0

if a < 0:

print('Error')

elif a < 1000:

if 9 < a < 100:

length = 10

elif a < 10:

length = 1

else:

length = 100

elif a < 10000:

length = 1000

elif a < 100000:

length = 10000

else:

print('Error')

while length:

print(a // length)

a %= length

length //= 10

方法四:

c = int(input("Please enter a number: "))

w = 10000

length = 5

flag = False

while w:

t = c // w

if flag:

print(t)

else:

if t:

print(t)

flag = True

else:

length -= 1

c = c % w

w //= 10

print("The length of number is", length)

4.打印一个边长为n的正方形

方法一:

a = int(input("Please enter a number: "))

for i in range(a):

if i == 0 or i == a-1:

print('*' * a )

else:

print('*' + ' ' * (a - 2) + '*')

方法二:

a = int(input("Please enter a number: "))

print('*' * a)

for i in range(a - 2):

print('*' + ' ' * (a - 2) + '*')

else:

print('*' * a)

方法三:

a = int(input("Please enter a number: "))

top = mid = '*'

for i in range(a - 1):

top += '\t*'

mid += '\t'

else:

mid += '*'

print(top)

for i in range(a - 2):

print('\n')

print(mid)

else:

print('\n')

print(top)

5.求100内所有奇数的和(2500)

方法一:

sum = 0

for i in range(1,100,2):

sum += i

print(sum)

6.判断学生成绩,成绩等级A~E。其中,90分以上为'A',80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'

方法一:

a = int(input('Please enter a score: '))

if a > 79:

if a >= 90:

print('A')

else:

print('B')

elif a >= 70:

print('C')

elif 60 <= a < 69:

print('D')

else:

print('E')

7.求1到5阶乘之和

方法一:

sum = 0

for i in range(1,6):

mul = 1

for j in range(1,i + 1):

mul *= j

sum += mul

print(sum)

方法二:效率高

sum = 0

mul = 1

for i in range(1,6):

mul *= i

sum += mul

print(sum)

8.给一个数,判断它是否是素数(质数)

a=int(input("Please enter a number: "))

for i in range(2,int(a ** 0.5) + 1):

if a % i != 0:

continue

elif a % i == 0:

print(("N: %d") % (i))

break

else:

print("Yes,prime")

9.打印九九乘法表

for i in range(1,10):

line = ''

for j in range(1,i + 1):

line = line + ('%d*%d=%2d ') % (j,i,i*j)

print(line)

10.打印菱形

方法一:

a = int(input(">>>"))

b = (a - 1) / 2

for i in range(a):

if i <= b:

print(' ' * ((a - (2 * i + 1)) // 2) +'*' * (i * 2 + 1) + ' ' * (( a - (2 * i + 1)) // 2 ))

else:

m=int(2 * b - i)

print(' '*((a - (2 * m + 1)) // 2) +'*' * (m * 2 + 1) +' ' * ((a - (2 * m + 1)) // 2))

方法二:

a = int(input(">>>"))

b=(a - 1) // 2

for i in range(-b,b + 1):

c = abs(i)

print(' ' * c + '*' * (a - 2 * c) + ' ' * c)

11.打印100以内的斐波那契数列

a = 1

b = 1

while True:

ne = a + b

if ne >= 100:

break

a = b

b = ne

print(ne)

12.求斐波那契数列第101项 573147844013817084101

a = 1

b = 1

cnt = 2

while True:

ne = a + b

a = b

b = ne

cnt += 1

if cnt == 101:

print(b)

break

13.求10万内的所有素数 9592

方法一:

import datetime

start=datetime.datetime.now()

cnt=1

for i in range(3,100000,2):#优化点1:排除偶数

for j in range(3,int(i ** 0.5) + 1,2):#优化点2:排除含有因子2的数并只循环到原数的开方加1

if i % j == 0:

break

else:

#print(i)

cnt += 1

end=(datetime.datetime.now() - start).total_seconds()

print(end)

print(cnt)

方法二:

a = int(input('>>>'))

import datetime

start=datetime.datetime.now()

cnt = 2

for i in range(4,a):

if i % 6 != 1 and i % 6 != 5:#质数必与6的倍数相邻

continue

else:

for j in range(5,int(i ** 0.5) + 1,2):

if i % j == 0:

break

else:

cnt += 1

end=(datetime.datetime.now()-start).total_seconds()

print(end)

print(cnt)

方法三:

x = 5

step = 2

count = 2

while x < 100000:

for i in range(3,int(x ** 0.5) + 1,2):

if not x % i:

break

else:

count += 1

x += step

step = 4 if step == 2 else 2

print(count)

方法四:

prime=[2]

for i in range(3,100000,2):

flag=False

up=int(i**0.5)+1

for j in prime:

if i%j==0:

flag=False

break

if j>=up:

flag=True

break

if flag:

prime.append(i)

print(len(prime))

方法五:

筛选法

待补充

14.输入若干整数,打印最大值:

temp = 0

while True:

a = input('>>>')

if not a:

temp = a

break

else:

b = int(a)

if b >= temp:

temp = b

print(temp)

15.输入n个数,求每次输入后的算数平均数

sum = 0

cnt = 0

while True:

a = input('>>>')

if not a:

break

else:

sum += float(a)

cnt += 1

print(sum / cnt)

16.反向乘法表:

方法一:

for i in range(1,10):

line = ''

for j in range(i,10):

line += '%d*%d=%2d ' % (i,j,j * i)

print(' ' * (7 * i - 6) + line)

方法二:

for i in range(1,10):

line = ''

for j in range(i,10):

line += '%d*%d=%2d ' % (i,j,j * i)

print('{:>63}'.format(line))

方法三:

for i in range(1,10):

line = ''

for j in range(i,10):

line += '{}*{}={:

print('{:>70}'.format(line))

17.打印对顶三角形:

a = int(input(">>>"))

b = (a - 1) // 2

for i in range(-b,b + 1):

c = int((a - (2 * abs(i) + 1)) / 2)

print(' ' * c + '*' * (2 * abs(i) + 1) + ' ' * c)

18.打印闪电:

num = int(input(">>>"))

if num % 2 == 0:

num += 1

half = (num - 1) // 2

for i in range(- half,half + 1):

if i < 0:

print(' ' * (-i) + '*' * (half + i + 1))

elif i == 0:

print('*' * num)

else:

print(' ' * half + '*' * (half - i + 1))

19.猴子吃桃:

x = 1

for i in range(9):

x = (x + 1) * 2

print(x)

python求平均数直到0出现while_Python第一周 学习笔记(2)相关推荐

  1. 机电传动控制课程第一周学习笔记

    机电传动课程第一周学习笔记 本周的学习内容主要是第一章绪论和第二章机电传动系统的动力学基础,结合课程学习和预习复习回顾内容如下: 1.绪论:学习了机电传动控制目的与任务.发展历程和我们该如何学习这门课 ...

  2. 机电传动控制第一周学习笔记

    机电传动控制第一周学习笔记: 1 这一周主要讲述了概论和机电传动控制系统动力学基础两个章节内容. 2 绪论中说明了<机电传动控制>课程主要内容为下图所示: 3机电传动控制系统动力学基础章节 ...

  3. 阿里云天池 Python训练营Task4: Python数据分析:从0完成一个数据分析实战 学习笔记

    本学习笔记为阿里云天池龙珠计划Python训练营的学习内容,学习链接为:https://tianchi.aliyun.com/specials/promotion/aicamppython?spm=5 ...

  4. HTML第一周学习笔记(标题重置版)

    适合新手小白的HTML网页编辑 前 言 一.HTML简介基本元素组成 二.实操重点信息 1.引入链接 2.定义数据 3.图片插入 总结 前 言 博客学习记录于3月4日星期四完成上传编辑,作为刚刚新手小 ...

  5. 吴恩达机器学习公开课第一周学习笔记

    Octave是一种编程语言,旨在解决线性和非线性的数值计算问题.Octave为GNU项目下的开源软件,早期版本为命令行交互方式,4.0.0版本发布基于QT编写的GUI交互界面.Octave语法与Mat ...

  6. 20135320赵瀚青LINUX内核分析第一周学习笔记

    赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.概述 第一周的学习内容主 ...

  7. 吴恩达深度学习 | (20) 序列模型专项课程第一周学习笔记

    课程视频 第一周PPT汇总 吴恩达深度学习专项课程共分为五个部分,本篇博客将介绍第五部分序列模型专项的第一周课程:循环序列模型. 目录 1. 为什么选择序列模型? 2. 数学符号 3. 循环神经网络模 ...

  8. Python第一周 学习笔记(1)

    Pyhon环境部署: 系统:Linux最小系统 1.安装git yum install git -y 2.安装Python编译依赖 yum -y install gcc make patch gdbm ...

  9. 大一下第一周学习笔记

    新的学期 ACM依然是我的热爱 怀着一颗热爱的心去学习,去训练 周一 3.1(KMP+Manacher) 回归编程 我一位很优秀的同学说 如果你做的事情是你热爱的,那么你就不会觉得累 acm就是我热爱 ...

  10. 机器学习基础-吴恩达-coursera-(第一周学习笔记)----Introduction and Linear Regression

    课程网址:https://www.coursera.org/learn/machine-learning Week 1 -- Introduction and Linear Regression 目录 ...

最新文章

  1. 可以获取python整数类型帮助的是什么-Python 的数值类型(整数、长整数、浮点数和复数)...
  2. 08_使用TCP/IP Monitor监视SOAP协议
  3. ajax方法完整的事件流
  4. delphi程序项目创建和保存
  5. Sybase数据库在UNIX、Windows上的实施和管理 出版预告
  6. akka与neety_Akka STM –与STM Ref和Agent一起打乒乓球
  7. JPA EntityListeners中的Spring注入的Bean
  8. 小型Web页打包优化(下)
  9. 最新!全球学术排名出炉:21 所中国大学位居世界 100 强
  10. 模式识别算法中英文对照
  11. 【训练计划】--2019-05
  12. jmeter面试题及答案(jmeter接口自动化测试面试题)
  13. java的hsf高速框架_分布式服务框架HSF - osc_n50eizn7的个人空间 - OSCHINA - 中文开源技术交流社区...
  14. IIS无法启动计算机上的服务W3SVC如何修复
  15. 使用心得:[屏幕录制专家]与[Macromedia Captivate]的比拼
  16. java实训报告总结
  17. vue如何实现打印功能
  18. ggplot2-为可视化建模2
  19. 编写Java程序,使用ThreadLocal类,项目中创建账户类 Account,类中包括账户名称name、 ThreadLocal 类的引用变量amount,表示存款
  20. 对国内GIS行业的思考

热门文章

  1. 学生信息管理系统 jsp + servlet + mysql (2020)
  2. marshmallow数据校验的神器(python)
  3. LVM精简卷(Thinly-Provisioned Logical Volumes)的扩容
  4. android 实现qq动画,Android实现仿QQ登录界面背景动画效果
  5. 【CF1056D】Decorate Apple Tree
  6. vue实现li列表的新增删除和修改
  7. 周爱民-javascript
  8. 不能设置一个python sdk_【君奉天|开发日记】Python SDK换唤醒词及设置服务配置
  9. 动手学深度学习day-two
  10. python怎么用sin_Python math.sin() 方法