Python菜鸟入门:day15编程学习

写在前面:
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出。欢迎各位前来交流。(部分材料来源网络,若有侵权,立即删除)
传送门:

day01基础知识
day02知识分类
day03运算符
day04数字与字符串
day05列表
day06元组与字典
day07条件与循环
day08函数概念
day09数据结构
day10模块介绍
day11文件操作
day12编程学习
day13编程学习
day14编程学习
day15编程学习
day16编程学习
day17编程学习
day18编程学习

实例编程学习03

Python输出指定范围的素数

#!/usr/bin/python3
 
# 输出指定范围内的素数
 
# take input from the user
lower = int(input("输入区间最小值: "))
upper = int(input("输入区间最大值: "))
 
for num in range(lower,upper + 1):
    # 素数大于 1
    if num > 1:
        for i in range(2,num):
            if (num % i) == 0:
                break
        else:
            print(num)

输出结果:
在这里插入图片描述

  • Python获取变量的方法非常简洁,不需要像c语言要使用printf和scanf才能达到这个效果,并且顺变声明变量。
  • for循环也不用使用i++,自动在指定范围内举行枚举。

Python实现阶乘

#!/usr/bin/python3
  
# 通过用户输入数字计算阶乘
 
# 获取用户输入的数字
num = int(input("请输入一个数字: "))
factorial = 1
 
# 查看数字是负数,0 或 正数
if num < 0:
   print("抱歉,负数没有阶乘")
elif num == 0:
   print("0 的阶乘为 1")
else:
   for i in range(1,num + 1):
       factorial = factorial*i
   print("%d 的阶乘为 %d" %(num,factorial))

输出结果:
在这里插入图片描述

  • elif即在第一个判断为假的前提进行下一个判断
# -*- coding: UTF-8 -*-

import math
num = int(input("请输入一个数字:"))
if num < 0:
    print("负数是没有阶乘的!")
else:
    print("{0} 的阶乘为 {1}".format(num, math.factorial(num)))

也可以调用math库,库中有具体的阶乘函数,也有很多其他的数学函数,后续使用起来可能会方便一点。

Python实现九九乘法表

# -*- coding: UTF-8 -*-
 
# 九九乘法表
for i in range(1, 10):
    for j in range(1, i+1):
        print('{}x{}={}\t'.format(j, i, i*j), end='')
    print()

输出结果:
在这里插入图片描述

Python实现阿姆斯特朗数

  • 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5^3 + 3^3 = 153。
  • 1000以内的阿姆斯特朗数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。
  • 以下代码用于检测用户输入的数字是否为阿姆斯特朗数:
# Filename : test.py
 
# Python 检测用户输入的数字是否为阿姆斯特朗数
 
# 获取用户输入的数字
num = int(input("请输入一个数字: "))
 
# 初始化变量 sum
sum = 0
# 指数
n = len(str(num))
 
# 检测
temp = num
while temp > 0:
   digit = temp % 10
   sum += digit ** n
   temp //= 10
 
# 输出结果
if num == sum:
   print(num,"是阿姆斯特朗数")
else:
   print(num,"不是阿姆斯特朗数")

输出结果:
在这里插入图片描述

  • 获取指定区间的阿姆斯特朗数
# Filename :test.py
 
# 获取用户输入数字
lower = int(input("最小值: "))
upper = int(input("最大值: "))
 
for num in range(lower,upper + 1):
   # 初始化 sum
   sum = 0
   # 指数
   n = len(str(num))
 
   # 检测
   temp = num
   while temp > 0:
       digit = temp % 10
       sum += digit ** n
       temp //= 10
 
   if num == sum:
       print(num)

输出结果:
在这里插入图片描述

Python进制转换

# -*- coding: UTF-8 -*-
 
# Filename : test.py
 
# 获取用户输入十进制数
dec = int(input("输入数字:"))
 
print("十进制数为:", dec)
print("转换为二进制为:", bin(dec))
print("转换为八进制为:", oct(dec))
print("转换为十六进制为:", hex(dec))

输出结果:
在这里插入图片描述
在这里插入图片描述

Python ASCII码与字符相互转换

# Filename : test.py
# author by : www.runoob.com
 
# 用户输入字符
c = input("请输入一个字符: ")
 
# 用户输入ASCII码,并将输入的数字转为整型
a = int(input("请输入一个ASCII码: "))
 
 
print( c + " 的ASCII 码为", ord(c))
print( a , " 对应的字符为", chr(a))

输出结果:
在这里插入图片描述

Python最大公约数算法

# Filename : test.py
 
# 定义一个函数
def hcf(x, y):
   """该函数返回两个数的最大公约数"""
 
   # 获取最小值
   if x > y:
       smaller = y
   else:
       smaller = x
 
   for i in range(1,smaller + 1):
       if((x % i == 0) and (y % i == 0)):
           hcf = i
 
   return hcf
 
 
# 用户输入两个数字
num1 = int(input("输入第一个数字: "))
num2 = int(input("输入第二个数字: "))
 
print( num1,"和", num2,"的最大公约数为", hcf(num1, num2))

输出结果:
在这里插入图片描述

Python最小公倍数算法

# Filename : test.py
 
# 定义函数
def lcm(x, y):
 
   #  获取最大的数
   if x > y:
       greater = x
   else:
       greater = y
 
   while(True):
       if((greater % x == 0) and (greater % y == 0)):
           lcm = greater
           break
       greater += 1
 
   return lcm
 
 
# 获取用户输入
num1 = int(input("输入第一个数字: "))
num2 = int(input("输入第二个数字: "))
 
print( num1,"和", num2,"的最小公倍数为", lcm(num1, num2))

输出结果:
在这里插入图片描述

end
好的,坚持了半个月了,这几天有点水/头秃,过几天忙完了应该会把精力放在Python上吧,加油,希望明天也能坚持下去。

猜你喜欢

转载自blog.csdn.net/Q_U_A_R_T_E_R/article/details/107498527
今日推荐