Nowcoder-Python-刷题笔记-持续更新 2020-06-10 字数统计: 2.4k字 | 阅读时长: 10分 文章导航 × 文章目录 1. helloworld实例2. 数字求和3. 数求平方根4. 二次方程5. 计算三角形的面积6. 计算圆的面积6.1. 直接写6.2. 使用函数6.3. Q:想要通过输入半径、同时使用函数调用的方法应该是怎样呢?7. 随机数生成8. 将摄氏温度转华氏温度:9. 通过用户输入两个变量,并相互交换9.1. Tips10. 使用 if…elif…else 语句判断数字是正数、负数或零10.1. Tips:11. 判断字符串是否为数字(※)12. 判断奇数偶数13. 判断用户输入的年份是否为闰年14. TIPS: 概要:今天开始总结python3学习中的一些基本题目,先从基础题目开始,后续涉及到项目类的题目有时间再总结。没有提前装python的同学先在电脑上安装python3,然后在终端看是否安装好。我之前一般使用Atom或者Notepad++编写代码,但是需要安装插件。也可使用VSCode或者pycharm,不过开启时间或稍长,且界面没有Atom和Notepad++那么舒服。个人认为,学习一门编程语言,我自己做过太多弯路,感觉一直在学,但似乎总是没学到东西。所以学习语言,就是要不断的长期的反复的接触它、练习它,才能留下更加深刻的印象。 我使用Notepad++编写代码,需要提前配置插件。使用链接:https://www.php.cn/tool/notepad/428854.html(使用Atom的同学,可以在setting中install中搜索atom-python-run安装,成功之后,执行代码直接按F5。) helloworld实例题目:如何输出”Hello World!”编程: 1print("Hello world!") 输出: 数字求和题目:通过用户输入两个数字,并计算两个数字之和编程:1234num0 = input("请输入第一个数字")num1 = input("请输入第二个数字")sum = num0 + num1print(sum) 输出:原因:没有定义输入类型,被当作字符串连接。 改进:1234num0 = input("请输入第一个数字")num1 = input("请输入第二个数字")sum = int(num0) + int(num1)print(sum)输出:成功! 数求平方根题目:通过用户输入一个数字,并计算这个数字的平方根。如:数学语言为:√ ̄16=4。思路:运用sqrt函数。编程:123456num = input("请输入数字: ")if (num > 0): root = sqrt(num) print(root)else : print("数字输入不正确,请重新输入!")输出:原因:num没有定义类型 改进1:将 num>0 改为 int(num)>0输出:原因:sqrt不是现成函数。 改进2:123456int(num) = input("请输入数字: ")if (num > 0): root = num ** 0.5 print(root)else : print("数字输入不正确,请重新输入!")输出:原因:定义类型位置错误 改进3:123456num = int(input("请输入数字: "))if (num > 0): root = num ** 0.5 print(root)else : print("数字输入不正确,请重新输入!")输出: 官方答案:程序只适用于正数。负数和复数可以使用以下的方式:导入复数数学模块,使用了cmath.sqrt()函数:1234import cmathnum = int(input("请输入一个数字: "))root = cmath.sqrt(num)print('{0} 的平方根为 {1:0.3f}+{2:0.3f}j'.format(num,root.real,root.imag))输出:(注意print中浮点数的格式) 二次方程通过用户输入数字,并计算二次方程:二次方程式 ax**2 + bx + c = 0(a、b、c 用户提供,为实数,a ≠ 0) 思路:使用求根公式编程:12345678910import cmatha = float(input("请输入a:"))b = float(input("请输入b:"))c = float(input("请输入c:"))d = cmath.sqrt(b*b - 4*a*c)root1 = (-b + d) / 2*aroot2 = (-b - d) / 2*aprint('方程{0}x**2 + {1}x + {2} = 0的解为:{3:0.3f}和{4:0.3f}'.format(a,b,c,root1,root2))输出:原因:不允许在复杂格式说明符中填充零(注意此处和上一题的不同之处,因为开平方根中含有实部和虚部,即root1和root2均含两项,所以只用0.3f是不正确的。) 改进:12345678910import cmatha = float(input("请输入a:"))b = float(input("请输入b:"))c = float(input("请输入c:"))d = cmath.sqrt(b*b - 4*a*c)root1 = (-b + d) / 2*aroot2 = (-b - d) / 2*aprint('方程{0}x**2 + {1}x + {2} = 0的解为:{3}和{4}'.format(a,b,c,root1,root2))输出: 官方答案:1234567891011121314import cmath a = float(input('输入 a: '))b = float(input('输入 b: '))c = float(input('输入 c: ')) # 计算d = (b**2) - (4*a*c) # 两种求解方式sol1 = (-b-cmath.sqrt(d))/(2*a)sol2 = (-b+cmath.sqrt(d))/(2*a) print('结果为 {0} 和 {1}'.format(sol1,sol2)) 计算三角形的面积题目:用户输入三角形三边长度,并计算三角形的面积:思路:三角形面积计算公式编程:1234567891011import cmatha = int(input("请输入第一条边边长:"))b = int(input("请输入第二条边边长:"))c = int(input("请输入第三条边边长:"))d = (a + b + c)/2s = (d * (d-a) * (d-b) * (d-c))**0.5print("由{0}、{1}、{2}组成的三角形面积为:{3}".format(a,b,c,s))输出: 官方答案:12345678910a = float(input('输入三角形第一边长: '))b = float(input('输入三角形第二边长: '))c = float(input('输入三角形第三边长: ')) # 计算半周长s = (a + b + c) / 2 # 计算面积area = (s*(s-a)*(s-b)*(s-c)) ** 0.5print('三角形面积为 %0.2f' %area) 计算圆的面积圆的面积公式为 :S = πr^2,公式中 r 为圆的半径。编程: 直接写12345import cmathr = float(input("请输入圆的半径: "))PI = 3.14s = PI * r * rprint("半径为{0}的圆的面积为{1:0.3f}".format(r,s)) 输出: 使用函数编程:12345678def circle_area(r): PI = 3.14 s = PI * r * r return s #调用方法a = int(input("请输入半径:")print("面积为:%0.2f" %circle_area(a))输出:原因: 改进:123456789def circle_area(r): PI = 3.14 s = PI * r * r return s #调用方法r = int(input("请输入半径:")area = circle_area(r)print("面积为:%0.2f" %area)输出: 官方答案:1234567# 定义一个方法来计算圆的面积def findArea(r): PI = 3.142 return PI * (r*r) # 调用方法print("圆的面积为 %.6f" % findArea(5))输出: Q:想要通过输入半径、同时使用函数调用的方法应该是怎样呢?随机数生成题目:生成 0 ~ 9 之间的随机数编程:123import random print(random.randint(0,9))输出:原因:文件名和函数包random同名,改一下文件名即可。 改进:输出: 将摄氏温度转华氏温度:思路:摄氏温度转华氏温度的公式为 celsius * 1.8 = fahrenheit - 32编程:123celsius= float(input("请输入摄氏温度:"))fahreheit = celsius * 1.8 + 32print("{0}对应的华氏温度为{1}。".format(celsius,fahreheit))输出: 官方答案:12345celsius = float(input('输入摄氏温度: '))# 计算华氏温度fahrenheit = (celsius * 1.8) + 32print('%0.1f 摄氏温度转为华氏温度为 %0.1f ' %(celsius,fahrenheit)) 通过用户输入两个变量,并相互交换编程:12345678x = input("请输入x的值: ")y = input("请输入y的值: ")t = xx = yy = tprint("x交换之后的值为:{0},y交换之后的值为:{1}".format(x,y))输出: 官方答案:12345678910x = input('输入 x 值: ')y = input('输入 y 值: ') # 创建临时变量,并交换temp = xx = yy = temp print('交换后 x 的值为: {}'.format(x))print('交换后 y 的值为: {}'.format(y)) Tips这里没有定义变量x,y类型可行 使用 if…elif…else 语句判断数字是正数、负数或零编程:1234567a = (input("请输入一个数字:"))if (a > 0): print("{}为正数".format(a))elif (a < 0): print("{}为负数".format(a))else : print("{}为零".format(a))输出:原因:没有定义a的类型 改进:1234567a = float(input("请输入一个数字:"))if (a > 0): print("{}为正数".format(a))elif (a < 0): print("{}为负数".format(a))else : print("{}为零".format(a))输出: 官方答案1:1234567num = float(input("输入一个数字: "))if num > 0: print("正数")elif num == 0: print("零")else: print("负数")官方答案2:12345678num = float(input("输入一个数字: "))if num >= 0: if num == 0: print("零") else: print("正数")else: print("负数") Tips:if …else…语句中条件语句不用括号括起来也可。 判断字符串是否为数字(※)通过创建自定义函数 is_number() 方法来判断字符串是否为数字:编程:12345678910111213141516171819202122232425262728293031def is_number(s): try: float(s) return True except ValueError: pass try: import unicodedata unicodedata.numeric(s) return True except (TypeError, ValueError): pass return False # 测试字符串和数字print(is_number('apple'))print(is_number('222'))print(is_number('-3'))# 测试Unicode# 泰语 2print(is_number('๒')) # True# 中文数字print(is_number('四')) # True# 版权号print(is_number('©')) # False输出: 官方答案:1234567891011121314151617181920212223242526272829303132def is_number(s): try: float(s) return True except ValueError: pass try: import unicodedata unicodedata.numeric(s) return True except (TypeError, ValueError): pass return False # 测试字符串和数字print(is_number('foo')) # Falseprint(is_number('1')) # Trueprint(is_number('1.3')) # Trueprint(is_number('-1.37')) # Trueprint(is_number('1e3')) # True # 测试 Unicode# 阿拉伯语 5print(is_number('٥')) # True# 泰语 2print(is_number('๒')) # True# 中文数字print(is_number('四')) # True# 版权号print(is_number('©')) # False 判断奇数偶数题目:判断一个数字是否为奇数或偶数编程:123456num = int(input('请输入一个整数:'))if (num % 2 == 0): print("{}为偶数".format(num))else : print("{}为奇数".format(num))输出: 判断用户输入的年份是否为闰年编程:12345678year = int(input("请输入年份:"))if (year % 400 ==0): print("{}为闰年。".format(year))elif (year % 100 != 0)&(year % 4 ==0): print("{}为闰年。".format(year))else : print("{}不是闰年。".format((year))输出:原因:??? 官方答案:1234567891011year = int(input("输入一个年份: "))if (year % 4) == 0: if (year % 100) == 0: if (year % 400) == 0: print("{0} 是闰年".format(year)) # 整百年能被400整除的是闰年 else: print("{0} 不是闰年".format(year)) else: print("{0} 是闰年".format(year)) # 非整百年能被4整除的为闰年else: print("{0} 不是闰年".format(year)) 输出: TIPS:1,关于print的输出格式:如果该语句中含有多个变量输出,则应该使用’{}、{}…’.format()的组合形式;如果只用一个变量输出,则可以使用’%0.3f’ %veriable的形式(也可用’%0.3f %0.3f’ %(v1,v2))。2,输出语句中,不建议把计算公式直接写入其中,即直接将结果变量写在print语句中。3,定义函数的方法:def 函数名(输入变量)…… return xxx 。 赏 谢谢你请我吃糖果 支付宝 微信 Nowcoder 刷题 python 扫一扫,分享到微信