标签:24 Python random 35 列表 76 print 100 li
本专栏主要涉及到100道Python零基础编程题,大部分题型翻译于Github上的100+ Python challenging programming exercises,如果小伙伴对于英语没有阅读障碍,可以去Github上阅读。专栏共有100题,分为四章,每章25道题;本篇博客为Python零基础编程的第四篇【76-100】;好了,废话不多说,开始展开;
第76题
问题:请编写一个程序输出O和10之间的随机偶数使用随机模块和列表理解。
提示:对列表中的随机元素使用random.choice()。
import random
print(random.choice([i for i in range(11) if i%2==0]))
第77题
问题:请编写一个程序输出一个随机数,它可以被5和7整除,在0和10之间,使用随机模块和列表理解。
提示:对列表中的随机元素使用random.choice()。
import random
print(random.choice([i for i in range(201) if i%5==0 and i%7==0]))
第78题
问题:请编写一个程序生成一个包含100到200之间的5个随机数的列表。
提示:使用random.sample()生成一个随机值列表。
import random
print(random.sample(range(100), 5))
第79题
问题:请编写一个程序随机生成一个列表,其中包含100到200之间的5个偶数。
提示:使用random.sample()生成一个随机值列表。
import random
print(random.sample([i for i in range(100,201) if i%2==0], 5))
第80题
问题:请编写一个程序,随机生成一个列表,从1到1000(含1000),有5个数字,可以被5和7整除。
提示:使用random.sample()生成一个随机值列表。
import random
print(random.sample([i for i in range(1,1001) if i%5==0 and i%7==0], 5))
第81题
问题:请写一个程序来随机打印一个7到15之间的整数(包括15)。
提示:使用random.randrange()到一个给定范围内的随机整数。
import random
print(random.randrange(7,16))
第82题
问题:请编写一个程序来压缩和解压字符串"hello world!hello world!hello world!hello world!"。
提示:使用zlib.compress()和zlib.decompress()来压缩和解压缩字符串。
import zlib
s = b'hello world!hello world!hello world!hello world!'
t = zlib.compress(s)
print(t)
print(zlib.decompress(t))
第83题
问题:请编写一个程序打印100次“1+1”执行的运行时间。
提示:使用timeit()函数测量运行时间。
from timeit import Timer
t = Timer("for i in range(100):1+1")
print(t.timeit())
第84题
问题:请编写一个程序洗牌和打印列表[3,6,7,8]。
提示:使用shuffle()函数洗牌列表。
from random import shuffle
li = [3,6,7,8]
shuffle(li)
print(li)
第85题
问题:请编写一个程序洗牌和打印列表[3,6,7,8]。
提示:使用shuffle()函数洗牌列表。
from random import shuffle
li = [3,6,7,8]
shuffle(li)
print(li)
第86题
问题:请编写一个程序,生成主语在 ["I", "You"],动词在["Play", "Love"]中,对象在["Hockey","Football"]中的所有句子.
提示:使用list[index]表示法从列表中获取元素。
subjects=["I", "You"]
verbs=["Play", "Love"]
objects=["Hockey","Football"]
for i in range(len(subjects)):
for j in range(len(verbs)):
for k in range(len(objects)):
sentence = "%s %s %s." % (subjects[i], verbs[j], objects[k])
print(sentence)
第87题
问题:请写一个程序打印列表,删除后删除偶数[5,6,77,45,22,12,24]。
提示:使用列表理解从列表中删除一组元素。
li = [5,6,77,45,22,12,24]
li = [x for x in li if x%2!=0]
print(li)
第88题
问题:使用列表理解,请编写程序,删除[12,24,35,70,88,120,155]中可被5和7整除的删除数后,打印列表。
提示:使用列表理解从列表中删除一组元素。
li = [12,24,35,70,88,120,155]
li = [x for x in li if x%5!=0 and x%7!=0]
print(li)
第89题
问题:使用列表理解法,请编写一个程序,去掉[12,24,35,70,88,120,155]中的第0,2,4,6位置上的元素后打印列表。
提示:使用列表理解从列表中删除一组元素。使用enumerate()来获取(索引,值)元组。
li = [12,24,35,70,88,120,155]
li = [x for (i,x) in enumerate(li) if i%2!=0]
print(li)
第90题
问题:使用列表理解,编写一个程序生成一个358三维数组,每个元素为0。
提示:使用列表理解来创建数组。
array = [[ [0 for col in range(8)] for col in range(5)] for row in range(3)]
print(array)
第91题
问题:利用列表理解,请编写一个程序,去掉[12,24,35,70,88,120,155]中的第0,第4,第5个数字后,将列表打印出来。
提示:使用列表理解从列表中删除一组元素。使用enumerate()来获取(index, value)元组。
li = [12,24,35,70,88,120,155]
li = [x for (i,x) in enumerate(li) if i not in (0,4,5)]
print(li)
第92题
问题:通过使用列表理解,请编写一个程序,在[12,24,35,24,88,120,155]中删除值24后打印列表。
提示:使用列表的remove方法删除一个值。
li = [12,24,35,24,88,120,155]
li = [x for x in li if x!=24]
print(li)
第93题
问题:对于两个已知链表[1,3,6,78,35,55]和[12,24,35,24,88,120,155],编写一个程序来生成一个元素为上述两个链表交集的链表。
提示:使用set()和"&="进行集合相交操作。
set1=set([1,3,6,78,35,55])
set2=set([12,24,35,24,88,120,155])
set1 &= set2
li=list(set1)
print(li)
第94题
问题:对于给定的列表[12,24,35,24,88,120,155,88,120,155],编写一个程序来打印这个列表-删除所有重复的值与原始顺序保留。
提示:使用set()来存储一些没有重复的值。
def removeDuplicate( li ):
newli=[]
seen = set()
for item in li:
if item not in seen:
seen.add( item )
newli.append(item)
return newli
li=[12,24,35,24,88,120,155,88,120,155]
print(removeDuplicate(li))
第95题
问题:定义一个类Person和它的两个子类:Male和Female。所有的类都有一个方法“getGender”,它可以打印“Male”为男性类,“Female”为女性类。
提示:使用子类(Parentclass)来定义子类。
class Person(object):
def getGender( self ):
return "Unknown"
class Male( Person ):
def getGender( self ):
return "Male"
class Female( Person ):
def getGender( self ):
return "Female"
aMale = Male()
aFemale= Female()
print(aMale.getGender())
print(aFemale.getGender())
第96题
问题:请编写一个程序,计算并打印由控制台输入的字符串中的每个字符的数量。
示例:如果下面的字符串作为程序的输入:abcdefgab;
那么,程序的输出应该是:a,2 c,2 b,2 e,1 d,1 g,1 f,1;
提示:使用dict存储键/值对。使用dict.get()方法查找具有默认值的键。
dic = {}
s=input()
for s in s:
dic[s] = dic.get(s,0)+1
print('\n'.join(['%s,%s' % (k, v) for k, v in dic.items()]))
第97题
问题:请编写一个程序,从控制台接收一个字符串,并以相反的顺序打印出来。
示例:如果下面的字符串作为程序的输入:rise to vote sir;
那么,程序的输出应该是:ris etov ot esir;
提示:使用list[::-1]以相反的顺序迭代一个列表。
s=input()
s = s[::-1]
print(s)
第98题
问题:请编写一个程序,从控制台接收一个字符串,并打印具有偶数索引的字符;
示例:如果下面的字符串作为程序的输入:H1e2l3l4o5w6o7r8l9d
那么,程序的输出应该是:Helloworld;
提示:使用list[:2]来迭代第2步中的列表。
s=input()
s = s[::2]
print(s)
第99题
问题:请写一个程序,打印[1,2,3]的所有排列;
提示:使用itertools.permutations)得到list的排列。
import itertools
print(list(itertools.permutations([1,2,3])))
第100题
问题:写一个程序来解决一个中国古代的经典难题:我们数农场里的鸡和兔子中有35个头和94条腿。我们有多少只兔子和多少只鸡?
提示:使用for循环来迭代所有可能的解决方案。
def solve(numheads,numlegs):
ns='No solutions!'
for i in range(numheads+1):
j=numheads-i
if 2*i+4*j==numlegs:
return i,j
return ns,ns
numheads=35
numlegs=94
solutions=solve(numheads,numlegs)
print(solutions)
好了,到这里为止,Python零基础编程100题第四篇【76-100】题已经结束了,小伙伴们好好练习,先自己思考思考,不会做的情况下在看答案哦,这样才能够提高的更快!如果哪里有疑问的地方,欢迎在评论区留言,我会不断完善的!
来都来了,确定不留下点什么嘛,嘻嘻~
标签:24,Python,random,35,列表,76,print,100,li 来源: https://blog.csdn.net/qq_38230663/article/details/117662819
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。