目录
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. 列表转换为字典
题目:编写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()
题目:创建一个链表。
# coding: UTF-8
if __name__ == '__main__':
ptr = []
for i in range(5):
ptr.append(raw_input('please input: '))
print ptr
题目:反向输出一个链表。
# coding: UTF -8
ptr = []
for i in range(5):
ptr.append(raw_input('plz input: '))
print ptr
ptr.reverse()
print ptr
题目:列表排序及连接。
# 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
题目:放松一下,算一道简单的题目。
# 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
题目:编写一个函数,输入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()
题目:循环输出列表
# coding: UTF-8
if __name__ == '__main__':
s = ["man","woman","girl","boy","sister"]
for i in range(len(s)):
print s[i]
题目:找到年龄最大的人,并输出。请找出程序中有什么问题。
# 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]
题目:字符串排序。
#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
题目:海滩上有一堆桃子,五只猴子来分。
第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。
第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,
第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
# 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
题目: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
题目:八进制转换为十进制
# 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
题目:求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)
题目:连接字符串。
#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)
题目:输入一个奇数,然后判断最少几个 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
题目:两个字符串连接程序。
# coding: UTF-8
a = 'asdg'
b = 'qwer'
c = a+b
print c
题目:回答结果(结构体变量传递)。
# 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
题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。
# coding: UTF-8
for i in range(7):
i = input('plz input %dth num(1-50): '%i)
print '*'*i
题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,
加密规则如下:每位数字都加上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
题目:列表使用实例。
# 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
题目:时间函数举例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()))
题目:时间函数举例2。
# coding: UTF-8
import time
start = time.time()
for i in range(3000):
print i
end = time.time()
print end
print end-start
题目:时间函数举例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)
题目:时间函数举例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\' )')
题目:字符串日期转换为易读的日期格式。
# 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
题目:计算字符串中子串出现的次数。
# coding: utf-8
#find()包含, ncount包含次数
str1 = raw_input('请输入一个字符串:\n')
str2 = raw_input('请输入一个子字符串:\n')
ncount = str1.count(str2)
print ncount
题目:从键盘输入一些字符,逐个把它们写到磁盘文件上,直到输入一个 # 为止。
# 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()
题目:从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"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
题目:有两个磁盘文件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)
题目:列表转换为字典。
# coding: utf-8
l1 = ['1', '2']
l2 = ['a', 'b']
l3 = [1, 2]
d = dict([l1, l2, l3])
print d