编程入门基本题目(Python、C语言),持续更新中......

这是一个有趣的编程引入题:

大家学过Python的话应该知道“天天向上的力量”这个经典的入门编程题,而这道题对博主本人也很有意义,因为这是博主上大学的第一门编程语言讲授课的讲解题目,而刚好这道题也反映出IT行业的一个时刻保持学习状态的特点,在此,博主以这道题为开头、以乔帮主的一句“Stay hungry, stay foolish”与大家共勉

# 一年365天,以第1天的能力为基数,记为1.0,当好好学习时能力值相比前一天提高1%,当没有学习时能力值相比前一天下降1%。问:每天努力和每天放任,一年下来的能力值相差多少
a = pow((1+0.01), 365)
b = pow((1-0.01), 365)
print("天天向上的力量:{:.5f}, 天天向下的力量:{:.5f}".format(a, b))
print("一年下来两者相差:%.10f" % (a-b))

# 一年365天,如果好好学习时能力值比前一天提高x%,当放任时相比前一天下降x%。问:效果相差多少
dayfactor = eval(input("请输入每天努力or放纵的因子:"))
dayup = pow((1 + dayfactor), 365)
daydown = pow((1 - dayfactor), 365)
print("天天向上的结果:{:.5f}, 天天向下的结果:{:.5f}".format(dayup, daydown))
print("一年下来两者相差:%.5f" % (dayup - daydown))
# 一年365天,一周5个工作日,如果每个工作日都很努力,就可以提高1%,仅在周末放松一下,能力值下降1%,问:效果如何
dayfactor = eval(input("请输入每天努力or放纵的因子:"))
dayup = 1.00
for i in range(365):
        if i % 7 in [6, 0]:
            dayup = dayup * (1 - dayfactor)
        else:
            dayup = dayup * (1 + dayfactor)
print("向上5天向下2天后一年下累积能力值:{:.2f}".format(dayup))
    
# 每周工作5天,休息2天,休息日水平下降0.01,问:工作日要努力到什么程度,一年后的水平才与每天努力1%取得的效果一样呢
def dayUp(df):
    dayup = 1.0
    for i in range(365):
        if i % 7 in [0, 6]:
            dayup = dayup * (1 - 0.01)
        else:
            dayup = dayup * (1 + df)
    return dayup
dayfactor = 0.01
while(dayUp(dayfactor) < 37.78):
    dayfactor += 0.001
print("每天努力的参数是:{:.3f}".format(dayfactor))
# 天天向上续。以7天为周期,连续学习3天能力值不变,从第4天开始至第7天每天能力增长为前一天的1%。如果7天中有1天间断学习,则周期从头开始算。请编写程序回答,如果初始能力值为1,连续学习365天后能力值是多少?
dayup = 1
dayfactor = 0.01
i = 362
dayup = pow((dayup + dayfactor), i)
print("坚持365天下来的力量是:{:.3f}".format(dayup))
# 天天向上续。采用上题的能力增长模型,如果能力初始值为1,固定每10天休息1天,365天后能力值是多少?如果每15天休息1天呢?
def dayUp(days):
    dayup = 1.0
    dayfactor = 0.01
    i = (365 % 10) - 3
    dayup = pow((dayup + dayfactor), (days - 4) * 36) * pow((dayup + dayfactor), i)
    return dayup
print("当 days=10 时,能力模型的力量是:{}".format(dayUp(10)))
print("当 days=15 时,能力模型的力量是:{}".format(dayUp(15)))

题目一:统计不同字符的个数

# Python:

n=input("请输入一行字符:")
a=b=c=d=0
for i in n:
    if ord('a')<=ord(i)<=ord('z') or ord('A')<=ord(i)<=ord('Z'):
        a=a+1
    elif ord('0')<=ord(i)<=ord('9'):
        b=b+1
    elif ord(i)==ord(' '):
        c=c+1
    else:
        d=d+1
print("这一行字符中字母的数量是:{},数字的数量是:{},空格数量是:{},其他字符的数量是:{}。".format(a,b,c,d))

题目二:求两个整数的最大公约数

# Python:

def get_greatest_common_divisor_V2(a,b):
    big=max(a,b)
    small=min(a,b)
    if big%small==0:
        return small
    return get_greatest_common_divisor_V2(big%small,small)

i = get_greatest_common_divisor_V2(4, 10)
print("两数的最大公约数是:{}".format(i))
print("两数的最小公倍数是:{}".format(4 * 10 / i))

题目三:字符串翻转

# Python:

#递归实现字符串翻转
import sys
sys.setrecursionlimit(2000)

def reverse(s):
    if s == '':
        return s
    else:
        return reverse(s[1:]) + s[0]
aa = input("请输入一个字符串:")
print(reverse(aa))

 题目四:进制转换(以十进制转其他进制为例)

# Python:

# 十进制转二进制
print("(Into binary)Please type an integer:")
a = int(input())
print(bin(a))

# 十进制转八进制
print("(Into octal)Please type an integer:")
b = int(input())
print(oct(b))

# 十进制转十六进制
print("(Into hexadecimal)Please type an integrate:")
c = int(input())
print(hex(c))
// C:

#include<stdio.h>

void convert(int x, int y)
{
    if(x > 0)
    {
        convert(x/y, y);
        if(y!=16) 
            printf("%d", x % y);
        else 
            printf("%x", x % y);	// 以十六进制输出
    }
}
int main()
{
    int x, y;//输入要转换的数值和转化进制数
	printf("请输入要转换的十进制整数: ");
    scanf("%d", &x);
	printf("请输入要转换的进制: ");
	scanf("%d", &y);
    convert(x,y);

	return 0;
}

题目五:回文数判断。设n是一任意自然数,如果n的各位数字反向排列所得自然数与n相同,则n被称为回文数。从键盘上输入一个5位数字,请编写程序这个数是不是回文数

#1、字符串判断
x=input("请输入一个整数:")
if x==x[::-1]:
    print("是回文数。")
else:
    print("不是回文数。")
#2、颠倒数据后判断
x = int(input("请输入一个整数:"))
if x < 0 or (x % 10 == 0 and x != 0):
    print("不是回文数。")
elif not x // 10:
    print("是回文数。")
else:
    hou = 0
    while (x > hou):
        hou = hou * 10 + x % 10
        x //= 10
    if x == hou or x == (hou // 10):
        print("是回文数。")
    else:
        print("不是回文数。")

进阶版:Python面向对象编程

一、时间函数

f = lambda x, y : x + y
f(1, 3)
def vfunc(a, *b):
    print(type(b))
    for i in b:
        a += i
    return a
vfunc(1, 2, 3, 4, 5)
from datetime import *
today = datetime.utcnow()
today

二、更新文本进度条

import time
scale = 10
print("----执行开始----")
for i in range(scale + 1):
    a, b = "**" * i, "··" * (scale - i)
    c = (i / scale) * 100
    print("%{:^3.0f}[{}->{}]".format(c, a, b))
    time.sleep(0.3)
print("----执行结束----")
#单行更新文本进度条
import time
scale = 50
print("执行开始".center(scale // 2, '-'))
t = time.perf_counter()
for i in range(scale + 1):
    a = '*' * i
    b = '·' * (scale - i)
    c = (i / scale) * 100
    print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c, a, b, t), end=' ')
    time.sleep(0.05)
print("\n" + "执行结束".center(scale // 2, '-'))

 

三、检测

try:
    alp = "huadudadhjhagdhbx"
    index = eval(input("请输入一个整数:"))
    print(alp[index])
except NameError:
    print("输入错误,请重新输入")
except IndexError:
    print("索引值超出范围,请重新输入")
else:
    print("没有发生异常")
finally:
    print("程序执行完毕")

四、CSV文件的读写

fo = open("/Users/mac/Desktop/picture2016.csv", "r")
ls = []
for line in fo:
    line = line.replace("\n", "")
    ls.append(line.split(","))
print(ls)
fo.close()

五、田字格的输出

#田字格的输出
n = eval(input("请输入一个奇数:"))
a = "— "
b = "┼"
c = "|"
d = " "
m = n // 2
for i in range(n):
    if i in [0,m,n-1]:
        print("{0}{1}{0}{1}{0}".format(b, a*(m-1)))
    else:
        print("{0}{1}{0}{1}{0}".format(c, d*2*(m-1))) 

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Larissa857

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值