python编程练习题

P5:判断闰年

输入一个年份,判断其是否为闰年。
非世纪年(不能被100整除的年份)能被4整除的为闰年。(如2004年就是闰年,1999年不是闰年);
世纪年(能被100整除的年份)能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)。

参考示例[python3]:

year = int(input("输入一个年份: "))
if (year % 4) == 0:
   if (year % 100) == 0:
       if (year % 400) == 0:
           print("{0} 是闰年".format(year))   # 整百年能被400整除的是闰年
       else:
           print("{0} 不是闰年".format(year))
   else:
       print("{0} 是闰年".format(year))       # 非整百年能被4整除的为闰年
else:
   print("{0} 不是闰年".format(year))

P6:输出九九乘方表

按照矩阵格式输出九九乘方表,如下图所示:


九九乘方表.png

参考示例[python3]:

for i in range(1, 10):
  print ()
  for j in range(1, i+1):
    print ("%d*%d=%d" % (i, j, i*j),end="  ") #python3中end默认值为"\n"

P7:计算π的值

1.利用下列公式计算π的近似值,直到最后一项的绝对值小于10^-5为止


公式

参考示例[python3]:

n=0.0
p=1
while p<=100000:
    if p%4==1:
        n=n+1/p
    else:
        n=n-1/p
    p=p+2
else:
    print (n*4)

2.用蒙特卡罗法计算π的值。
蒙特卡罗法:基于“随机数”的算法,通过计算落在单位圆内的点与落在正方形内的 点的比值求PI。


蒙特卡罗法
from random import random
from math import sqrt

max = 2000000
count = 0
for i in range (1,max):
    x, y = random(),random()
    dist = sqrt(x**2+y**2)
    if dist <= 1:
        count = count + 1
pi = 4*(count/max)
print("π的值为%f"%pi)

P8:输出素数

输出指定范围内的所有素数

参考示例[python3]:

from math import sqrt

lower = int(input("输入区间最小值: "))
upper = int(input("输入区间最大值: "))
num=[];
for i in range(lower,upper+1):
   if i>1:
      j=2
      for j in range(2,int(sqrt(i+1))):
         if(i%j==0):
            break
      else:
         num.append(i)
print(num)

P9: ASCⅡ码,字符,进制转换

ASCⅡ码与字符互相转换,进制数之间互相转换

参考示例[python3]:

# 用户输入字符
c = input("请输入一个字符: ")
# 用户输入ASCII码,并将输入的数字转为整型
a = int(input("请输入一个ASCII码: "))
# 获取用户输入十进制数
dec = int(input("输入数字:"))

print()
print( c + " 的ASCII 码为", ord(c))
print( a , " 对应的字符为", chr(a))
print()
print("十进制数为:", dec)
print("转换为二进制为:", bin(dec))
print("转换为八进制为:", oct(dec))
print("转换为十六进制为:", hex(dec))
'''
二进制数'100'转十进制:int('100', 2)
八进制数'9'转十进制数:int('09', 8)
十六进制'17'转十进制:int('0x17', 16)
注意必须加引号
'''

P10:字符串操作

字符串a为"Hello",字符串b为"#2#Lisaend"。判断字符串b中是否含有“#2#”,如果有,则将字符串a与字符串b中“#2#”与“end”之间的字符串用空格连接起来,然后输出。输出“biubiubiu”

参考示例[python3]:

a = "Hello"
b = "#2#Lisaend"

if( "#2#" in b) :
    i=b.find('end')
    print(a+' '+b[3:i])
print("biu"*3)

P11:简易计算器

制作一个简易计算器,可以计算两个数之间的加减乘除

参考示例[python3]:

print("**简易计算器**")
str=input("请输入算式:")
operator=""
while operator=="":
    if "+"in str:
        operator = "+"
    elif "-"in str:
        operator = "-"
    elif "*"in str:
        operator = "*"
    elif "/"in str:
        operator = "/"
    else:
        str=input("输入错误,请重新输入:")
x = float(str[:str.find(operator)])
y = float(str[str.find(operator)+1:])
result = {
    "+" : x + y,
    "-" : x - y,
    "*" : x * y,
    "/" : x / y
}
print ("结果为:",result.get(operator))

P12:冒泡排序

冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
示意图:

冒泡排序.gif

参考示例[python3]:

def bubble_sort(list):
    n = len(list)
    for i in range(n - 1):
        for j in range(0, n - 1 - i):
            if list[j] > list[j + 1]:
                list[j], list[j + 1] = list[j + 1], list[j]

P13:选择排序

选择排序(Selection Sort )是一种简单直观的排序算法。它的工作原理如下:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(大)元素。放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
示意图:

选择排序.gif

参考示例[python3]:

def selection_sort(list):
  n = len(list)
  for i in range(0, n -1):
    min_index = i
    for j in range(i + 1, n):
      if list[min_index] > list[j]:
        min_index = j
   if i != min_index:
      list[min_index], list[i] = list[i], list[min_index]

P14:插入排序

插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前的扫描过程中,需要把已排序元素逐步向后挪位,为最新元素提供插入空间。
示意图:

插入排序.gif

参考示例[python3]:

def insertion_sort(list):
  n = len(list)
  for i in range(1, n):
    for j in range(i, 0, -1):
      if list[j] < list[j - 1]:
        list[j], list[j - 1] = list[j - 1], list[j]
      else:
        break

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,313评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,369评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,916评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,333评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,425评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,481评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,491评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,268评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,719评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,004评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,179评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,832评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,510评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,153评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,402评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,045评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,071评论 2 352

推荐阅读更多精彩内容