Ⅰ.设定小写字母a—z对应的数字为1—26,大写字母A—Z对应的数字为27—52。
Ⅱ.将某个单词的所有字母按照其对应的数字求和,
Ⅲ.若和为素数(质数)则判断为素单词,否则不是。
如单词“Hello”,字母分别对应的数字为:34、5、12、12、15,其和为34+5+12+12+15=78,不是素数,因此单词“Hello”不是素单词。
def is_Prime(number):#判断number是否为素数
flag=True
for k in range(2,number):
if :
flag=False
break
return flag
s=input("请输入一个单词:")
total=0
for i in range(len(s)):
ch=s[i]
if "A"<=ch<="Z":
total=
elif "a"<=ch<="z":
#将小写字母转换为对应的数字并累加至变量total中,代码略
if :
print(s,"是素单词")
else:
print(s,"不是素单词")
使用列表["+",5]表示申请连续5B的内存,使用列表[2,2]表示回收位置2开始连续2B的内存。若指令集表示为:order=[["+",5],[2,2],["+",8],[8,3]]。随着指令集被执行,1024B连续的内存块会被分割成若干个占用内存和空闲内存。为方便起见,“占用内存”用1表示,“空闲内存”用0表示,故执行上述指令集后,内存占用情况如2图所示:
若将空闲块用链表组织起来,就可以快速查找空闲块和删除空闲块。把连续的空闲块定义为一个节点,每个节点由[空闲块起点, 空闲块长度, 下一个空闲块位置]三部分内容构成。根据2图内存占用情况,创建的空闲块链表如3图所示:
def linkList(allot): #linkList函数功能:根据内存占用0/1列表allot,创建空闲块链表link
link = [ [-1,-1,-1] ] #链表包含一个空头节点
head = tail = 0 ; n = len( allot ) ; i = 0
while i < n :
if allot[ i ] == 0 :
j = i + 1
while j<n and allot[ j ] == 0:
j = j + 1
link.append( [ i , j – i , -1 ] )
link[ tail ][ 2 ] = ▲
tail = len( link ) - 1
else:
i += 1
return head , link
请在▲处填入合适的代码。
若将加框处的代码修改为i = j,是否影响程序的执行结果(选填:是/否)。
#通过文件读入内存分配表allot和指令集order,其代码略。
head , link = linkList ( allot )
for i in range( len( order ) ):
if order[ i ][ 0 ] == " + ": #必须分配连续的空闲块,且由第一个满足空间大小的节点分配
p = head ; q = link[ head ][ 2 ]
while :
p = q ; q = link[ q ][ 2 ]
if q == -1:
print( "内存不足!" )
else:
if link[q][1] == order[i][1]:
else:
link[ q ][ 0 ] = link[ q ][ 0 ] + order[ i ][ 1 ]
link[ q ][ 1 ] = link[ q ][ 1 ] - order[ i ][ 1 ]
else:
p = head ; q = link[ head ][ 2 ]
while q != -1 and link[ q ][ 0 ]<order[ i ][ 0 ]:
p = q ; q = link[ q ][ 2 ]
if link[ p ][ 0 ] + link[ p ][ 1 ] == order[ i ][ 0 ]: #前面节点合并
link[ p ][ 1 ] = link[ p ][ 1 ] + order[ i ][ 1 ]
else:
link.append([ order[ i ][ 0 ] , order[ i ][ 1 ] , q]) #添加节点
link[ p ][ 2 ] = len( link ) - 1
p = link[ p ][ 2 ]
if q != -1 and : #后面节点合并
link[ p ][ 1 ] = link[ p ][ 1 ] + link[ q ][ 1 ]
link[ p ][ 2 ] = link[ q ][ 2 ]
1图 | 2图 |
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['KaiTi','SimHei','FangSong'] #设置中文字体
df = pd.read_excel( "student.xlsx" )
df_err = df[ ▲ ]
请在▲处填入合适的代码。
km = ["语文","数学","英语","物理","化学","生物","政治","历史","地理","技术"]
df1 = df . groupby( "班级" ) .
print( df1 ) #2图所示
#删除“姓名”和“科目数”列
df2 = df1 . drop(["姓名","科目数"] , axis = 1)
g = df2 . sum() #g为Series对象
#统计各科目的人数占总人数的比例
for k in km:
per = / len( df ) * 100
print(k , "比例为:" , round(per,2) , "%")
x =
y = g . values
plt.bar( x , y ) #3图所示
plt.title("各科补弱比例对比")
plt.show()
import random
a=[0]*6
for i in range(6):
a[i]=random.randint(1,10) #随机生成 1到 10范围内的整数
for i in range(5):
if i%2==0 and a[i]>a[i+1]:
a[i],a[i+1]=a[i+1],a[i]
else:
a[i]+=1
print(a)
执行该程序段后,a的值可能的是( )
①小写英文字符按照英文字母“a”“b”……“y”“z”的排列顺序,取其前一个小写英文字符作为密文进行重组;
②规定小写英文字符“a”的前一个密文小写英文字符是“z”;
③其他字符按原字符连接;
例如:明文“My@class”加密后的密文是“Mx@bkzrr”。
实现上述功能的 Python 程序代码如下:
s = input("请输入明文:")
ans = ""
for i in ①____:
print("密文结果为:", ans)
A. if "a"<=i<="z": ans+=chr(ord(i)-1) else: ans+=i | B. if "a"<=i<="z": ans+=chr((ord(i)-ord("a")+25)%26+ord("a")) else: else: ans+=i |
C. if "a"<=i<="z": ans+=chr((ord(i)-1)%26) else: ans+=i | D. if "a"<=i<="z": ans+=chr((ord(i)-ord("a")+25)%26+ord("i")) else: ans+=i |