Python中的常规习题

循环总结

while 语句  for 语句

- 字符串  - range() 函数 

break 语句  continue 语句

学习笔记传送门

 

列表学习

 

# 练习:
#   输入一个整数n, 判断这个整数是否是素数(prime)
#     (素数是指只能被1 和自身整除的数)
#     如:
#       2 3 5 7 11...
#     方法:
#       用排除法.一但n能被2~n-1的数整除就不是素
#        数,否则就一定是素数

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

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

# 方法 1
# 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. 用循环语句生成如下字符串
#   '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
# 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)

 



 

转载于:https://www.cnblogs.com/LeoLRH/p/10369892.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值