s = "Li20An24K04ao" ; i = 0
while i < len( s ) :
if "A" <= s[ i ] <= "Z" :
s = s[ : i ] + s[ i + 1 : ]
elif "0" <= s[ i ] <= "9" :
s = s[ : i ] + str( ( int(s[ i ]) + 8 ) % 10 ) + s[ i + 1 : ]
else :
s = s[ : i ] + chr( ( ord( s[ i ] ) – 95 ) % 26 + 97 ) + s[ i + 1 : ]
i = i + 1
执行上述程序后,s的值为( )
import random
a = [ 0 ] *5 ; i = 0 ; flag = True
while i < 5 :
a[ i ] = random.randint( 1 , 8 )
if i % 2 == 1 :
a[ i ] = a[ i ] + a[ i - 1 ]
flag = not flag
elif a[ i ] % 2 == 0 and flag == False:
i -= 1
i += 1
执行该程序段后,列表a的值不可能的是( )
①在电脑端输入出题数量n,依次生成 n道题目,每道题随机给出乘法或加法。
②每回答一道题时,若正确,则在 micro:bit端 LED阵列显示“笑脸”,否则显示“哭脸”。
③答完n道题目后,电脑端显示共练习了几道题,其中有几题回答正确。
电脑端程序:
import random
import serial
ser=serial.Serial()
ser.baudrate=115200
ser.port="COM4"
ser.open()
c=0;i=1
n=int(input("请输入题目数量:"))
while i<=n:
r=random.randint(0,1)
if r==0:
a=random.randint(1,9)
b=random.randint(1,9)
print(str(a)+"×"+str(b)+"=")
else:
a=random.randint(10,99)
b=random.randint(1099)
while ①____:
a=random.randint(10,99)
b=random.randint(10,99)
print(str(a)+"+"+str(b)+"=")
ans=int(input("请输入答案:"))
if r==0 and a*b==ans or r==1 and a+b==ans:
ser.write("H".encode())
c=c+1
else:
ser.write("S".encode())
i=i+1
print("共练习了"+str(n)+"题,其中有"+str(c)+"题回答正确。")
micro:bit端程序:
from microbit import *
while True:
if uart.any():
incoming=str(uart.read(),"UTF-8")
if :
display.show(Image.HAPPY)
else:
display.show(Image.SAD)
序号 | 访问地址 | 功能说明 |
1 | / | 主页,口算练习主要页面 |
2 | /login | 登录页,校对输入的用户名和密码是否正确。如正确则跳转到主页。 |
3 | /history | 历史记录页,显示用户自己答题的记录。 |
4 | /wrong | 错题页,显示用户自己错误的题目及高频错题。 |
根据网站页面规划,至少需要设计个视图函数。其中,访问错题页的URL是//。
①将明文逆序排列,如明文“Python.org”,逆序后为“gro.nohtyP”;
②循环利用数字密钥串的每一位数字 k,依次对字符串中的每个英文字母右移 k 个字母替代,其他字符保持不变。如:输入的数字密钥串为“2024”,“gro.nohtyP”的“n”是第 4个字母,使用密钥串“2024”中的第 4个数字“4”进行右移 4个字母替代,即“n”往后移 4个字母,得到的是“r”,如下表所示:
③经过数字密钥串处理后,将字符串中的每个字符转换为 8位二进制 ASCII码值(不足 8位的左边补 0,补足 8位),并分成两段(左边 4位为高四位,右边 4位为低四位),如字符“i”的二进制 ASCII码值为 01101001,高四位为 0110,低四位为 1001;
④将高四位转化为十六进制数(如 0110转化为 6);
⑤将低四位与高四位执行异或(⊕)操作后转化为十六进制数(提示:0⊕0=0,0⊕1=1,1⊕0=1,1⊕1=0,如 1001⊕0110=1111,1111转化为 F);
⑥依次连接④⑤得到的两位十六进制数,即为该字符的密文,如“i”的密文为“6F”;
⑦将每个字符的密文按照顺序依次连接即为最终的密文。程序运行结果如图所示。
实现上述功能的 Python程序如下,请回答下列问题:
def xor(x,y): #两个一位二进制数异或
if x==y:
return "0"
else:
return "1"
def DtoB(D): #十进制转 8位二进制,高位段和低位段根据规则处理
B=""
for i in range(8):
r=D%2
D=D//2
B=str(r)+B
for j in range(4):
B=B[:j+4] ++ B[j+5:]
return B
mingw=input("请输入明文:")
key=input("请输入数字密钥串:")
mingw=
miw="";pos=0
for i in range(len(mingw)):
if "A"<=mingw[i]<="Z" or "a"<=mingw[i]<="z":
if "A"<=mingw[i]<="Z":
t=ord("A")
else:
t=ord("a")
miw+=chr((ord(mingw[i])-t+int(key[pos]))%26+t)
else:
miw+=mingw[i]
new=""
for i in range(len(miw)):
new+=DtoB(ord(miw[i]))
hex="0123456789ABCDEF";result="";
for i in range(0,len(new),4):
n=int(new[i])
for j in range(1,4):
n=n*2+int(new[i+j])
print("密文为:",result)
while True:
t=pin0.read_analog()
if t>40:
display.show(Image.HAPPY)#在 LED 屏上点阵显示笑脸的图形
sleep(2000)
else:
display.show(Image.SAD)#在 LED 屏上点阵显示哭脸的图形
sleep(1000)
将代码烧录至某智能终端后运行,下列关于代码执行效果描述不正确的是( )