collatz number,回文数,love,map函数,汉若塔,佛祖镇楼,read a word by random in 5s,the star of sand glass

1 collatz number

def collatz(num):
	'''collatz number '''
    if num % 2 == 0:
        n = num / 2
        return n
    elif num % 2 == 1:
        n = 3 * num + 1
        return n

# print(collatz(100))
# print(collatz(50))
# print(collatz(25))
num = int(input('请输入一个整数:'))
while True:
    if num == 1:
        print(1)
        break
    else:
        num = collatz(num)
        print(num)

2 is_palindrome回文数

def is_palindrome(n):
    n = str(n)
    m = n[::-1]
    return n == m     # 回文格式
output = filter(is_palindrome, range(1, 1000))  # 回数
print(list(output))

3 love

print('\n'.join([''.join([('Love'[(x-y) % len('Love')] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0 else ' ') for x in range(-30, 30)]) for y in range(30, -30, -1)]))

4 map函数

def f(x):
    return x*x

w = map(f,[i for i in range(10)])
print(list(w))

5 汉若塔

'''
请编写 move(n, a, b, c)函数,它接收参数 n,表示 3 个柱子 A、 B、 C
中第 1 个柱子 A 的盘子数量,然后打印出把所有盘子从 A 借助 B 移动
到 C 的方法,例如:
def move(n, a, b, c):
----
pass
----
# 期待输出:
# A --> C
# A --> B
# C --> B
# A --> C
# B --> A
# B --> C
# A --> C
move(3, 'A', 'B', 'C')
'''


def move(n, a, b, c):    # 汉诺塔的移动
    if n == 1:
        print('move:', a, '--->', c)  # 1个直接从a移到c
    else:
        move(n-1, a, c, b)   # 分成2份,上面一份先从a移到b
        move(1, a, b, c)     # 剩下1个从a移到c
        move(n-1, b, a, c)   # 上面一份从b移到c
move(5, 'A', 'B', 'C')


def f(x):
    while x == 1:
        return 1           # 一个时,返回一次
    return 2 * f(x-1) + 1  # 这是推导公式
print('一共移动了%s次' % f(5))

6 佛祖镇楼

print("                            _ooOoo_  ")
print("                           o8888888o  ")
print("                           88  .  88  ")
print("                           (| -_- |)  ")
print("                            O\\ = /O  ")
print("                        ____/`---'\\____  ")
print("                      .   ' \\| |// `.  ")
print("                       / \\||| : |||// \\  ")
print("                     / _||||| -:- |||||- \\  ")
print("                       | | \\\\\\ - /// | |  ")
print("                     | \\_| ''\\---/'' | |  ")
print("                      \\ .-\\__ `-` ___/-. /  ")
print("                   ___`. .' /--.--\\ `. . __  ")
print("                ."" '< `.___\\_<|>_/___.' >'"".  ")
print("               | | : `- \\`.;`\\ _ /`;.`/ - ` : | |  ")
print("                 \\ \\ `-. \\_ __\\ /__ _/ .-` / /  ")
print("         ======`-.____`-.___\\_____/___.-`____.-'======  ")
print("                            `=---='  ")
print("  ")
print("         .............................................  ")
print("                  佛祖镇楼                  BUG辟易  ")
print("          佛曰:  ")
print("                  写字楼里写字间,写字间里程序员;  ")
print("                  程序人员写程序,又拿程序换酒钱。  ")
print("                  酒醒只在网上坐,酒醉还来网下眠;  ")
print("                  酒醉酒醒日复日,网上网下年复年。  ")
print("                  但愿老死电脑间,不愿鞠躬老板前;  ")
print("                  奔驰宝马贵者趣,公交自行程序员。  ")
print("                  别人笑我忒疯癫,我笑自己命太贱;  ")
print("                  不见满街漂亮妹,哪个归得程序员?")

7 read a word by random in 5s

import random
import time
f = open('1500.txt', 'r')
list1 = f.readlines()
# print(list1)
lines = len(list1)
# print(lines)
while True:
    print(list1[random.randint(0, 1697)])
    time.sleep(5)

8 the star of sand glass

'''
本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印

*****
 ***
  *
 ***
*****
所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。

给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。

输入格式:

输入在一行给出1个正整数N(<=1000)和一个符号,中间以空格分隔。

输出格式:

首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。

输入样例:
19 *
输出样例:
*****
 ***
  *
 ***
*****
2


t = input('请输入:')
n = int(t.split()[0])
m = t.split()[1]
print(n)
print(m)
'''

猜你喜欢

转载自blog.csdn.net/qq_43014129/article/details/83002972