python基础训练day27

python基础训练day27

小白打卡第27天!

题目来源

这里

      • python基础训练day27
        • 第一题(循环)
        • 第二题(进制转换)
        • 第三题(又是循环)
        • 第四题(字符串连接)

第一题(循环)
# 809*??=800*??+9*?? 其中??代表的两位数, 809*??为四位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。

经过条件判断,i在(1,13)之间变化,应用循环把它找出来:

for i in range(1, 13):
    if 809 * i == 800 * i + 9 * i:
        if 8 * i <= 99 and 9 * i > 100:
            print(i, 809 * i)

运行结果:

12 9708
第二题(进制转换)
八进制转换为十进制

运用int方法

a = 0o5674
c = 1234

print(int(a))	# 数字情况直接转换为十进制
print(int('0o5674', 8))	# 字符串情况,逗号后边标注字符串是几进制
print(int('5674', 8))	# 不加进制开头的标识符也行,只要表明八进制一样可以进行转换

print('*'*20)

print(oct(c))   # 转八进制
print(hex(c))   # 转16进制
print(bin(c))   # 转二进制

运行结果:

3004
3004
3004
********************
0o2322
0x4d2
0b10011010010
第三题(又是循环)
# 求0—7所能组成的奇数个数。

还是循环,从1开始,验证每一个数是否为奇数,如果是,再验证这个数字里面有没有8,9:

def compute_numbers_for_odd(n):
    num = pow(10, n)
    count = 0
    for i in range(1,num):
        if i % 2 != 0:
            if '8' not in str(i) and '9' not in str(i):
                count += 1
    return count

for k in range(1,8):
    print(compute_numbers_for_odd(k))

运行结果:

4
32
256
2048
16384
131072
1048576
第四题(字符串连接)
# 连接字符串。

两种方法:

str1 = '45689'
str2 = 'avbaiu'
# 法一
str3 = str1 + str2
print(str3)
# 法二
list1 = [str1, str2]
str4 = ''.join(list1)
str5 = '&'.join(list1)
print(str4)
print(str5)

运行结果:

45689avbaiu
45689avbaiu
45689&avbaiu

今日打卡结束!
节物风光不相待,桑田碧海须臾改

你可能感兴趣的:(python基础训练day27)