摘要:刷題繼續上一期和大家分享了前道題,今天繼續來刷解法一解法二解法三解法一解法二解法三解法四解法一解法二解法三解法一解法二解法三解法一解法二解法一解法一解法二解法一解法二解法三解法四解法一解法一源代碼下載這十道題的
刷題繼續
上一期和大家分享了前10道題,今天繼續來刷11~20
Question 11:Write a program which accepts a sequence of comma separated 4 digit binary numbers as its input and then check whether they are divisible by 5 or not. The numbers that are divisible by 5 are to be printed in a comma separated sequence.Example:
0100,0011,1010,1001
Then the output should be:
1010
Notes: Assume the data is input by console.
def check(x): # check function returns true if divisible by 5 return int(x,2)%5 == 0 # int(x,b) takes x as string and b as base from which # it will be converted to decimal data = input().split(",") data = list(filter(check,data)) # in filter(func,object) function, elements are picked from "data" if found True by "check" function print(",".join(data))解法二
value = [] items=[int(x) for x in input().split(",")] result = " ".join(str(x) for x in items if x %5==0 ) print(",".join(result))解法三
data = input().split(",") data = list(filter(lambda i:int(i,2)%5==0,data)) print(",".join(data))Question 12:
Write a program, which will find all such numbers between 1000 and 3000 (both included) such that each digit of the number is an even number.The numbers obtained should be printed in a comma-separated sequence on a single line.
values = [] for i in range(1000, 3001): s = str(i) if (int(s[0])%2==0) and (int(s[1])%2==0) and (int(s[2])%2==0) and (int(s[3])%2==0): values.append(s) print (",".join(values))解法二
lst = [] for i in range(1000,3001): flag = 1 for j in str(i): # every integer number i is converted into string if ord(j)%2 != 0: # ord returns ASCII value and j is every digit of i flag = 0 # flag becomes zero if any odd digit found if flag == 1: lst.append(str(i)) # i is stored in list as string print(",".join(lst))解法三
def check(element): return all(ord(i)%2 == 0 for i in element) # all returns True if all digits i is even in element lst = [str(i) for i in range(1000,3001)] # creates list of all given numbers with string data type lst = list(filter(check,lst)) # filter removes element from list if check condition fails print(",".join(lst))解法四
lst = [str(i) for i in range(1000,3001)] lst = list(filter(lambda i:all(ord(j)%2 == 0 for j in i),lst )) # using lambda to define function inside filter function print(",".join(lst))Question 13:
Write a program that accepts a sentence and calculate the number of letters and digits.Suppose the following input is supplied to the program:
hello world! 123
Then, the output should be:
LETTERS 10 DIGITS 3
text_input = input() d={"DIGITS":0, "LETTERS":0,"SPACE":0} d["DIGITS"]= sum(c.isdigit() for c in text_input) d["LETTERS"]= sum(c.isalpha() for c in text_input) d["SPACE"] = sum(c.isspace() for c in text_input) for k,v in d.items(): print(k,v)解法二
word = input() letter,digit = 0,0 for i in word: if ("a"<=i and i<="z") or ("A"<=i and i<="Z"): letter+=1 if "0"<=i and i<="9": digit+=1 print("LETTERS {0} DIGITS {1}".format(letter,digit))解法三
word = input() letter,digit = 0,0 for i in word: letter+=i.isalpha() # returns True if alphabet digit+=i.isnumeric() # returns True if numeric print("LETTERS %d DIGITS %d"%(letter,digit)) # two different types of formating method is shown in both solutionQuestion 14:
Write a program that accepts a sentence and calculate the number of upper case letters and lower case letters.Suppose the following input is supplied to the program:
Hello world!
Then, the output should be:
UPPER CASE 1 LOWER CASE 9
word = input() upper,lower = 0,0 for i in word: if "a"<=i and i<="z" : lower+=1 if "A"<=i and i<="Z": upper+=1 print("UPPER CASE {0} LOWER CASE {1}".format(upper,lower))解法二
text_input = input() d={"UPPER CASE":0, "LOWER CASE":0} for c in text_input: if c.isupper(): d["UPPER CASE"]+=1 elif c.islower(): d["LOWER CASE"]+=1 else: pass print ("UPPER CASE", d["UPPER CASE"]) print ("LOWER CASE", d["LOWER CASE"])解法三
word = input() upper = sum(1 for i in word if i.isupper()) lower = sum(1 for i in word if i.islower()) print("UPPER CASE {0} LOWER CASE {1}".format(upper,lower))Question 15:
Write a program that computes the value of a+aa+aaa+aaaa with a given digit as the value of a.Suppose the following input is supplied to the program:
9
Then, the output should be:
11106
a = input() total,tmp = 0,str() # initialing an integer and empty string for i in range(4): tmp+=a # concatenating "a" to "tmp" total+=int(tmp) # converting string type to integer type print(total)解法二
a = input() total = int(a) + int(2*a) + int(3*a) + int(4*a) # N*a=Na, for example a="23", 2*a="2323",3*a="232323" print(total)Question 16:
Use a list comprehension to square each odd number in a list. The list is input by a sequence of comma-separated numbers.
Suppose the following input is supplied to the program:
1,2,3,4,5,6,7,8,9
Then, the output should be:
1,3,5,7,9
values = input() numbers = [x for x in values.split(",") if int(x)%2!=0] print (",".join(numbers))Question 17:
Write a program that computes the net amount of a bank account based a transaction log from console input. The transaction log format is shown as following:
D 100 W 200
D means deposit while W means withdrawal.
Suppose the following input is supplied to the program:
D 300 D 300 W 200 D 100
Then, the output should be:
500
netAmount = 0 while True: s = input() if not s: break values = s.split(" ") operation = values[0] amount = int(values[1]) if operation=="D": netAmount+=amount elif operation=="W": netAmount-=amount else: pass print(netAmount)解法二
total = 0 while True: s = input().split() if not s: # break if the string is empty break cm,num = map(str,s) if cm=="D": total+=int(num) if cm=="W": total-=int(num) print(total)Question 18:
A website requires the users to input username and password to register. Write a program to check the validity of password input by users.Following are the criteria for checking the password:
At least 1 letter between [a-z]
At least 1 number between [0-9]
At least 1 letter between [A-Z]
At least 1 character from [$#@]
Minimum length of transaction password: 6
Maximum length of transaction password: 12
Your program should accept a sequence of comma separated passwords and will check them according to the above criteria. Passwords that match the criteria are to be printed, each separated by a comma.Example
If the following passwords are given as input to the program:
ABd1234@1,a F1#,2w3E*,2We3345
Then, the output of the program should be:
ABd1234@1
import re value = [] items=[x for x in input().split(",")] for p in items: if (len(p)<6 or len(p)>12): break elif not re.search("[a-z]",p): break elif not re.search("[0-9]",p): break elif not re.search("[A-Z]",p): break elif not re.search("[$#@]",p): break elif re.search("s",p): break else: value.append(p) break print (",".join(value))解法二
def is_low(x): # Returns True if the string has a lowercase for i in x: if "a"<=i and i<="z": return True return False def is_up(x): # Returns True if the string has a uppercase for i in x: if "A"<= i and i<="Z": return True return False def is_num(x): # Returns True if the string has a numeric digit for i in x: if "0"<=i and i<="9": return True return False def is_other(x): # Returns True if the string has any "$#@" for i in x: if i=="$" or i=="#" or i=="@": return True return False s = input().split(",") lst = [] for i in s: length = len(i) if 6 <= length and length <= 12 and is_low(i) and is_up(i) and is_num(i) and is_other(i): #Checks if all the requirments are fulfilled lst.append(i) print(",".join(lst))解法三
def check(x): cnt = (6<=len(x) and len(x)<=12) for i in x: if i.isupper(): cnt+=1 break for i in x: if i.islower(): cnt+=1 break for i in x: if i.isnumeric(): cnt+=1 break for i in x: if i=="@" or i=="#"or i=="$": cnt+=1 break return cnt == 5 # counting if total 5 all conditions are fulfilled then returns True s = input().split(",") lst = filter(check,s) # Filter function pick the words from s, those returns True by check() function print(",".join(lst))解法四
import re s = input().split(",") lst = [] for i in s: cnt = 0 cnt+=(6<=len(i) and len(i)<=12) cnt+=bool(re.search("[a-z]",i)) # here re module includes a function re.search() which returns the object information cnt+=bool(re.search("[A-Z]",i)) # of where the pattern string i is matched with any of the [a-z]/[A-z]/[0=9]/[@#$] characters cnt+=bool(re.search("[0-9]",i)) # if not a single match found then returns NONE which converts to False in boolean cnt+=bool(re.search("[@#$]",i)) # expression otherwise True if found any. if cnt == 5: lst.append(i) print(",".join(lst))Question 19:
You are required to write a program to sort the (name, age, score) tuples by ascending order where name is string, age and score are numbers. The tuples are input by console. The sort criteria is:
1: Sort based on name
2: Then sort based on age
3: Then sort by score
The priority is that name > age > score.If the following tuples are given as input to the program:
Tom,19,80 John,20,90 Jony,17,91 Jony,17,93 Json,21,85
Then, the output of the program should be:
[("John", "20", "90"), ("Jony", "17", "91"), ("Jony", "17", "93"), ("Json", "21", "85"), ("Tom", "19", "80")]
lst = [] while True: s = input().split(",") if not s[0]: # breaks for blank input break lst.append(tuple(s)) lst.sort(key= lambda x:(x[0],x[1],x[2])) print(lst)Question 20:
Define a class with a generator which can iterate the numbers, which are divisible by 7, between a given range 0 and n.
class Test: def generator(self,n): return [i for i in range(n) if i%7==0] n = int(input()) num = Test() lst = num.generator(n) print(lst)源代碼下載
這十道題的代碼在我的github上,如果大家想看一下每道題的輸出結果,可以點擊以下鏈接下載:
Python 11-20題
我的運行環境Python 3.6+,如果你用的是Python 2.7版本,絕大多數不同就體現在以下3點:
raw_input()在Python3中是input()
print需要加括號
fstring可以換成.format(),或者%s,%d
謝謝大家,我們下期見!希望各位朋友不要吝嗇,把每道題的更高效的解法寫在評論里,我們一起進步!!!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43935.html
摘要:刷題繼續昨天和大家分享了題,今天繼續來刷題解法一解法二解法一解法二解法一解法一解法一解法一解法一解法一解法二解法一解法二解法一源代碼下載這十道題的代碼在我的上,如果大家想看一下每道題的輸出結果,可以點擊以下鏈接下載題我的運行環境如果你 刷題繼續 昨天和大家分享了21-30題,今天繼續來刷31~40題 Question 31: Define a function which can pr...
摘要:刷題繼續大家好,我又回來了,昨天和大家分享了題,今天繼續來看題解法一解法二解法一解法二解法一解法二解法一解法二解法一解法一解法一解法一解法一解法一源代碼下載這十道題的代碼在我的上,如果大家想看一下每道題的輸出結果,可以點擊以下鏈接下載題 刷題繼續 大家好,我又回來了,昨天和大家分享了31-40題,今天繼續來看41~50題 Question 41: Write a program whi...
摘要:刷題繼續昨天和大家分享了題,今天繼續來刷題解法一解法一解法一解法一解法一解法一解法一解法一解法二解法一解法二解法一解法二源代碼下載這十道題的代碼在我的上,如果大家想看一下每道題的輸出結果,可以點擊以下鏈接下載題 刷題繼續 昨天和大家分享了51-60題,今天繼續來刷61~70題 Question 61: The Fibonacci Sequence is computed based o...
摘要:刷題繼續昨天和大家分享了題,今天繼續來刷最后的題解法一解法二解法一解法二解法一雞兔同籠解法一解法一解法二解法一解法二默認就是 刷題繼續 昨天和大家分享了81-90題,今天繼續來刷最后的91-100題 Question 91: Please write a program which accepts a string from console and print it in rever...
閱讀 3511·2021-11-18 10:02
閱讀 946·2021-09-04 16:48
閱讀 2034·2019-08-30 15:55
閱讀 3533·2019-08-30 15:52
閱讀 1810·2019-08-30 14:08
閱讀 3552·2019-08-30 13:19
閱讀 1137·2019-08-27 10:53
閱讀 3116·2019-08-26 12:11