基础练习-6
1. 809*??=800*??+9*?? 其中??代表的两位数, 809*??为四位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
程序分析:无。
a = 809
for i in range(10,100):
b = i * a
if b >= 1000 and b <= 10000 and 8 * i < 100 and 9 * i >= 100:
print( b,' = 800 * ', i, ' + 9 * ', i)
2. 八进制转换为十进制
程序分析:无。
if __name__ == '__main__':
n = 0
p = input('input a octal number:\n')
for i in range(len(p)):
n = n * 8 + ord(p[i]) - ord('0')
print( n)
def f8to10(num):
print(("8进制数:", num))
l = str(num)
length = len(l)
sum = 0
for i in range(length):
sum += 8 ** i * int(l[length-1-i])
print(("转成10进制数为:",sum))
f8to10(122)
if __name__ == '__main__':
n = s = 0
L = []
n = input("请输入一个八进制数: \n")
for i in range(len(n)):
L.append(n[i])
L.reverse()
for i in range(len(n)):
s = s + int(L[i])*(8**i)
print( s)
def batoshi(num):
count=0
j=len(num)-1
for each_ch in num:
count+=pow(8,j)*int(each_ch)
j-=1
return count
print(batoshi('122'))
n=input('请输入一个八进制数:')
lost=sum([int(n[-i])*8**(i-1) for i in range(1,len(n)+1)])
print( '转换十进制数为:%s'%lost)
n = reversed('122')
s = 0
for idx,i in enumerate(n):
s += int(i) * pow(8, idx)
print(s)
3. 求0—7所能组成的奇数个数。
程序分析:
组成1位数是4个。
组成2位数是7*4个。
组成3位数是7*8*4个。
组成4位数是7*8*8*4个。
......
if __name__ == '__main__':
sum = 4
s = 4
for j in range(2,9):
print( sum)
if j <= 2:
s *= 7
else:
s *= 8
sum += s
print( 'sum = %d' % sum)
'''
4
32
256
2048
16384
131072
1048576
sum = 8388608
'''
4. 连接字符串。
程序分析:无。
delimiter = ','
mylist = ['Brazil', 'Russia', 'India', 'China']
print( delimiter.join(mylist))
5. 输入一个奇数,然后判断最少几个 9 除于该数的结果为整数。
程序分析:999999 / 13 = 76923。
if __name__ == '__main__':
zi = int(input('输入一个数字:\n'))
n1 = 1
c9 = 1
m9 = 9
sum = 9
while n1 != 0:
if sum % zi == 0:
n1 = 0
else:
m9 *= 10
sum += m9
c9 += 1
print( '%d 个 9 可以被 %d 整除 : %d' % (c9,zi,sum))
r = sum / zi
print( '%d / %d = %d' % (sum,zi,r))
'''
输入一个数字:
13
6 个 9 可以被 13 整除 : 999999
999999 / 13 = 76923
'''
6. 两个字符串连接程序。
程序分析:无。
if __name__ == '__main__':
a = "acegikm"
b = "bdfhjlnpq"
c = a + b
print( c)
7. 回答结果(结构体变量传递)。
程序分析:无。
if __name__ == '__main__':
class student:
x = 0
c = 0
def f(stu):
stu.x = 20
stu.c = 'c'
a= student()
a.x = 3
a.c = 'a'
f(a)
print( a.x,a.c)
8. 读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。
程序分析:无。
if __name__ == '__main__':
n = 1
while n <= 7:
a = int(input('input a number:\n'))
while a < 1 or a > 50:
a = int(input('input a number:\n'))
print( a * '*')
n += 1
'''
input a number:
9
*********
input a number:
5
*****
input a number:
6
******
input a number:
'''
9. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
程序分析:无。
from sys import stdout
if __name__ == '__main__':
a = int(input('输入四个数字:\n'))
aa = []
aa.append(a % 10)
aa.append(a % 100 / 10)
aa.append(a % 1000 / 100)
aa.append(a / 1000)
for i in range(4):
aa[i] += 5
aa[i] %= 10
for i in range(2):
aa[i],aa[3 - i] = aa[3 - i],aa[i]
for i in range(3,-1,-1):
stdout.write(str(aa[i]))
'''
输入四个数字:
1234
9876
'''
10. 列表使用实例。
程序分析:无。
testList=[10086,'中国移动',[1,2,4,5]]
print( len(testList) )
print( testList[1:] )
testList.append('i\'m new here!')
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] )
col2 = [row[1] for row in matrix]
print( col2 )
col2even = [row[1] for row in matrix if row[1] % 2 == 0]
print( col2even)
'''
3
['\xe4\xb8\xad\xe5\x9b\xbd\xe7\xa7\xbb\xe5\x8a\xa8', [1, 2, 4, 5]]
4
i'm new here!
中国移动
3
[10086, [1, 2, 4, 5], "i'm new here!"]
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
[4, 5, 6]
[2, 5, 8]
[2, 8]
'''
11. 时间函数举例1。
程序分析:无。
if __name__ == '__main__':
import time
print( time.ctime(time.time()))
print( time.asctime(time.localtime(time.time())))
print( time.asctime(time.gmtime(time.time())))
'''
Wed Oct 21 17:08:51 2015
Wed Oct 21 17:08:51 2015
Wed Oct 21 09:08:51 2015
'''
12. 时间函数举例2。
程序分析:无。
if __name__ == '__main__':
import time
start = time.time()
for i in range(3000):
print( i)
end = time.time()
print( end - start)
'''
0
1
2
3
4
……
'''
13. 时间函数举例3。
程序分析:无。
if __name__ == '__main__':
import time
start = time.clock()
for i in range(10000):
print( i)
end = time.clock()
print( 'different is %6.3f' % (end - start))
'''
0
1
2
3
4
……
different is 0.014
'''
14. 时间函数举例4,一个猜数游戏,判断一个人反应快慢。
程序分析:无。
if __name__ == '__main__':
import time
import random
play_it = input('do you want to play it.(\'y\' or \'n\')')
while play_it == 'y':
c = input('input a character:\n')
i = random.randint(0,2**32) % 100
print( 'please input number you guess:\n')
start = time.clock()
a = time.time()
guess = int(input('input your guess:\n'))
while guess != i:
if guess > i:
print( 'please input a little smaller')
guess = int(input('input your guess:\n'))
else:
print( 'please input a little bigger')
guess = int(input('input your guess:\n'))
end = time.clock()
b = time.time()
var = (end - start) / 18.2
print( var)
if var < 15:
print( 'you are very clever!')
elif var < 25:
print( 'you are normal!')
else:
print( 'you are stupid!')
print( 'Congradulations')
print( 'The number you guess is %d' % i)
play_it = input('do you want to play it.')
'''
do you want to play it.('y' or 'n')y
input a character:
5
please input number you guess:
input your guess:
60
……
please input a little bigger
input your guess:
29
please input a little smaller
input your guess:
28
3.81868131868e-05
you are very clever!
Congradulations
The number you guess is 28
do you want to play it.
'''
15. 字符串日期转换为易读的日期格式。
程序分析:无。
from dateutil import parser
dt = parser.parse("Aug 28 2015 12:00AM")
print( dt)
16. 计算字符串中子串出现的次数。
程序分析:无。
if __name__ == '__main__':
str1 = input('请输入一个字符串:\n')
str2 = input('请输入一个子字符串:\n')
ncount = str1.count(str2)
print( ncount)
'''
请输入一个字符串:
www.baidu.com
请输入一个子字符串:
baidu
1
'''
17. 从键盘输入一些字符,逐个把它们写到磁盘文件上,直到输入一个 # 为止。
程序分析:无。
if __name__ == '__main__':
from sys import stdout
filename = input('输入文件名:\n')
fp = open(filename,"w")
ch = input('输入字符串:\n')
while ch != '#':
fp.write(ch)
stdout.write(ch)
ch = input('')
fp.close()
'''
输入文件名:
baidufile.txt
输入字符串:
baidu
baidu
google
google#
实例中创建了 baidufile.txt 文件并向其写入 baidu 和 google 两个字符串,查看 baidufile.txt 文件内容:
$ cat baidufile.txt
baidugoogle
'''
18. 从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存。
程序分析:无。
if __name__ == '__main__':
fp = open('test.txt','w')
string = input('please input a string:\n')
string = string.upper()
fp.write(string)
fp = open('test.txt','r')
print( fp.read())
fp.close()
'''
please input a string:
baidu.com
BAIDU.COM
'''
19. 有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中。
程序分析:无。
if __name__ == '__main__':
import string
fp = open('test1.txt')
a = fp.read()
fp.close()
fp = open('test2.txt')
b = fp.read()
fp.close()
fp = open('test3.txt','w')
l = list(a + b)
l.sort()
s = ''
s = s.join(l)
fp.write(s)
fp.close()
20. 列表转换为字典。
程序分析:无。
i = ['a', 'b']
l = [1, 2]
print( dict([i,l]))