Python3道基础练习题

练习:
输入一个整数n, 判断这个整数是否是素数(prime)
(素数是指只能被1 和自身整除的数)
如:

#       2 3 5 7 11...

方法:
用排除法.一但n能被2~n-1的数整除就不是素
数,否则就一定是素数

n = int(input("请输入一个整数: "))

if n < 2:
    print(n, '不是素数')
    exit()

方法 1

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
 flag = True  # true代表是素数,False代表不是素数
 for i in range(2, n):
     if n % i == 0:
          print(n, '不是素数!')
         flag = False
         break
 if flag == True:
     print(n, '是素数!')
 else:
     print(n, '不是素数!')

方法2:

for i in range(2, n):
    if n % i == 0:
        print(n, '不是素数!')
        break
else:
    print(n, '是素数!')

1. 输入一个整数,代表树干的高度.

#   打印一棵"圣诞树"
#   如:
#    输入:2
#   打印
#     *
#    ***
#     *
#     *
#    输入:3
#   打印
#      *
#     ***
#    *****
#      *
#      *    
#      *

n = int(input("请输入树干高度: "))

# 打印树叶部分

for i in range(1, n + 1):  # i代表从上向下的行号
    blanks_count = n - i  # 计算空格个数
    print(' '* blanks_count + '*' * (2*i-1))

# 打印树十部分
for i in range(1, n + 1):
    print(' ' * (n - 1) + '*')

2. 用循环语句生成如下字符串

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
#   'ABC.....XYZ'
#   'AaBbCc......XxYyZz'
#   提示:
#      用ord和chr函数结合循环语句实现

s = ''  # 用来存入大写英文字母
s2 = ''  # 用来存放大写小写混合的英文字母
for i in range(65, 65 + 26):
    # print(chr(i))
    s += chr(i)
    s2 += chr(i)  # 先放一个大写的
    # 放入一个小写的字母
    s2 += chr(i + 32)
    # ord('a') - ord('A')  # 32

print(s)
print(s2)

3. 算出 100 ~ 999 以内的水仙花数(Narcissistic number)

水仙花数是指百位的3次方加上十位的3次方加上个位的3次方等于原数的数字
#      例如:
#        153 等于 1**3 + 5**3 + 3**3
#    参考答案:
#      153, 370, ...

方法1

 for x in range(100, 1000):
     bai = x // 100
     shi = x %100 // 10
     ge = x % 10
     if x == bai ** 3 + shi ** 3 + ge ** 3:
         print(x)

方法2

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
 for x in range(100, 1000):
     s = str(x)  # 得到字符串
     bai = int(s[0])  # 百位
     shi = int(s[1])  # 十位
     ge = int(s[2])  # 个位
     if x == bai ** 3 + shi ** 3 + ge ** 3:
         print(x)

方法3

for bai in range(1, 10):
    for shi in range(10):
        for ge in range(10):
            # print(bai, shi, ge)
            x = bai * 100 + shi * 10 + ge
            if x == bai ** 3 + shi ** 3 + ge ** 3:
                print(x)

你可能感兴趣的:(Python)