实验3 控制语句与组合数据类型应用编程

# 基础操作练习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()用于对字符串进行格式化,指定宽度为两列,不足左边补0
print('-'.join(y2))

# 基础操作练习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 = '')

# 基础操作练习3: 标准库random,string
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))

# 测试几何解析形式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

random.randint(1,100)生成的随机整数范围是[1,100]包括100  range(1,100)范围是[1,100)不包括100

使用s = {random.randint(1,100) for i in range(5)}  len(s)不一定是5,因为集合里的元素不能重复,而生成的随机数可能是重复的,所有len(s)不一定是5

x = 0
y = 1
i = [0,1]
while max(i) <1000:
    z = i[x] + i[y]
    i.append(z)
    x = x + 1
    y = y + 1
if max(i) > 1000:
    i.remove(max(i))
c = 0
for m in i:
    print(f'{m:>8}',end = '')
    c =c + 1
    if c % 5 == 0:
        print(end = '\n')


import random
print('猜猜2021年5月哪一天会是你的lucky day')
x = int(input('你有三次机会,猜吧(1~31):'))
y = random.randint(1,31)
if x == y:
exit()
if x > y:
print('猜晚啦,你的lucky day在前面,前面')
z = int(input('再猜再猜:'))
if z == y:
exit()
if z > y:
print('猜晚啦,你的lucky day在前面,前面')
u = int(input('再猜再猜:'))
if u == y:
exit()
if u > y:
print('猜晚啦,你的lucky day在前面,前面')
print('次数用完啦')
print(f'2021年5月你的lucky day是{y}号')
exit()
if u < y:
print('猜早啦,你的lucky day还早呢')
print('次数用完啦')
print(f'2021年5月你的lucky day是{y}号')
exit()
if x < y:
print('猜早啦,你的lucky day还早呢')
a2 = int(input('再猜再猜:'))
if a2 == y:
exit()
if a2 > y:
print('猜晚啦,你的lucky day在前面,前面')
a3 = int(input('再猜再猜:'))
if a3 == y:
exit()
if a3 > y:
print('猜晚啦,你的lucky day在前面,前面')
print('次数用完啦')
print(f'2021年5月你的lucky day是{y}号')
exit()
if a3 < y:
print('猜早啦,你的lucky day还早呢')
print('次数用完啦')
print(f'2021年5月你的lucky day是{y}号')
exit()

n,x = eval(input('输入十进制整数x和要转换的进制n(2或8或16):'))
a = [0,1,2,3,4,5,6,7,8,9,'A','B','C','D','F']
b = []
while True:
s = n // x
y = n % x
b = b + [y]
if s==0:
break
n = s
for i in b[::-1]:
print(a[i],end ='')

 

 

 

 

posted @ 2021-04-16 21:43  申富明  阅读(183)  评论(2)    收藏  举报