python3实例

简单实例

# -*- coding: UTF-8 -*-

"""
实例1:打印hello world
"""
print("************ >>> 实例1:打印hello world")
print("hello world")

"""
实例2:求和
"""
print("************ >>> 实例2:求和")
# 用户输入数字
num1 = input('输入第一个数字:')
num2 = input('输入第二个数字:')

# 求和
sum = float(num1) + float(num2)

# 显示计算结果
print('数字 {0} 和 {1} 相加结果为: {2}'.format(num1, num2, sum))

"""
实例3:平方根
"""
print("************ >>> 实例3:平方根")
num = float(input('请输入一个数字: '))
num_sqrt = num ** 0.5
print('%0.3f 的平方根为 %0.3f' % (num, num_sqrt))

"""
实例4:二次方程式
"""
print("************ >>> 实例4:二次方程式")
# 二次方程式 ax**2 + bx + c = 0
# a、b、c 用户提供,为实数,a ≠ 0

# 导入 cmath(复杂数学运算) 模块
import cmath

a = float(input('输入 a: '))
b = float(input('输入 b: '))
c = float(input('输入 c: '))

# 计算
d = (b ** 2) - (4 * a * c)

# 两种求解方式
sol1 = (-b - cmath.sqrt(d)) / (2 * a)
sol2 = (-b + cmath.sqrt(d)) / (2 * a)
print('结果为 {0} 和 {1}'.format(sol1, sol2))

"""
实例5:计算三角形面积
"""
print("************ >>> 实例5:计算三角形面积")
a = float(input('输入三角形第一边长: '))
b = float(input('输入三角形第二边长: '))
c = float(input('输入三角形第三边长: '))

# 计算半周长
s = (a + b + c) / 2

# 计算面积
area = (s * (s - a) * (s - b) * (s - c)) ** 0.5
print('三角形面积为 %0.2f' % area)

"""
实例6:计算圆的面积
"""
print("************ >>> 实例6:计算圆的面积")


# 定义一个方法来计算圆的面积
def findArea(r):
    PI = 3.142
    return PI * (r * r)


# 调用方法
print("圆的面积为 %.6f" % findArea(5))

"""
实例7:随机数
"""
print("************ >>> 实例7:随机数")
# 生成 0 ~ 9 之间的随机数
# 导入 random(随机数) 模块
import random

print(random.randint(0, 9))

"""
实例8:摄氏温度转华氏温度
"""
print("************ >>> 实例8:摄氏温度转华氏温度")
# 用户输入摄氏温度
# 接收用户输入
celsius = float(input('输入摄氏温度: '))

# 计算华氏温度
fahrenheit = (celsius * 1.8) + 32
print('%0.1f 摄氏温度转为华氏温度为 %0.1f ' % (celsius, fahrenheit))

"""
实例9:交换变量
"""
print("************ >>> 实例9:交换变量")
# 用户输入
x = input('输入 x 值: ')
y = input('输入 y 值: ')

# 创建临时变量,并交换
temp = x
x = y
y = temp

print('交换后 x 的值为: {}'.format(x))
print('交换后 y 的值为: {}'.format(y))

"""
实例10:if语句
"""
print("************ >>> 实例10:if语句")
# 用户输入数字
num = float(input("输入一个数字: "))
if num > 0:
    print("正数")
elif num == 0:
    print("零")
else:
    print("负数")

"""
实例11:判断字符串是否为数字
"""
print("************ >>> 实例11:判断字符串是否为数字")


def is_number(s):
    try:
        float(s)
        return True
    except ValueError:
        pass

    try:
        import unicodedata
        unicodedata.numeric(s)
        return True
    except (TypeError, ValueError):
        pass

    return False


# 测试字符串和数字
print(is_number('foo'))  # False
print(is_number('1'))  # True
print(is_number('1.3'))  # True
print(is_number('-1.37'))  # True
print(is_number('1e3'))  # True

# 测试 Unicode
# 阿拉伯语 5
print(is_number('٥'))  # True
# 泰语 2
print(is_number('๒'))  # True
# 中文数字
print(is_number('四'))  # True
# 版权号
print(is_number('©'))  # False

"""
实例12:判断奇数偶数
"""
print("************ >>> 实例12:判断奇数偶数")

# 如果是偶数除于 2 余数为 0
# 如果余数为 1 则为奇数

num = int(input("输入一个数字: "))
if (num % 2) == 0:
    print("{0} 是偶数".format(num))
else:
    print("{0} 是奇数".format(num))

"""
实例13:判断闰年
"""
print("************ >>> 实例13:判断闰年")
year = int(input("输入一个年份: "))
if (year % 4) == 0:
    if (year % 100) == 0:
        if (year % 400) == 0:
            print("{0} 是闰年".format(year))  # 整百年能被400整除的是闰年
        else:
            print("{0} 不是闰年".format(year))
    else:
        print("{0} 是闰年".format(year))  # 非整百年能被4整除的为闰年
else:
    print("{0} 不是闰年".format(year))

"""
实例14:获取最大值函数
"""
print("************ >>> 实例14:获取最大值函数")
# 最简单的
print(max(1, 2))
print(max('a', 'b'))

# 也可以对列表和元组使用
print(max([1, 2]))
print(max((1, 2)))

# 更多实例
print("80, 100, 1000 最大值为: ", max(80, 100, 1000))
print("-20, 100, 400最大值为: ", max(-20, 100, 400))
print("-80, -20, -10最大值为: ", max(-80, -20, -10))
print("0, 100, -400最大值为:", max(0, 100, -400))

"""
实例15:质数判断
一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除(2, 3, 5, 7等),换句话说就是该数除了1和它本身以外不再有其他的因数。
"""
print("************ >>> 实例15:质数判断")
# 用户输入数字
num = int(input("请输入一个数字: "))

# 质数大于 1
if num > 1:
    # 查看因子
    for i in range(2, num):
        if (num % i) == 0:
            print(num, "不是质数")
            print(i, "乘于", num // i, "是", num)
            break
    else:
        print(num, "是质数")

# 如果输入的数字小于或等于 1,不是质数
else:
    print(num, "不是质数")

"""
实例16:输出指定范围内的素数
素数(prime number)又称质数,有无限个。除了1和它本身以外不再被其他的除数整除。
"""
print("************ >>> 实例16:输出指定范围内的素数")
# 输出指定范围内的素数
# 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)

"""
实例17:通过用户输入数字计算阶乘
"""
print("************ >>> 实例17:通过用户输入数字计算阶乘")
# 获取用户输入的数字
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))

"""
实例18:九九乘法表
"""
print("************ >>> 实例18:九九乘法表")
# 九九乘法表
for i in range(1, 10):
    for j in range(1, i + 1):
        print('{}x{}={}\t'.format(j, i, i * j), end='')
    print()

"""
实例19:进制转换
"""
print("************ >>> 实例19:进制转换")
# 获取用户输入十进制数
dec = int(input("输入数字:"))

print("十进制数为:", dec)
print("转换为二进制为:", bin(dec))
print("转换为八进制为:", oct(dec))
print("转换为十六进制为:", hex(dec))

"""
实例20:ASCII码与字符相互转换
"""
print("************ >>> 实例20:ASCII码与字符相互转换")
# 用户输入字符
c = input("请输入一个字符: ")

# 用户输入ASCII码,并将输入的数字转为整型
a = int(input("请输入一个ASCII码: "))

print(c + " 的ASCII 码为", ord(c))
print(a, " 对应的字符为", chr(a))

"""
实例21:简单计算器实现
"""
print("************ >>> 实例21:简单计算器实现")


# 定义函数
def add(x, y):
    # 相加
    return x + y


def subtract(x, y):
    # 相减
    return x - y


def multiply(x, y):
    # 相乘
    return x * y


def divide(x, y):
    # 相除
    return x / y


# 用户输入
print("选择运算:")
print("1、相加")
print("2、相减")
print("3、相乘")
print("4、相除")

choice = input("输入你的选择(1/2/3/4):")

num1 = int(input("输入第一个数字: "))
num2 = int(input("输入第二个数字: "))

if choice == '1':
    print(num1, "+", num2, "=", add(num1, num2))

elif choice == '2':
    print(num1, "-", num2, "=", subtract(num1, num2))

elif choice == '3':
    print(num1, "*", num2, "=", multiply(num1, num2))

elif choice == '4':
    print(num1, "/", num2, "=", divide(num1, num2))
else:
    print("非法输入")

"""
实例22:生成日历
"""
print("************ >>> 实例22:生成日历")
# 引入日历模块
import calendar

# 输入指定年月
yy = int(input("输入年份: "))
mm = int(input("输入月份: "))

# 显示日历
print(calendar.month(yy, mm))

"""
实例23:文件IO
"""
print("************ >>> 实例23:文件IO")
# 写文件
with open("test.txt", "wt") as out_file:
    out_file.write("该文本会写入到文件中\n看到我了吧!")

# Read a file
with open("test.txt", "rt") as in_file:
    text = in_file.read()

print(text)

"""
实例24:字符串判断
"""
print("************ >>> 实例24:字符串判断")
# 测试实例一
print("------ 测试实例一")
str1 = "runoob.com"
print(str1.isalnum())  # 判断所有字符都是数字或者字母
print(str1.isalpha())  # 判断所有字符都是字母
print(str1.isdigit())  # 判断所有字符都是数字
print(str1.islower())  # 判断所有字符都是小写
print(str1.isupper())  # 判断所有字符都是大写
print(str1.istitle())  # 判断所有单词都是首字母大写,像标题
print(str1.isspace())  # 判断所有字符都是空白字符、\t、\n、\r

# 测试实例二
print("------ 测试实例二")
str1 = "runoob"
print(str1.isalnum())
print(str1.isalpha())
print(str1.isdigit())
print(str1.islower())
print(str1.isupper())
print(str1.istitle())
print(str1.isspace())

"""
实例25:字符串大小写转换
"""
print("************ >>> 实例25:字符串大小写转换")
str1 = "www.runoob.com"
print(str1.upper())  # 把所有字符中的小写字母转换成大写字母
print(str1.lower())  # 把所有字符中的大写字母转换成小写字母
print(str1.capitalize())  # 把第一个字母转化为大写字母,其余小写
print(str1.title())  # 把每个单词的第一个字母转化为大写,其余小写

"""
实例26:计算每个月的天数
"""
print("************ >>> 实例26:计算每个月的天数")
import calendar

monthRange = calendar.monthrange(2016, 9)
print(monthRange)

"""
实例27:获取昨天日期
"""
print("************ >>> 实例26:计算每个月的天数")
# 引入 datetime 模块
import datetime


def getYesterday():
    today = datetime.date.today()
    oneday = datetime.timedelta(days=1)
    yesterday = today - oneday
    return yesterday


# 输出
print(getYesterday())

"""
实例28:list常用操作
"""
print("************ >>> 实例28:list常用操作")
# list定义
li = ["a", "b", "mpilgrim", "z", "example"]
print(li[1])  # 输出 b
print(li[-1])  # 输出 example
print(li[-3])  # 输出 mpilgrim
print(li[1:3])  # 输出 ['b', 'mpilgrim']
print(li[1:-1])  # 输出 ['b', 'mpilgrim', 'z']

# 增加元素
li.append("new")
li.insert(2, "new")
li.extend(["two", "elements"])
print(li)

# list搜索
print(li.index("example"))
print("c" in li)

# list删除元素
li.remove("z")
li.remove("new")  # 删除首次出现的一个值
try:
    li.remove("c")  # list 中没有找到值, Python 会引发一个异常
except:
    pass

li.pop()  # pop 会做两件事: 删除 list 的最后一个元素, 然后返回删除元素的值

# list运算符
li = ['a', 'b', 'mpilgrim']
li = li + ['example', 'new']
li += ['two']
print(li)
li = [1, 2] * 3
print(li)

# 使用join连接list成为字符串
# join 只能用于元素是字符串的 list; 它不进行任何的类型强制转换。连接一个存在一个或多个非字符串元素的 list 将引发一个异常。
params = {"server": "mpilgrim", "database": "master", "uid": "sa", "pwd": "secret"}
print(["%s=%s" % (k, v) for k, v in params.items()])
print(";".join(["%s=%s" % (k, v) for k, v in params.items()]))

# list 分割字符串
# split 与 join 正好相反, 它将一个字符串分割成多元素 list。
# 注意, 分隔符 (";") 被完全去掉了, 它没有在返回的 list 中的任意元素中出现。
li = ['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
s = ";".join(li)
print(s)
print(s.split(";"))
print(s.split(";", 1))  # split 接受一个可选的第二个参数, 它是要分割的次数。

# list 的映射解析
li = [1, 9, 8, 4]
print([elem * 2 for elem in li])
li = [elem * 2 for elem in li]
print(li)

# dictionary 中的解析
params = {"server": "mpilgrim", "database": "master", "uid": "sa", "pwd": "secret"}
print("keys:", params.keys())
print("values:", params.values())
print("items:", params.items())
print([k for k, v in params.items()])
print(["%s=%s" % (k, v) for k, v in params.items()])

# list 过滤
li = ["a", "mpilgrim", "foo", "b", "c", "b", "d", "d"]
print([elem for elem in li if len(elem) > 1])
print([elem for elem in li if elem != "b"])
print([elem for elem in li if li.count(elem) == 1])

"""
实例29:实现秒表功能
"""
print("************ >>> 实例29:实现秒表功能")
import time

print('按下回车开始计时,按下 Ctrl + C 停止计时。')
while True:
    input("")  # 如果是 python 2.x 版本请使用 raw_input()
    starttime = time.time()
    print('开始')
    try:
        while True:
            print('计时: ', round(time.time() - starttime, 0), '秒', end="\r")
            time.sleep(1)
    except KeyboardInterrupt:
        print('结束')
        endtime = time.time()
        print('总共的时间为:', round(endtime - starttime, 2), 'secs')
        break

"""
实例30:翻转列表
"""
print("************ >>> 实例30:翻转列表")

lst = [10, 11, 12, 13, 14, 15]
lst = lst.reverse()
print(lst)

"""
实例31:判断元素是否在列表中
"""
print("************ >>> 实例31:判断元素是否在列表中")
test_list = [1, 6, 3, 5, 3, 4]

print("查看 4 是否在列表中 ( 使用循环 ) : ")
for i in test_list:
    if (i == 4):
        print("存在")

print("查看 4 是否在列表中 ( 使用 in 关键字 ) : ")
if (4 in test_list):
    print("存在")

"""
实例32:移除列表中的重复元素
"""
print("************ >>> 实例32:移除列表中的重复元素")
# 移除一个列表中的重复元素
list_1 = [1, 2, 1, 4, 6]
print(list(set(list_1)))

# 删除两个列表中重复的元素
list_1 = [1, 2, 1, 4, 6]
list_2 = [7, 8, 2, 1]
print(list(set(list_1) ^ set(list_2)))

"""
实例33:复制列表
"""
print("************ >>> 实例33:复制列表")

li1 = [4, 8, 2, 10, 15, 18]
li_copy = list(li1)
print("原始列表:", li1)
print("复制后列表:", li_copy)

"""
实例34:计算元素在列表中出现的次数
"""
print("************ >>> 实例34:计算元素在列表中出现的次数")

lst = [8, 6, 8, 10, 8, 20, 10, 8, 8]
x = 8
print(lst.count(x))

"""
实例35:判断字符串是否存在子字符串
"""
print("************ >>> 实例35:判断字符串是否存在子字符串")


def check(string, sub_str):
    if (string.find(sub_str) == -1):
        print("不存在!")
    else:
        print("存在!")


string = "www.runoob.com"
sub_str = "runoob"
check(string, sub_str)

"""
实例36:使用正则表达式提取字符串中的 URL
"""
print("************ >>> 实例36:使用正则表达式提取字符串中的 URL")
import re


def findSubStr(string):
    # findall() 查找匹配正则表达式的字符串
    url = re.findall('https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+', string)
    return url


string = 'Runoob 的网页地址为:https://www.runoob.com,Google 的网页地址为:https://www.google.com'
print("Urls: ", findSubStr(string))

"""
实例37:字符串翻转
"""
print("************ >>> 实例37:字符串翻转")
str1 = 'Runoob'
print(''.join(reversed(str1)))

"""
实例38:获取前几天前的时间
"""
print("************ >>> 实例38:获取前几天前的时间")
import time
import datetime

# 先获得时间数组格式的日期
threeDayAgo = (datetime.datetime.now() - datetime.timedelta(days=3))
# 转换为时间戳
timeStamp = int(time.mktime(threeDayAgo.timetuple()))
# 转换为其他字符串格式
otherStyleTime = threeDayAgo.strftime("%Y-%m-%d %H:%M:%S")
print(otherStyleTime)

"""
排序算法可见:https://www.runoob.com/python3/python3-examples.html
"""

Python 下载图片(文件)

方式1:

import requests
import os

# 创建目录文件夹
os.makedirs('./image/', exist_ok=True)
# 构造请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36'
}
# 发送get请求图片url
r = requests.get(
    'https://img-blog.csdnimg.cn/20200922093507346.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3Njk0ODM1,size_16,color_FFFFFF,t_70#pic_center',
    headers=headers)

# wb 以二进制打开文件并写入,文件名不存在会创建
with open('./image/1.png', 'wb') as f:
    f.write(r.content)  # 写入二进制内容

方式2:

import urllib.request
import os
import ssl

ssl._create_default_https_context = ssl._create_unverified_context
# 创建目录文件夹
os.makedirs('./image/', exist_ok=True)

# 发送get请求图片url
url = 'https://img-blog.csdnimg.cn/20200922093507346.png'

# 直接将对应信息写入文件。格式:urllib.request.urlretrieve(url,filename=本地文件地址)
urllib.request.urlretrieve(url, filename=r"./image/01.png")

# urlretrieve执行的过程中,会产生缓存,清除缓存
urllib.request.urlcleanup()

print(1)

 

posted @ 2022-09-13 17:53  残城碎梦  阅读(43)  评论(0编辑  收藏  举报