作业(3)

1, 打印由‘*’组成的实心菱形图案

for i in range(1,8,2):
    j = int((7 - i) / 2)
    print(' '*j + '*'*i + ' '*j)
for i in range(5,0,-2):
    j = int((7 - i) / 2)
    print(' '*j + '*'*i + ' '*j)
#第二种方法
a = '*'
for i in range(1,8,2):
    print((a*i).center(7))
for i in reversed(range(1,6,2)):
    print((a*i).center(7))
#第三种方法
a = '*'
for i in range(1,8,2):
    print((a*i).center(7))
k = 5
while k > 0:
    print((a*k).center(7))
    k-=2

在这里插入图片描述
2,定义一个函数,以两种方式传入姓名,年龄和地点,直接在屏幕上打出自我介绍 ‘你好, 我的名字是 name,今年 age,现在居住在 addr’

def fun():
    print('你好,我的名字是%s,今年%d,现在居住在%s' % (name,age,addr))
    print('你好,我的名字是{},今年{},现在居住在{}'.format(name,age,addr))
name = input('name:')
age = int(input('age:'))
addr = input('address:')
fun()

在这里插入图片描述
3,将一个英文语句以单词为单位逆序排放。所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符- 输入描述:将一个英文语句以单词为单位逆序排放。- 输出 描述:得到逆序的句子
示例 1

  • 输入 I am a boy
  • 输出 boy a am I
list_str = list(input('将一个英文语句以单词为单位逆序排放:').split(' '))
list_str.reverse()
print(' '.join(list_str))

在这里插入图片描述

4,猜字母游戏,自己定义一个喜欢的字母给答题者去猜,若猜的不是 26 个小写字母就重新 让用户输入,若猜的字母不是你设置的字母就给出正确提示(之前或者之后),若打错 5 次, 则答题失败并退出游戏

real = 'q'
i = 5
while i >= 1:
    cai = input('enter:')
    if cai.islower():
        if cai > real:
            print('正确字母在此之前')
        elif cai < real:
            print('正确字母在此之后')
        else:
            print('猜对了')
            break
        i -= 1
    else:
        print('请输入小写字母')
else:
    print('答错五次,答题失败')

在这里插入图片描述
5.Collatz 序列 编写一个名为 collatz()的函数,它有一个名为 number 的参数。 如果参数是偶数,那么 collatz()就打印出 number//2,并返回 该值。如果 number 是奇数,collatz()就打印并返回 3*number+1。 然后编写一个程序,让用户输入一个整数,并不断对这个数 调用 collatz(),直到函数返回值 1(令人惊奇的是,这个序列 对于任何整数都有效,利用这个序列,你迟早会得到 1!既使数学 家也不能确定为什么。你的程序在研究所谓的“Collatz 序列”, 它有时候被称为“最简单的、不可能的数学问题”)。 - 输入: 3 - 输出: 10 5 16 8 4 2 1

def collatz(number):
    if number % 2 == 0:
        return number//2
    else:
        return number*3+1

num = int(input('enter a number:'))
while True:
# while number != 1:
    if collatz(num) == 1:
        print(1)
        break
    else:
        num = collatz(num)
        print(num)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值