1.请从标准输入流(控制台)中获取一个正整数 n
,要求计算该数的平方根,并使用 print
语句输出计算后的结果,其中结果需要保留两位小数
n =int(input())
n1 = n**0.5
print("%.2f" % float(n1)) #保留两位小数,2可以随时改变
2.请你定义两个变量 num_1
,num_2
。然后进行以下操作:
- 将
num_1
,num_2
都赋值成为 256。判断num_1
,num_2
是否是同一对象。 - 将
num_1
,num_2
都赋值成为 257。判断num_1
,num_2
是否是同一对象。 - 将
num_1
,num_2
都赋值成为 -5。判断num_1
,num_2
是否是同一对象。 - 将
num_1
,num_2
都赋值成为 -6。判断num_1
,num_2
是否是同一对象。
请你查阅相关资料思考一下,为什么会出现这种现象呢。
def func(num_1,num_2):
print(num_1 is num_2)
func(256,256)
func(257,257)
func(-5,-5)
func(-6,-6)
查了半天资料没看出为什么都是True,有资料说python解释器会缓存[-5,256]之间的值,所以num_1和num_2引用的同一个对象,但是我不管输入多少,返回的都是True。。。。
is运算符是检查对象的身份(及内存地址)是否相同,'=='运算符用来检查值是否相等。
3.请在 solution.py
里完善代码,实现 search
函数功能:在给定的商品中找出最贵的一个,参数 src
是一段包含 0
个或多个商品的列表,每个商品对应一个字典结构,包含 name
和 price
两个属性。在函数体中编写代码,找出给定商品列表中最贵的商品, 并以字符串形式返回该商品的名称。如果给定商品列表的长度为 0
,则返回 None
。
def search(src: list) -> str:
"""
:param src: The list of goods, each element is a dictionary
:return: The name of the most expensive item
"""
# -- write your code here --
if len(src) ==0:
return None
else:
max_price = src[0]["price"] #假设最大值就是第一个
max_name = src[0]["name"]
for i in src:
if i["price"] > max_price: #如果后续大于了这个最大值则把他赋为最大值
max_price = i["price"]
max_name = i["name"]
return max_name
main.py:
import sys
from solution import search
input_path = sys.argv[1]
with open(input_path, 'r', encoding='utf-8') as f:
src = eval(f.read())
print(search(src))
4.给定一个数字 num_1
,一个列表 list_1
,请你把 num_1
加上 num_1
的平方求和再整除以 num_1 + 2
,然后判断得到的数字在不在列表 list_1
中,打印出结果
测试数据:8 [5,3,8,0,10]
import sys
# Get the num, list
num_1 = int(sys.argv[1])
list_1 = eval(sys.argv[2])
# please write your code here
a = (num_1 + num_1**2) // (num_1 + 2)
if a in list_1:
print("True")
else:
print('False')
5.给定一个由大写字母和小写字母组成的字符串 s
,输出 s
中小写字母的个数。
s = input()
num = 0
for i in s:
if i.islower() ==True:
num += 1
else:
num = num
print(num)
6.从标准输入流(控制台)中获取两个正整数 n
,m
(n > m),要求在 for
循环中以 n
为界限进行输出,但其中必须使用 break
语句跳出循环来达到用 print
语句输出 [1,m]
之间所有整数的目的。
n = int(input())
m = int(input())
for i in range(1, n):
# write your code here
# you need to break when i is equal to m
# output the answer to the console according to
# the requirements of the question
if i <= m:
print(i)
else:
break #不满足条件跳出循环