python经典练习100例(71~100)

目录

71. 编写input()和output()函数

72. 创建链表

73. 反向输出一个链表

74. 列表排序及连接

75. 算一道简单的题目

76. 输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n

77. 循环输出列表

78. 找到年龄最大的人,并输出

79. 字符串排序

80.  猴子分桃

81. 809*??=800*??+9*??

82. 八进制转换为十进制

83. 求0—7所能组成的奇数个数

84. 连接字符串

85. 判断最少几个 9 除于该数的结果为整数

86. 两个字符串连接程序

87. 结构体变量传递

88. 读取7个数,打印出该值个数的*

89. 根据加密规则计算加密后的数据

90. 列表使用实例

91. 时间函数举例1

92. 时间函数举例2

93. 时间函数举例3

94. 时间函数举例4

95. 字符串日期转换为易读的日期格式

96. 计算字符串中子串出现的次数

97. 从键盘输入一些字符,逐个把它们写到磁盘文件上

98. 从键盘输入一个字符串,将小写字母全部转换成大写字母,输出到文件

99. 有两个磁盘文合并输出到一个新文件中

100. 列表转换为字典


71. 编写input()和output()函数

题目:编写input()和output()函数输入,输出5个学生的数据记录。

# coding: UTF-8

l=[]
for i in range(5):
    l.append(input('plz input: '))
for a in l:
    print a,
print

print '******************'

N = 3
student = []
for i in range(5):
    student.append(['','',[]])
print student

def input_stu(stu):
    for i in range(N):
        stu[i][0] = raw_input('num: ')
        stu[i][1] = raw_input('name: ')
        for j in range(3):
            stu[i][2].append(int(raw_input('score: ')))

def output_stu(stu):
    for i in range(N):
        print '%-6s %-10s' %(stu[i][0], stu[i][1])
        for j in range(3):
            print '%-8d'%stu[i][2][j]

def main():
    input_stu(student)
    print student
    output_stu(student)
main()

72. 创建链表

题目:创建一个链表。

# coding: UTF-8

if __name__ == '__main__':
    ptr = []
    for i in range(5):
        ptr.append(raw_input('please input: '))
    print ptr

73. 反向输出一个链表

题目:反向输出一个链表。

# coding: UTF -8

ptr = []
for i in range(5):
    ptr.append(raw_input('plz input: '))
print ptr
ptr.reverse()
print ptr

74. 列表排序及连接

题目:列表排序及连接。

# coding: UTF-8

# 列表排序可用sort(), 列表连接可用 + 号或extend()方法
n = input('plz input number: ')
l1 = []
for i in range(n):
    l1.append(input('ele:'))
print l1
l1.sort()
print l1

m = input('plz input number2: ')
l2 = []
for i in range(n):
    l2.append(input('ele:'))
print l2

l1 = l1+l2
print l1
l1.extend(l2)
print l1

75. 算一道简单的题目

题目:放松一下,算一道简单的题目。

# coding: UTF-8

for i in range(5):
    n = 0
    if i != 1: n+=1
    if i == 3: n+=1
    if i == 4: n+=1
    if i !=4 : n+=1
    if n == 3: print 64+i

76. 输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n

题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n

# coding: UTF-8

def sum1(n):
    a = 0.0
    i = 2
    # for i in range(2, n+1, 2)
    while i<=n:
        a += 1.0/i
        i += 2
    return a

def sum2(n):
    a = 0.0
    i = 1
    while i<=n:
        a += 1.0/i
        i += 2
    return a

def func(n):
    if n % 2 == 0:
        return sum1(n)
    else:
        return sum2(n)

def main():
    n = input('plz input n:')
    print func(n)

main()

77. 循环输出列表

题目:循环输出列表

# coding: UTF-8

if __name__ == '__main__':
    s = ["man","woman","girl","boy","sister"]
    for i in range(len(s)):
        print s[i]

78. 找到年龄最大的人,并输出

题目:找到年龄最大的人,并输出。请找出程序中有什么问题。

# coding: UTF-8

dic = {'zhangwei': 12, 'zhaomin': 20, 'zhangwuji': 22}
s = 'zhangwei'
for a in dic:
    if dic[a] > dic[s]:
        s = a

print s, dic[s]

79. 字符串排序

题目:字符串排序。

#coding: UTF-8

str_l = []
n = input('plz input n: ')
for i in range(n):
    str_l.append(raw_input('plz input str: '))
print str_l
str_l.sort()
print str_l

80.  猴子分桃

题目:海滩上有一堆桃子,五只猴子来分。
第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。
第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,
第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

# coding: UTF-8

#method1
def func(n):
    j = 0
    while j<5 :
        if (n-1)%5 == 0:
            n = 4*(n-1)/5
            j += 1
        else:
            return False
    return True


for i in range(1, 10000):
    if func(i):
        print i
        break

# method2
print "****************"
i =0
j =1
x =0
while i<5:
    x = 4*j
    for i in range(0,5):
        if(x%4<>0):
            break
        else:
            i += 1
        x = (x/4)*5 + 1
    j += 1
print x

# method3
print '******************'
num = input('plz input num of monkey: ')
def fn(n):
    if n==num:
        return 4*x
    else:
        return fn(n+1)*5/4 +1
x =1
while 1:
    count =0
    for i in range(1,num):
        if fn(i)%4 == 0:
            count += 1
    if count == num -1:
        print fn(0)
        break
    else:
        x += 1

81. 809*??=800*??+9*??

题目:809*??=800*??+9*?? 其中??代表的两位数, 809*??为四位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。

# coding: UTF-8

def is_four(n):
    i = n/1000
    if i<10 and i>0:
        return True
    else : return False

def is_three(n):
    i = n/100
    if i<10 and i>0:
        return True
    else : return False

def is_two(n):
    if n>9 and n<100: return True
    else : return False

for i in range(10, 100):
    if is_two(8*i) and is_four(809*i) and is_three(9*i) and (809*i == 800*i + 9*i):
        print i, 809*i

82. 八进制转换为十进制

题目:八进制转换为十进制

# coding: UTF-8

a = 0x123
b = 0o123
c = oct(b)
d = hex(b)
e = bin(b)
f = int(b)
print a , b, c,d,e,f

print "*****************"
n = 0
p = raw_input("plz input a: ")
for i in range(len(p)):
    n = n*8 + ord(p[i]) - ord('0')
    print ord(p[i]), n
print n

print '******************'
from math import pow
a = 0o122
num =0
i = 0
while a != 0o0:
    num += (a & 0b111) * pow(8, i)
    i += 1
    a = a >> 3
    print 'a ',a
print num

83. 求0—7所能组成的奇数个数

题目:求0—7所能组成的奇数个数。

#coding: UTF-8

# 1位数:4, 二位数 8*4, n位数: 7×8×...×8×4
from math import pow
count = 0
a = 4
for i in range(1, 9):
    if i==1:
        count += a
        print count
    if i >= 2:
        count += 7*a*pow(8,i-2)
        print 7*a*pow(8,i-2)

print count

print '************'
def f(n):
    if n==0:
        return 1
    elif n==1:
        return 7
    else:
        return f(n-1)*8
l = []
for i in range(1, 9):
    l.append(f(i-1)*4)
print l
print sum(l)

84. 连接字符串

题目:连接字符串。

#coding: UTF-8

str1 = raw_input('plz input str1: ')
str2 = raw_input('plz input str2: ')
print str1
print str2
print str1+str2

deli = ','
l = ['12','34','56','78']
print deli.join(l)

85. 判断最少几个 9 除于该数的结果为整数

题目:输入一个奇数,然后判断最少几个 9 除于该数的结果为整数。

# coding: UTF-8

a = input('plz input a num: ')
n = 9
count = 1
while n%a <> 0:
    n = n*10 + 9
    count += 1
print count, n

86. 两个字符串连接程序

题目:两个字符串连接程序。

# coding: UTF-8

a = 'asdg'
b = 'qwer'
c = a+b
print c

87. 结构体变量传递

题目:回答结果(结构体变量传递)。

# coding: UTF-8

class student:
    x= 0
    c=0

def func(stu):
    stu.x =20
    stu.c ='sd'

a = student()
a.x = 30
a.c = 'hehe'
print a.x, a.c
func(a)
print a.x, a.c

88. 读取7个数,打印出该值个数的*

题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。

# coding: UTF-8

for i in range(7):
    i = input('plz input %dth num(1-50): '%i)
    print '*'*i

89. 根据加密规则计算加密后的数据

题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,
加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。

# coding: UTF-8

a = input('plz input a num (1000~9999): ')
if a<1000 or a>9999:
    print ('wrong num')
else:
    a1 = (a/1000 + 5) % 10
    a2 = (a%1000/100 +5) % 10
    a3 = (a%100/10 + 5) % 10
    a4 = (a%10 + 5) % 10

a = a4 * 1000 + a1 + a2*10 + a3*100
print '加密后: %d'%a

90. 列表使用实例

题目:列表使用实例。

# coding: UTF-8

testList = ['10086', 'CMCC', [1,2,3,4,5]]
print len(testList)
print testList[1:]

testList.append('hehe')
print len(testList)
print testList[-1]

print testList.pop(-1)
print len(testList)
print testList

matrix = [[1,2,3],
[4,5,6],
[7,8,9]]
print matrix
print matrix[1]

# row[1] for row in matrix
col2 = [row[1] for row in matrix]
print col2

col2even=[row[1] for row in matrix if row[1]%2 == 0]
print col2even

91. 时间函数举例1

题目:时间函数举例1。

# coding:UTF-8

import time
# ctime() 函数把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。
# 如果参数未给或者为None的时候,将会默认time.time()为参数。
# 它的作用相当于 asctime(localtime(secs))。
# time.time()用于获取当前时间戳
print time.ctime(time.time())

# asctime() 函数接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"的24个字符的字符串。
# time localtime() 函数类似gmtime(),作用是格式化时间戳为本地的时间。如果sec参数未输入,则以当前时间为转换标准。 
print time.asctime(time.localtime(time.time()))

# gmtime() 函数将一个时间戳转换为UTC时区(0时区)的struct_time,可选的参数sec表示从1970-1-1以来的秒数。其默认值为time.time(),函数返回time.struct_time类型的对象。(struct_time是在time模块中定义的表示时间>的对象)。
print time.asctime(time.gmtime(time.time()))

92. 时间函数举例2

题目:时间函数举例2。

# coding: UTF-8

import time
start = time.time()
for i in range(3000):
    print i
end = time.time()
print end
print end-start

93. 时间函数举例3

题目:时间函数举例3。

# coding: utf-8

import time

# Python time clock() 函数以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用。
start =time.clock()
for i in range(10000):
    print i
end = time.clock()
print end
print 'different is %6.3f'%(end -start)

94. 时间函数举例4

题目:时间函数举例4,一个猜数游戏,判断一个人反应快慢。

# coding: utf-8

import time
import random

play = raw_input('do you want to play.(\'y\' or \'n\' )')
while play == 'y':
#    c = raw_input('input a char: ')
    # ** 幂运算
    i = random.randint(0,2**32) %100
    start = time.clock()
    a = time.time()
    guess = input('input your guess: ')
    while guess != i:
        if guess>i:
            print 'plz input a smaller num: '
            guess = input('input your guess: ')
        else:
            print 'plz input a bigger num'
            guess = input('input your guess: ')
    end = time.clock()
    b =time.time()
    var = (end-start)/18.2
    print var
    print b-a
    if var < 15:
        print 'y r clever'
    elif var < 25:
        print 'normal'
    else:
        print 'stupid'
    print 'congradulation'
    print 'the num you guess is %d'%i
    play = raw_input('do you want to play.(\'y\' or \'n\' )')

95. 字符串日期转换为易读的日期格式

题目:字符串日期转换为易读的日期格式。

# coding: utf-8

# dateutil parser offers a generic date/time string parser which is able to parse most known formats to represent a date and/or time. 
from dateutil import parser

# parce() func. That's probably the only function you'll need from this module. 
# It offers you an interface to access the parser functionality and extract a datetime type out of a string. 
dt = parser.parse('aug 28 2015 12:00AM')
print dt

96. 计算字符串中子串出现的次数

题目:计算字符串中子串出现的次数。

# coding: utf-8

#find()包含, ncount包含次数
str1 = raw_input('请输入一个字符串:\n')
str2 = raw_input('请输入一个子字符串:\n')
ncount = str1.count(str2)
print ncount

97. 从键盘输入一些字符,逐个把它们写到磁盘文件上

题目:从键盘输入一些字符,逐个把它们写到磁盘文件上,直到输入一个 # 为止。

# coding: UTF-8

# open() write() close()

import sys
filename = raw_input('input filename: ')
fp = open(filename, 'w')
ch = raw_input('plz input str: ')
while ch != '#':
    fp.write(ch)
    sys.stdout.write(ch)
    ch = raw_input('')
fp.close()

98. 从键盘输入一个字符串,将小写字母全部转换成大写字母,输出到文件

题目:从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存。

# coding: utf-8

# upper()

str1 = raw_input('plz input a str: ')
str2 = str1.upper()
print str1
print str2
fp = open('test', 'w')
fp.write(str2)
fp.close()

fp = open('test', 'r')
str3 = fp.read()
print 'file content is %s' % str3

99. 有两个磁盘文合并输出到一个新文件中

题目:有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中。

# coding: utf-8

fp1 = open('A')
fp2 = open('B')
fp3 = open('C', 'w')

str1 = fp1.read()
str2= fp2.read()
# str3=(str1+str2).sort() 字符串不能直接修改元素,排序可借助容器,如list
fp1.close()
fp2.close()

str3 = str1+str2
l = list(str3)
l.sort()
'''for i in l:
    if i == '\n':
        l.remove('\n')
'''
print l
# str3 = str(l) 还是容器

s = ''
str3 = s.join(l)
print str3


fp3.write(str3)
fp3.close()

fp4 = open('C')
str4 = fp4.read()
fp4.close()
print 'A content is %s B content is %s C content is %s' %(str1, str2, str4)

100. 列表转换为字典

题目:列表转换为字典。

# coding: utf-8

l1 = ['1', '2']
l2 = ['a', 'b']
l3 = [1, 2]
d = dict([l1, l2, l3])
print d

 

你可能感兴趣的:(python)