ParisGabriel:Python全栈工程师(0基础到精通)教程 第十课
1. 古代的秤是16两一斤 请问216两是几斤几两
答案:
print(206 // 16, "axe", 216 % 16, "liang")
2. 凌晨0:0:0计时 到现在已经过了63320秒 现在是几时几分几秒
答案:
a = 63320 x = a % 3600 print(a // 3600, x // 60, a % 60)
3. 温度转换:
摄氏度=5.0/9.0*(华氏度-32)
请问100华氏度是多少摄氏度?
如果当前温度是摄氏度温度能否算出华氏度温度是多少?
答案:
c = 5.0 / 9.0 * (100 - 32) print(c) s = 100 * 9.0 / 5.0 + 32 print(s)
4. 输入两个整数,分别用变量x,y绑定
1)打印输出计算这两个数的和
2)打印输出计算这两个数的积
3)打印输出计x的y次方
答案:
x = int(input()) y = int(input()) print(''' %d %d %d ''' % ((y + x), (y * x), (y ** x)))
5. 今天是小明的20岁生日,假设每年都有365天,计算他过了多少个星期天,剩余多少天
答案:
a = 362 * 20 print(a // 7, "yu", a % 7)
6. 分别输入
当前时间的时、分、秒 在终端打印输出当前距离0:0:0过了多少秒
答案:
h = int(input()) m = int(input()) s = int(input()) print(h * 3600 + m * 60 + s, "miao")
7. 北京出租车价格 3公里以内13元
基本单价:2.3元/公里(超出3公里以外)
回空费:超过15公里 每公里 加收单价的50%的会空费(3.45元/公里)
输入公里数 打印费用金额
答案:
a = int(input()) if a > 15: m = (a - 15) * 3.45 + (15 - 3) * 2.3 + 13 elif a > 3: m = (a - 3) * 2.3 + 13 elif 0 < a < 4: m = "13" else: m = "cuo" print(m)
8. 输入一个学生的三科成绩(3个整数:
打印出最高分、最低分、平局分是多少
答案:
L = [] s = 0 for x in range(3): a = input() s += int(a) L += [a] print(max(L)) print(min(L)) print((s / 3))
9. bmi指数(body、mass、index)以称身体质量指数
bmi的计算公式: bmi = 体重/身高的平方
标准表:
bmi< 18.5 体重过轻
18.5<=bmi<24 体重正常
bmi> 24 体重过重
输入体重(公斤) 身高(米) 打印出 bmi的值 并打印体重状况
答案:
a = int(input()) b = float(input()) bmi = a / (b * 2) if bmi < 18.5: print("qing") elif bmi > 24: print("zhong") else: print("zhengchang")
10. 输入一个字符串用s绑定
判断输入有几个空格
将原字符串的左右空格空白符去掉
打印剩余的字符个数
判断输入的是否是数字
如果是数字判断这个数是否大于100
答案:
s = input(":") s.count(" ") s.strip() print(len(s)) if s.isdigit(): if int(s) > 100: print(s, ">100") else: print(s, "<100") else: print("bushi")
11. 输入3行文字,让这三行文字在一个方框内居中显示
显示如下:
+—————+
| hello |
| 123123 |
| |
+—————+
请不要输入中文
答案:
L = [] s = 0 for x in range(1, 10): a = input("plaese input at will string:") L += [a] if len(a) > s: s = len(a) print("+" + "-" * (s) + "+") for m in L: print(("|" + m.center(s) + "|")) print("+" + "-" * (s) + "+")
12. 输入一行字符串,将字符串中Unicode编码值最大的一个字符打印出来(不允许用max函数)
提示:while内可以嵌套if
答案:
x = input("plaese input at will string:") i = 0 a = x[0] while i < len(x): if x[i] > a: a = x[i] i += 1 print(a)
13. 打印 从零开始的浮点数,每个数增加0.5,
打印出10以内的这样的数:
0.0
0.5
1.0
0.5
2.0
…
9.5
答案:
i = 0.0 while i < 10: print(i) i += 0.5
14. 当输入一些数字,输入负数时结束输入
当完成输入完后,打印输入的数是多少
答案:
i = 0 while True: a = int(input("plaese input at will string :")) i += a if a < 0: break print(i)
15. Sn = 1/2+1/4+1/8….+1/(2**n)
求当n等同于100时Sn的值是多少
i = 0 sn = 1 while i <= 100: i += 1 sn += 1 / (2 ** i) print(sn)
16. 用while语句实现打印三角形,输入一个整数表示三角形
的宽度和高度,打印出相应的三角形
如:
1)
*
**
***
****
2)
****
***
**
*
3)
*
**
***
****
4)
****
***
**
*
答案:
a = int(input("plaese input at will integer:")) c = a for x in range(1, a + 1): print((a - x) * " " + "*" * x + x * "*") else: i = 0 while i < a: print((c - a) * " " + a * "*" + a * "*") a -= 1
17. 用for实现:
输入一个数W代表正方形的宽度:
如
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
答案:
w = int(input("plaese inout at will intefer:")) for i in range(1, w + 1): for x in range(1, w + 1): print(x, end = " ") print()
改写上题:
1 2 3 4 5
2 2 3 4 5
3 2 3 4 5
4 2 3 4 5
5 2 3 4 5
答案:
w = int(input("plaese inout at will intefer:")) for i in range(1, w + 1): for x in range(i, w + i): print(x, end = " ") print()
18. 输入任意文字,存于列表L中,当不输入任何内容直接回车后结束输入
打印L列表中的内容
计算你共输入几行内容、和多少个字符
答案:
L = [] x = 0 while True: a = input("please input at will string not input direct Enter break input:") if a == "": break x += len(a) L += [a] print(''' you input content:%s %d line There are %d of them''' % (L, len(L), x))
19. 输入一个整数 (代表树干高度)
打印出如下一颗树
输入:2
*
***
*
*
输入3
*
***
*****
*
*
*
答案:
a = int(input("please input at figure height:")) for x in range(1, a * 2, 2): print(("*" * x).center(a * 2)) else: for i in range(a): print("*".center(a * 2))
20. 任意输入一个整数 判断这个数是否是素数(prime)
素数也叫质数,是只能被1和自身整除的数:
如:2 3 5 7 11 等
提示:
用排除法:判断x是否是素数是,只要让x分别除以:2 3 4 5 …-1
只要整除了 那x不是素数,否则x是素数
答案:
a = int(input("please at will integer whether is prime number:")) if 3 > a >= 0: print(a, "is prime number") else: for x in range(2, a): if a % x == 0: print(a, "not prime number") break else: print(a, "is prime number")
21. 算出100 ~ 1000以内的水仙花数(naricissistic)
水仙花数是指百位的3次方 加上十位的3次方 加上各位的3次方等于原数的数
153=1**3+5**3+3**3 153 370….
答案:
for x in range(100, 1000): if x == (x // 100) ** 3 + ((x % 100) // 10) ** 3 + (x % 10) ** 3: print(x)