实验三

1-1

x = list(range(10))
print('整数输出1: ', end = '')
for i in x:
    print(i, end=' ')
print('\n整数输出2: ', end = '')
for i in x:
    print(f'{i:02d}', end = '-') # 指定每个整数输出宽度占两列,不足两列,左边补0
print('\n整数输出3: ', end = '')
for i in x[:-1]:
    print(f'{i:02d}', end = '-')
print(f'{x[-1]:02d}')
print('\n字符输出1: ', end = '')
y1 = [str(i) for i in range(10)] # 函数str()用于把其它类型对象转换成字符串对象
print('-'.join(y1))
print('字符输出2: ', end = '')
y2 = [str(i).zfill(2) for i in range(10)] # 方法.zfill()用于对字符串进行格式化,
print('-'.join(y2))

1—2

# 基础操作练习2: range对象、列表解析、类型转换、字符串方法
print('整数列表: ')
x = list(range(97, 97+26))
for i in x:
    print(i, end = ' ')
print('\n字符列表1: ')
lower_alpha = [chr(i) for i in range(97, 97+26)] # 函数chr()返回整数对应的字符串形式
for i in lower_alpha:
        print(i, end = ' ')
print('\n字符列表2: ')
upper_alpha = [i.upper() for i in lower_alpha] # 方法.upper()用于把小写字母转换成大写
for i in upper_alpha:
    print(i, end = ' ')

1-3

import random
import string
print('用列表存储随机整数: ')
ls = [random.randint(1, 100) for i in range(5)]
print(ls)
print('\n用集合存储随机整数: ')
s = {random.randint(1,100) for i in range(5)}
print(s)
print('\n\n字母串: ', end = '')
alpha = string.ascii_letters
print(alpha)
print(type(alpha))
print('\n数字串:', end = '')
digits = string.digits
print(digits)
print(type(digits))

1-4

# 测试集合解析形式s = {random.randint(1,100) for i in range(5)}生成集合,len(s)一定是5吗?
import random

print('用集合存储随机整数: ')
while True:
    s = {random.randint(1,100) for i in range(5)}
    print(s)
    if len(s) < 5:
        break

2

# 提高一下可能的代码复用率?然后让同学难以理解我的码风?

def nterms(n):
    terms=[]
    a, b = 1, 1
    for i in range(n):
        a, b = b, a+b
        terms.append(a)
        i=i
        #看那个变量没用到的warning不爽所以加了一行
    return terms
# 别人博客里借鉴的极简迭代法,我想不到

def output(array):
    for n in range(len(array)):
        print('{:>5}'.format(array[n]),end=('' if (n+1)%4!=0 else '\n'))
#忍不住还是压行了

if __name__=="__main__":
    output(nterms(18))
    pass

3

import random
lucky_day=random.randint(1,31)
print(lucky_day)
print("Guess Ur lucky day of May")
print("You have 3 chances, have a try:",end='')
i=int(input())
flag=False
n=1
while n<4:
    if i<lucky_day:
        n+=1
        i=int(input("Too early, try again"))
        continue
    elif i>lucky_day:
        n+=1
        i=int(input("Too late, try again"))
        continue
    elif i == lucky_day:
        flag=True
        break
print("Chances used out"if not flag else 'Good, U R right')
print(f"Your lucky day is {lucky_day}")

4

base = [str(x) for x in range(10)] + [ chr(x) for x in range(ord('A'),ord('A')+6)]

def t16(x):
    templist = []
    while True:
        if x == 0: break
        x,rem = divmod(x, 16)
        templist.append(base[rem])

    return ''.join([str(x) for x in templist[::-1]])
    
def t2(x):
    templist = []
    while True:
        if x == 0: break
        x,rem = divmod(x, 2)
        templist.append(base[rem])

    return ''.join([str(x) for x in templist[::-1]])

def t8(x):
    templist=[]
    while True:
        x,rem=divmod(x,8)
        templist.append(rem)
        if x==0:break
    return ''.join([str(x) for x in templist[::-1]])

if __name__=="__main__":
    _input=input("Give me a number: ")
    w=input('Converte to?')
    try:
        x=int(_input)
        y=int(w)
    except:
        print("Give me a number!!!!")
    if y==2:
        print(t2(x))
    elif y==8:
        print(t8(x))
    elif y==16:
        print(t16(x))
    else:
        print('error')
    

posted @ 2021-04-16 16:47  Dustella  阅读(87)  评论(1)    收藏  举报