83 求0—7所能组成的奇数个数
0,1,2,3,4,5,6,7
程序分析:
组成1位数是4个。1位数的奇数:1,3,5,7
组成2位数是7*4个。
组成3位数是7*8*4个。
组成4位数是7*8*8*4个。
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
85
输入一个奇数,然后判断最少几个 9 除于该数的结果为整数。
程序分析:999999 / 13 = 76923。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
if __name__ == '__main__':
zi = int(input('输入一个奇数:\n'))
n1 = 1 #循环的初始条件
c9 = 1 #计算9的个数
m9 = 9 #9的个位数字
sum = 9 #由9组成的数字
while n1 != 0: #当n1不等于0的时候执行
if sum % zi == 0: #奇数能被sum整除
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))
第一次循环:
M9 = 9*10=90
Sum = 90+9 =99
C9=2
第二次循环:
M9 = 90*10=900
Sum = 900+99 =999
C9=3
第一次循环:
M9 = 9*10=90
Sum = 90+9 =99
C9=2
第二次循环:
M9 = 90*10=900
Sum = 900+99 =999
C9=3
86 字符串连接
a和b分别为两个字符串
方法一:a+b
方法二:a.join(b)
87回答结果(结构体变量传递)
# 结构体变量传递
if __name__ == '__main__': # 程序入口
class student: # 定义一个student的类
x = 0 # 将0赋值给x
c = 0 # 将0赋值给c
def f(stu): # 定义一个函数f,并对函数f,传递一个stu的参数
stu.x = 20 # 将20赋值给stu的x变量
stu.c = 'c' # 将字符串c赋值给stu的c变量
a = student() # 将student的类方法(函数)赋值给a
a.x = 3 # 将3赋值给a中的x方法
print('a.x=',a.x)
a.c = 'a' # 将a赋值给a中的c方法
print('a.c=',a.c)
f(a) # 将a这个变量作为参数,传递给f函数,调用的是f这个函数的方法
print('a.x=',a.x,'a.c=',a.c) # 打印出变量a的x方法,和c方法
a.x= 3
a.c= a
a.x= 20 a.c= c
88读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*
n = 1 #初始化输入次数为1
while n <= 7: #判断输入数字的次数
a = int(input("input a number:\n"))
while a < 1 or a > 50: #判断输入数字的范围是否是1-50
a = int(input('input a number:\n')) #输入数字整数化
print(a*'*')
n += 1 #循环1次后,n+1
input a number:
4
****
input a number:
5
*****
input a number:
3
***
input a number:
2
**
input a number:
6
******
input a number:
4
****
input a number:
3
***
89 电话传输数据
某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
# // 整除,返回商的整数部分(向下取整)
# / x除以y
from sys import stdout
if __name__=='__main__':
a = int(input("输入4个数字:\n"))
aa = []
aa.append(a % 10) # 个位
aa.append(a // 10 % 10) # 十位
aa.append(a // 100 % 10) # 百位
aa.append(a // 1000) # 千位
aa.reverse()
#print("输入的数字形成矩阵:",aa)
for i in range(4):
aa[i] += 5 #每位数字+5
#print("每位数字+5后:",aa)
aa[i] %= 10 #每位数字除以10后取余数
#print("每位数字除以10取余数后:", aa)
for i in range(2): #交换
aa[i], aa[3 - i] = aa[3 - i], aa[i]
print("交换后",aa)
for i in range(0,4):
stdout.write(str(aa[i]))
输入4个数字:
1234
交换后 [9, 7, 8, 6]
交换后 [9, 8, 7, 6]
9876
90 列表使用实例
a = [1,2,3,4]
print(len(a)) #计算列表长度
print(a[1:]) #打印列表第1个元素之后的所有元素
a.append('i\'m new here!') #向列表添加元素
print(a[-1]) #打印列表最后一个元素
print(a.pop(1)) #删除列表第i+1位元素
matrix = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
print(matrix)
print(matrix[0])
col2 = [row[1] for row in matrix]#得到矩阵的 一列,每行row的第2个就是第2列
print(col2)
col2even = [row[1] for row in matrix if row[1] % 2 == 0]#过滤掉奇数
print(col2even)
4
[2, 3, 4]
i'm new here!
2
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
[1, 2, 3]
[2, 5, 8]
[2, 8]