练习作业

#!/user/bin/env python
# -*- conding:utf-8 -*-
#使用while循环输入123456 8910
n=0
while n<10:
n=n+1
if n==7:
pass
else:
print(n)

#求1-100所有数的和
n=0
s=0
while n<100:
n=n+1
s=s+n

print(s)

#输出1-100内所有的奇数
n=0
while n<100:
n=n+1
if n%2==0:
pass
else:
print(n)

#输出1-100内所有的偶数
n=0
while n<100:
n=n+1
if n%2==0:
print(n)
else:
pass

#求1-2+3-4+5-6....+99所有数的和
n=0
s=0
while n<99:
n=n+1
if n%2==0:
s=s-n
else:
s=s+n

print(s)

#用户登录(三次机会重试)
n=0
while n<3:
user = input('账号')
pwd = input('密码')
if user =='root' and pwd == '123' :
print('登陆成功')
break
else:
print('登录失败,重新登录')
n=n+1

#请利用print()输出1024 * 768 = xxx:
print('1024 * 768 =',1024 * 768)

#请打印出以下变量的值:
n = 123
f = 456.789
s1 = 'Hello, world'
s2 = 'Hello, \'Adam\''
s3 = r'Hello, "Bart"'
s4 = r'''Hello,
Lisa!'''
print(n,f,s1,s2,s3,s4,sep='\n')

#小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点,并用字符串格式化显示出'xx.x%',只保留小数点后1位:
s1 = 72
s2 = 85
r = (s2-s1)/s1*100
print('Hello,{0},成绩提升了{1:.1f}%'.format('小明',r))

#请用索引取出下面list的指定元素:
L = [
['Apple', 'Google', 'Microsoft'],
['Java', 'Python', 'Ruby', 'PHP'],
['Adam', 'Bart', 'Lisa']
]
# 打印Apple:
print(L[0][0])
# 打印Python:
print(L[1][1])
# 打印Lisa:
print(L[2][2])
#小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮#小明计算他的BMI指数,并根据BMI指数:

#低于18.5:过轻
#18.5-25:正常
#25-28:过重
#28-32:肥胖
#高于32:严重肥胖
#用if-elif判断并打印结果:

# -*- coding: utf-8 -*-
height = 1.75
weight = 80.5
bmi=weight/height**2
if bmi>32:
print('严重肥胖')
elif bmi>28:
print('肥胖')
elif bmi>25:
print('过重')
elif bmi>18.5:
print('正常')
else:
print('过轻')

#请利用Python内置的hex()函数把一个整数转换成十六进制表示的字符串:
n1 = 255
n2 = 1000
print(hex(n1))
print(hex(n2))

#请定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程:
#ax2 + bx + c = 0的两个解。
#提示:计算平方根可以调用math.sqrt()函数:
#import math
#math.sqrt(2)
#1.4142135623730951

import math
def quadratic(a, b, c):
h=b*b-4*a*c
if a==0:
if b==0:
print('no result')
return
else:
return (-c)/b
if h<0:
print('no result')
return
if h==0:
return (-b)/(2*a)
else:
x=((-b)-math.sqrt(h))/(2*a)
y=((-b)+math.sqrt(h))/(2*a)
return x
return y

#以下函数允许计算两个数的乘积,请稍加改造,变成可接收一个或多个数并计算乘积:
def product(x,*args):
for y in args:
x *=y
return x

#汉诺塔的移动可以用递归函数非常简单地实现。
#请编写move(n, a, b, c)函数,它接收参数n,表示3个柱子A、B、C中第1个柱子A的盘子数量,然后打印出把所有盘子从A借助B移动到C的方法,例如:

# -*- coding: utf-8 -*-
def move(n, a, b, c):
if n == 1:
print(a, '-->', c)
return
move(n-1,a,c,b) #把n-1的汉诺塔从a柱移动到b柱,c柱作为中转。
print(a, '-->', c) #把最下方的第n个盘子从a移动到c
move(n-1,b,a,c) #把n-1的汉诺塔从b柱移动到c柱,a柱作为中转。

move(3, 'A', 'B', 'C')

#利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法:
def trim(x):
n=len(x)
while n>0:
if x[0]==' ':
x=x[1:]
elif x[-1:]==' ':
x=x[:-1]
n=n-1
return x

#请使用迭代查找一个list中最小和最大值,并返回一个tuple:
def findMinAndMax(L):
if len(L) == 0:
return (None, None)
min = L[0]
max = L[0]
for i in L:
if min >= i:
min = i
if max <= i:
max = i
return (min, max)

'''如果list中既包含字符串,又包含整数,由于非字符串类型没有lower()方法,所以列表生成式会报错:
>>> L = ['Hello', 'World', 18, 'Apple', None]
>>> [s.lower() for s in L]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <listcomp>
AttributeError: 'int' object has no attribute 'lower'
使用内建的isinstance函数可以判断一个变量是不是字符串:
>>> x = 'abc'
>>> y = 123
>>> isinstance(x, str)
True
>>> isinstance(y, str)
False
请修改列表生成式,通过添加if语句保证列表生成式能正确地执行:
'''

L1 = ['Hello', 'World', 18, 'Apple', None]
L2 = [x.lower() for x in L1 if isinstance(x, str)]

'''杨辉三角定义如下:

1
/ \
1 1
/ \ / \
1 2 1
/ \ / \ / \
1 3 3 1
/ \ / \ / \ / \
1 4 6 4 1
/ \ / \ / \ / \ / \
1 5 10 10 5 1
把每一行看做一个list,试写一个generator,不断输出下一行的list:
'''
# -*- coding: utf-8 -*-

def triangles():
a = [1]
while 1:
yield a
a = [a[x]+a[x+1] for x in range(len(a)-1)]
a.insert(0,1)
a.append(1)

# 期待输出:
# [1]
# [1, 1]
# [1, 2, 1]
# [1, 3, 3, 1]
# [1, 4, 6, 4, 1]
# [1, 5, 10, 10, 5, 1]
# [1, 6, 15, 20, 15, 6, 1]
# [1, 7, 21, 35, 35, 21, 7, 1]
# [1, 8, 28, 56, 70, 56, 28, 8, 1]
# [1, 9, 36, 84, 126, 126, 84, 36, 9, 1]
n = 0
results = []
for t in triangles():
print(t)
results.append(t)
n = n + 1
if n == 10:
break
if results == [
[1],
[1, 1],
[1, 2, 1],
[1, 3, 3, 1],
[1, 4, 6, 4, 1],
[1, 5, 10, 10, 5, 1],
[1, 6, 15, 20, 15, 6, 1],
[1, 7, 21, 35, 35, 21, 7, 1],
[1, 8, 28, 56, 70, 56, 28, 8, 1],
[1, 9, 36, 84, 126, 126, 84, 36, 9, 1]
]:
print('测试通过!')
else:
print('测试失败!')
posted @ 2019-01-22 15:28  离去墨染  阅读(358)  评论(0编辑  收藏  举报