请稍候,加载中....

Python语法二级(二)

1. 编写⼀个程序,根据给定的公式进⾏计算并输出值:Q = [(2 * C * D)/ H]的平⽅根。C和H的常量:C为50,H为30。D为变量,其值应以逗号分隔,按顺序输⼊到程序中。

   例:假定以逗号(英⽂逗号)分隔的输⼊序列已赋予程序:
   100,150,180
   则程序应输出:
   18,22,24

   代码示例:

# 定义常量
C = 50;
H = 30;
# 输出数组对应对个输入
value = []

inputs = "100, 150, 180"
# 可以使用input函数接受输入
# items = [x for x in input().split(',')]
# 直接使用inputs模拟
items = [x for x in inputs.split(',')]

for d in items:
    value.append(str(math.sqrt(2*C*float(d)/H)))
else:
    print(','.join (value))

   讲解:

   常量名为大写,需要注意的是列表项使用join拼接时,数字必须转换成字符串类型


2. 编写⼀个程序,该程序将X,Y两位数字作为输⼊并⽣成⼀个⼆维数组。 数组的第i⾏和第j列中的元素值应为i * j。注意:i = 0,1, ..,X-1; j = 0,1, ..., Y-1。
   假设将以下数字赋予程序:
   3,5
   则程序应输出:
   [[0,0,0,0,0],[0,1,2,3,4],[0,2,4,6,8]] ,即3行5列数

   代码示例:

input_str = input()
dimensions = [int(x) for x in input_str.split(',')]
rowNum = dimensions[0]
colNum = dimensions[1]
multilist = []
for row in range(rowNum):
	multilist[row]= []
	for col in range(colNum):
	    multilist[row].append(row*col)
else:
    print(multilist)

讲解:

Python中列表是不能通过不存在的下标直接赋值的,比如:lists=[], lists[1] = 1就会报错,通过append向列表添加数据


3. 编写⼀个程序,该程序接受以逗号分隔的单词作为输⼊,并在按字⺟顺序排序后,将这些单词以逗号分隔的形式输出。
    假设在程序中输⼊以下单词:
          without,hello,bag,world
    则程序应输出:
         bag,hello,without,world

    代码示例:

items = [x for x in input().split(',')]
items.sort()
print(','.join(items))

讲解:

字符串排序默认以字符串字符顺序的ascii码值进行排序,sort方法还可以传入key选择某一个位置字符排序, 比如:lists.sort(key=lambda x:x[2])reverse排序方式


 

4. 编写⼀个程序,接受用户输⼊,用户按下无输入回车键终止,将用户所有的输⼊的改为⼤写后输出。
   假设在程序中输⼊以下:
       Hello world
      Practice makes perfect
  则程序应输出:
      HELLO WORLD
      PRACTICE MAKES PERFECT

  代码示例:    

lines = []
while True:
    s = input()
    if s:
        lines.append(s.uppper())
 	else:
 	    break;

for sentence in lines:
 	print(sentence)

讲解:

字符串大小写转换方法:upper(),lower(),title()


 

5. 编写⼀个程序,该程序接受⼀系列以空⽩格分隔的单词作为输⼊,并在删除所有重复单词且按照字⺟顺序排序后,输出这些单词。
   假设在程序中输⼊以下:
        hello world and practice makes perfect and hello world again
   则程序应输出:
        again and hello makes perfect practice world

   代码示例:

s = input()
words = [word for word in s.split(" ")]
print("".join (sorted(list(set(words))))

讲解:

通常都可以借助集合来进行去重处理,比如爬虫中,防止重复爬取网址,就可以通过集合来收集待爬取的网址


 

6. 编写⼀个程序,该程序接受以逗号分隔的4位⼆进制数字序列作为输⼊,并检查这些数字是否能被5整除。将能被5 整除的数字以逗号分隔顺序打印。
例:
0100,0011,1010,1001
则程序应输出:
1010
注意:假设数字是通过控制台输⼊的

代码示例:

value =[]
items = [x for x in input().split(',')]
for p in items:
    int_p = int(p,2)
    if not int_p % 5:
         value.append(p)
print(value)

讲解:

int函数可以将数字字符串转换为10进制整数,第二个参数是字符串数字的进制


 

7. 编写⼀个程序,使该程序接受⼀个句⼦,并计算该句中字⺟和数字的数量。
    假设输⼊以下: hello world!123
    则程序应输出:
         LETTERS 10
         DIGITS 3

    代码示例:

inputs = input()
dicts = {"DIGITS":0, "LETTERS":0}
for word in inputs:
    if word.isdigit():
        d["DIGITS"] += 1
    elif word isalpha():
        d["LETTERS"]+=1 
    else:
        pass
print("LETTERS", d["LETTERS"])
print("DIGITS", d["DIGITS"])

讲解:

掌握str.isalnum,str.isalpha, str.isdigit, str.isdecimal的区别与用法

 


Python学习手册-