第0章(基础案例)

  需求1:打印九九乘法表!

for m in range(1,10):
    for n in range(1,10):
        if m<=n:
            print(‘%s×%s=%s‘%(m,n,n*m),end=‘ ‘)
    print()


>>1×1=1 1×2=2 1×3=3 1×4=4 1×5=5 1×6=6 1×7=7 1×8=8 1×9=9 
>>2×2=4 2×3=6 2×4=8 2×5=10 2×6=12 2×7=14 2×8=16 2×9=18 
>>3×3=9 3×4=12 3×5=15 3×6=18 3×7=21 3×8=24 3×9=27 
>>4×4=16 4×5=20 4×6=24 4×7=28 4×8=32 4×9=36 
>>5×5=25 5×6=30 5×7=35 5×8=40 5×9=45 
>>6×6=36 6×7=42 6×8=48 6×9=54 
>>7×7=49 7×8=56 7×9=63 
>>8×8=64 8×9=72 
>>9×9=81 

   需求2:打印斐波拉契数列!

# 斐波那契数列----又称为黄金分割数列,以兔子繁殖为例子而引入,有成“兔子数列”。这个数列从第3项开始,每一项都等于前两项之和。
# 在数学上以递推的方法定义:
# F(1)=1
# F(2)=1
# F(n)=F(n-1)+F(n-2)(n>=3)
# 需求:创建一个函数,用户输入任意数字,返回第N项斐波那契数字,当用户输入数字<=0,报错!
num_in = int(input("请输入数字!"))

def fib(num):
    if num <= 0:
        raise Exception("数字应该大于0!")  # 非循环中的异常处理
    if num == 1 or num == 2:
        return 1
    else:
        return fib(num - 1) + fib(num - 2)

print(fib(num_in))


>>请输入数字!1
>>1

  需求3:格式化输出当前时间(北京时间),暂停1秒。

import time

demo = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
# demo2 = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))  # 放在前面的话,time.sleep(1)不会将时间滞后

print(f"前面的时间:{demo}")
time.sleep(1)

demo1 = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
demo2 = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))
print(f"后1秒的时间:{demo1}")
print(f"后1秒的时间:{demo2}")


>>前面的时间:2021-07-27 15:55:16
>>后1秒的时间:2021-07-27 15:55:17
>>后1秒的时间:2021-07-27 15:55:17

  需求4:用python写一个脚本语言,计算奇数1+3+5......i的值(i作为输入参数)

while True:
    try:
        i = input("请输入想要测试的奇数:")
        if i == "q":
            exit()
        i = int(i)

        if i%2 == 1:
            summ = 0
            for j in range(1,i+1,2):
                # print(j)
                summ = summ + j
            print(summ)

        elif i%2 != 1:
            print("请输入奇数!")
        else:
            print("出错啦!")
    except Exception as e:
        print("奇数!例如:1、3、5...")


>> 请输入想要测试的奇数:8
>>请输入奇数!
>>请输入想要测试的奇数:hh
>>奇数!例如:1、3、5...
>>请输入想要测试的奇数:9
>>25
>>请输入想要测试的奇数:q

  需求5:从键盘输入一个3位整数,计算并输出其百位、十位和个位上的数字。

# 方法1:
x = input(‘请输入一个三位整数!:‘)  #从键盘输入字符串
x = int(x)  # 将字符串转换为整数
a = x // 100  # 获取百位上数字
b = x // 10 % 10  # 获取十位上数字
c = x % 10  # 获取个位上数字
print(‘百位:‘, a, ‘十位:‘, b, ‘个位:‘, c)


>>请输入一个三位整数!:365
>>百位: 3 十位: 6 个位: 5 
# 方法2:使用map()函数
x = input(‘请输入一个三位整数: ‘)
a, b, c = map(int, x)
print(‘百位: ‘, a, ‘十位:‘, b, ‘个位:‘, c)


>>请输入一个三位整数: 400
>>百位:  4 十位: 0 个位: 0

  需求6:有1,2,3,4四个数字,能组成多少个互不相同且无重复的数字!

方法1;
total = 0
for i in range(1, 5):
    for j in range(1, 5):
        for k in range(1, 5):
            if ((i != j) and (j != k) and (k != i)):
                # print(i, j, k)
                total += 1
print(total)


>>24

  需求7:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

n = 0
while (n + 1) ** 2 - n * n <= 168:
    n += 1

print(n + 1)


>>85

  需求8:输入某年某月某日,判断这一天是这一年的第几天?

def isLeapYear(y):
    return (y % 400 == 0 or (y % 4 == 0 and y % 100 != 0))

DofM = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30]
res = 0
year = int(input(‘Year:‘))
month = int(input(‘Month:‘))
day = int(input(‘day:‘))
if isLeapYear(year):
    DofM[2] += 1
for i in range(month):
    res += DofM[i]
print(res + day)


>>Year:2021
>>Month:08
>>day:07
>>219

  需求9:输入三个整数,请把这三个数从小到大输出!

方法1:
raw = []
for i in range(3):
    x = int(input(‘整数%d: ‘ % (i+1)))
    raw.append(x)

for i in range(len(raw)):
    for j in range(i, len(raw)):
        if raw[i] > raw[j]:
            raw[i], raw[j] = raw[j], raw[i]
print(raw)



>>整数1: 12
>>整数2: 3
>>整数3: 56
>>[3, 12, 56]
# 方法2:
raw2 = []
for i in range(3):
    x = int(input(‘整数%d: ‘ % (i+1)))
    raw2.append(x)
print(sorted(raw2))


>>整数1: 45
>>整数2: 23
>>整数3: 78
>>[23, 45, 78]

  需求10:判断101-200之间有多少个素数,并输出所有素数!

# 方法1:
import math
for i in range(1, 10):
    flag = 0
    for j in range(2, round(math.sqrt(i)) + 1):
        if i % j == 0:
            flag = 1
            break
    if flag:
        continue
    print(i)


>>1
>>2
>>3
>>5
>>7
# 方法2:
import math
for i in range(1,10):
    for j in range(2,round(math.sqrt(i))+1):
        if i%j==0:
            break
    else:
        print(i)


>>1
>>2
>>3
>>5
>>7

  需求11:打印出100-1000中所有的“水仙花数”,所谓的水仙花数是指一个三位数,其中各位数字的立方和等于该数本身。

  例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。

for i in range(100,1000):
    s=str(i)
    one=int(s[-1])
    ten=int(s[-2])
    hun=int(s[-3])
    if i == one**3+ten**3+hun**3:
        print(i)


>>153
>>370
>>371
>>407

  需求12:分数归档,学习成绩>=90的同学用A表示,60-89的同学用B表示,60以下用C表示!

points = int(input(‘输入分数:‘))
if points >= 90:
    grade = ‘A‘
elif points < 60:
    grade = ‘C‘
else:
    grade = ‘B‘
print(grade)


>>60
>>B

  需求13:输出指定格式日期!

import datetime
print(datetime.date.today())   # 获取当前日期
print(datetime.date(2021,8,5))
print(datetime.date.today().strftime(‘%d/%m/%Y‘))


>>2021-08-07
>>2021-08-05
>>07/08/2021

  需求14:输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数!

string = input("输入字符串:")
alp = 0
num = 0
spa = 0
oth = 0
for i in range(len(string)):
    if string[i].isspace():
        spa += 1
    elif string[i].isdigit():
        num += 1
    elif string[i].isalpha():
        alp += 1
    else:
        oth += 1
print(‘空格: ‘, spa)
print(‘数字: ‘, num)
print(‘英文字母: ‘, alp)
print(‘其他: ‘, oth)



>>输入字符串:qweq为等等    ##123125jdsasdlfj
>>空格:  4
>>数字:  6
>>英文字母:  16
>>其他:  2

  需求15:求a+aa+aaa+aaaa+...的值,其中a为一个数字。例如:2+22+222+...!

a = input(‘被加数字:‘)
n = int(input(‘加几次?:‘))
res = 0
for i in range(n):
    res += int(a)
    a += a[0]
print(‘结果是:‘, res)


>>被加数字:5
>>加几次?:6
>>结果是: 617280

  需求16:

 

第0章(基础案例)

上一篇:pycharm配置gitee及实现代码仓库更新


下一篇:常用类使用