1.请从标准输入流(控制台)中获取一个正整数 n,要求计算该数的平方根,并使用 print 语句输出计算后的结果,其中结果需要保留两位小数

n =int(input())
n1 = n**0.5
print("%.2f" % float(n1))  #保留两位小数,2可以随时改变

2.请你定义两个变量 num_1num_2。然后进行以下操作:

  1. 将 num_1num_2 都赋值成为 256。判断 num_1num_2 是否是同一对象。
  2. 将 num_1num_2 都赋值成为 257。判断 num_1num_2 是否是同一对象。
  3. 将 num_1num_2 都赋值成为 -5。判断 num_1num_2 是否是同一对象。
  4. 将 num_1num_2 都赋值成为 -6。判断 num_1num_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

solution.py

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.从标准输入流(控制台)中获取两个正整数 nm(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  #不满足条件跳出循环