python-10.菜鸟教程-5-总纲实例演示

Python 数字求和

以下实例为通过用户输入两个数字,并计算两个数字之和:


# -*- coding: UTF-8 -*-
 
# Filename : test.py
# author by : www.runoob.com
 
# 用户输入数字
num1 = input('输入第一个数字:')
num2 = input('输入第二个数字:')
 
# 求和
sum = float(num1) + float(num2)
 
# 显示计算结果
print('数字 {0} 和 {1} 相加结果为: {2}'.format(num1, num2, sum))

执行以上代码输出结果为:

输入第一个数字:1.5
输入第二个数字:2.5
数字 1.5 和 2.5 相加结果为: 4.0

在该实例中,我们通过用户输入两个数字来求和。使用了内置函数 input() 来获取用户的输入,input() 返回一个字符串,所以我们需要使用 float() 方法将字符串转换为数字。

两数字运算,求和我们使用了加号 (+)运算符,除此外,还有 减号 (-), 乘号 (*), 除号 (/), 地板除 (//) 或 取余 (%)。更多数字运算可以查看我们的Python 数字运算

我们还可以将以上运算,合并为一行代码:


# -*- coding: UTF-8 -*-
 
# Filename : test.py
# author by : www.runoob.com
 
print('两数之和为 %.1f' %(float(input('输入第一个数字:'))+float(input('输入第二个数字:'))))

执行以上代码输出结果为:

$ python test.py 
输入第一个数字:1.5
输入第二个数字:2.5
两数之和为 4.0

Python 平方根

平方根,又叫二次方根,表示为〔√ ̄〕,如:数学语言为:√ ̄16=4。语言描述为:根号下16=4。

以下实例为通过用户输入一个数字,并计算这个数字的平方根:


# -*- coding: UTF-8 -*-
 
# Filename : test.py
# author by : www.runoob.com
 
num = float(input('请输入一个数字: '))
num_sqrt = num ** 0.5
print(' %0.3f 的平方根为 %0.3f'%(num ,num_sqrt))

执行以上代码输出结果为:

$ python test.py 
请输入一个数字: 4
 4.000 的平方根为 2.000

在该实例中,我们通过用户输入一个数字,并使用指数运算符 ** 来计算该数的平方根。

该程序只适用于正数。负数和复数可以使用以下的方式:


# -*- coding: UTF-8 -*-
 
# Filename : test.py
# author by : www.runoob.com
 
# 计算实数和复数平方根
# 导入复数数学模块
 
import cmath
 
num = int(input("请输入一个数字: "))
num_sqrt = cmath.sqrt(num)
print('{0} 的平方根为 {1:0.3f}+{2:0.3f}j'.format(num ,num_sqrt.real,num_sqrt.imag))

执行以上代码输出结果为:

$ python test.py 
请输入一个数字: -8
-8 的平方根为 0.000+2.828j

该实例中,我们使用了 cmath (complex math) 模块的 sqrt() 方法。

Python 二次方程

以下实例为通过用户输入数字,并计算二次方程:


# Filename : test.py
# author by : www.runoob.com
 
# 二次方程式 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))

执行以上代码输出结果为:

$ python test.py 
输入 a: 1
输入 b: 5
输入 c: 6
结果为 (-3+0j) 和 (-2+0j)

该实例中,我们使用了 cmath (complex math) 模块的 sqrt() 方法 来计算平方根。

Python 计算三角形的面积

以下实例为通过用户输入三角形三边长度,并计算三角形的面积:

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

# Filename : test.py
# author by : www.runoob.com


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)

执行以上代码输出结果为:

$ python test.py 
输入三角形第一边长: 5
输入三角形第二边长: 6
输入三角形第三边长: 7
三角形面积为 14.70

Python 计算圆的面积

圆的面积公式为 :

公式中 r 为圆的半径。

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


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

以上实例输出结果为:

圆的面积为 78.550000

Python 随机数生成

以下实例演示了如何生成一个随机数:

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

# Filename : test.py
# author by : www.runoob.com

# 生成 0 ~ 9 之间的随机数

# 导入 random(随机数) 模块
import random

print(random.randint(0, 9))

执行以上代码输出结果为:

4

以上实例我们使用了 random 模块的 randint() 函数来生成随机数,你每次执行后都返回不同的数字(0 到 9),该函数的语法为:

random.randint(a,b)

函数返回数字 N ,N 为 a 到 b 之间的数字(a <= N <= b),包含 a 和 b。

Python 摄氏温度转华氏温度 

以下实例演示了如何将摄氏温度转华氏温度:

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

# Filename : test.py
# author by : www.runoob.com

# 用户输入摄氏温度

# 接收用户输入
celsius = float(input('输入摄氏温度: '))

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

执行以上代码输出结果为:

输入摄氏温度: 38
38.0 摄氏温度转为华氏温度为 100.4 

以上实例中,摄氏温度转华氏温度的公式为 celsius * 1.8 = fahrenheit - 32。所以得到以下式子:

celsius = (fahrenheit - 32) / 1.8

 摄氏度和华氏度相互转换

eg1:

#!/usr/bin/python
# -*- coding:utf-8 -*-

a = int(input('摄氏度转换为华氏温度请按1\n华氏温度转化为摄氏度请按2\n'))
while a != 1 and a != 2:
    a = int(input('你选择不正确,请重新输入。\n摄氏度转换为华氏温度请按1\n华氏温度转换为摄氏度请按2\n'))
if a == 1:
    celsius = float(input('输入摄氏度:'))
    fahrenheit = (celsius * 1.8) + 32  # 计算华氏温度
    print('%.1f摄氏度转为华氏温度为%.1f' % (celsius, fahrenheit))
else:
    fahrenheit = float(input('输入华氏度:'))
    celsius = (fahrenheit - 32) / 1.8  # 计算摄氏度
    print('%.1f华氏度转为摄氏度为%.1f' % (fahrenheit, celsius))
摄氏度转换为华氏温度请按1
华氏温度转化为摄氏度请按2
3
你选择不正确,请重新输入。
摄氏度转换为华氏温度请按1
华氏温度转换为摄氏度请按2
9
你选择不正确,请重新输入。
摄氏度转换为华氏温度请按1
华氏温度转换为摄氏度请按2
2
输入华氏度:100.4
100.4华氏度转为摄氏度为38.0

eg2: 

a = input("请输入带有符号的温度值: ")
if a[-1] in ['F', 'f']:
    C = (eval(a[0:-1]) - 32) / 1.8
    print("转换后的温度是{:.1f}C".format(C))
elif a[-1] in ['C', 'c']:
    F = 1.8 * eval(a[0:-1]) + 32
    print("转换后的温度是{:.1f}F".format(F))
else:
    print("输入格式错误")

 测试结果:

请输入带有符号的温度值: 38C
转换后的温度是100.4F

 

请输入带有符号的温度值: 100.4F
转换后的温度是38.0C

Python 交换变量

以下实例通过用户输入两个变量,并相互交换:

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

# Filename : test.py
# author by : www.runoob.com

# 用户输入

x = input('输入 x 值: ')
y = input('输入 y 值: ')

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

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

执行以上代码输出结果为:

输入 x 值: 2
输入 y 值: 3
交换后 x 的值为: 3
交换后 y 的值为: 2

以上实例中,我们创建了临时变量 temp ,并将 x 的值存储在 temp 变量中,接着将 y 值赋给 x,最后将 temp 赋值给 y 变量。

不使用临时变量

我们也可以不创建临时变量,用一个非常优雅的方式来交换变量:

x,y = y,x

所以以上实例就可以修改为:

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

# Filename : test.py
# author by : www.runoob.com

# 用户输入

x = input('输入 x 值: ')
y = input('输入 y 值: ')

# 不使用临时变量
x, y = y, x

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

执行以上代码输出结果为:

输入 x 值: 1
输入 y 值: 2
交换后 x 的值为: 2
交换后 y 的值为: 1

异或形式

# 交换变量
x = int(input('输入 X 值:'))
y = int(input('输入 Y 值:'))
x = x ^ y
y = x ^ y
x = x ^ y
print('交换后的 X 值为:', x)
print('交换后的 Y 值为:', y)
输入 X 值:2
输入 Y 值:3
交换后的 X 值为: 3
交换后的 Y 值为: 2

 不使用临时变量:

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

# 用户输入
x = int(input('输入 x 值: '))
y = int(input('输入 y 值: '))

x = x + y
y = x - y
x = x - y

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

Python if 语句

以下实例通过使用 if...elif...else 语句判断数字是正数、负数或零:


# Filename : test.py
# author by : www.runoob.com
 
# 用户输入数字
 
num = float(input("输入一个数字: "))
if num > 0:
   print("正数")
elif num == 0:
   print("零")
else:
   print("负数")

执行以上代码输出结果为:

输入一个数字: 3
正数

我们也可以使用内嵌 if 语句来实现:


# Filename :test.py
# author by : www.runoob.com
 
# 内嵌 if 语句
 
num = float(input("输入一个数字: "))
if num >= 0:
   if num == 0:
       print("零")
   else:
       print("正数")
else:
   print("负数")

执行以上代码输出结果为:

输入一个数字: 0
零

优化增加输入字符的判断以及异常输出:

while True:
    try:
        num = float(input('请输入一个数字:'))
        if num == 0:
            print('输入的数字是零')
        elif num > 0:
            print('输入的数字是正数')
        else:
            print('输入的数字是负数')
        break
    except ValueError:
        print('输入无效,需要输入一个数字')
请输入一个数字:@
输入无效,需要输入一个数字
请输入一个数字:KKK
输入无效,需要输入一个数字
请输入一个数字:-6
输入的数字是负数

Python 判断字符串是否为数字

以下实例通过创建自定义函数 is_number() 方法来判断字符串是否为数字:

# -*- coding: UTF-8 -*-
# Filename : test.py
# author by : www.runoob.com


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

我们也可以使用内嵌 if 语句来实现:

执行以上代码输出结果为:

False
True
True
True
True
True
True
True
False

更多方法

Python isdigit() 方法检测字符串是否只由数字组成。

Python isnumeric() 方法检测字符串是否只由数字组成。这种方法是只针对unicode对象。

注意:教程代码当出现多个汉字数字时会报错,通过遍历字符串解决  False 如下

# 中文数字
print(is_number('四百五十六'))     # False


False

# 教程代码当出现多个汉字数字时会报错,通过遍历字符串解决
# 对汉字表示的数字也可分辨


def is_number(s):
    try:                            # 如果能运行float(s)语句,返回True(字符串s是浮点数)
        float(s)
        return True
    except ValueError:              # ValueError为Python的一种标准异常,表示"传入无效的参数"
        pass                        # 如果引发了ValueError这种异常,不做任何事情(pass:不做任何事情,一般用做占位语句)
    try:
        import unicodedata          # 处理ASCii码的包
        for i in s:
            unicodedata.numeric(i)  # 把一个表示数字的字符串转换为浮点数返回的函数
            # return True
        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
False
True
True
True
True
True
True
True
False

Python 判断奇数偶数

以下实例用于判断一个数字是否为奇数或偶数:

# Filename : test.py
# author by : www.runoob.com

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

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

我们也可以使用内嵌 if 语句来实现:

执行以上代码输出结果为:

输入一个数字: 3
3 是奇数
while True:
    try:
        num = int(input('输入一个整数:'))  # 判断输入是否为整数
    except ValueError:  # 不是纯数字需要重新输入
        print("输入的不是整数!")
        continue
    if num % 2 == 0:
        print('偶数')
    else:
        print('奇数')
    break
输入一个整数:SS
输入的不是整数!
输入一个整数:GG
输入的不是整数!
输入一个整数:6.23
输入的不是整数!
输入一个整数:6.28
输入的不是整数!
输入一个整数:7.0
输入的不是整数!
输入一个整数:7
奇数

 Python 判断闰年

以下实例用于判断用户输入的年份是否为闰年:

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

# Filename : test.py
# author by : www.runoob.com

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))

我们也可以使用内嵌 if 语句来实现:

执行以上代码输出结果为:

输入一个年份: 2000
2000 是闰年
输入一个年份: 2011
2011 不是闰年

参考方法:

#!/usr/bin/python3

year = int(input("请输入一个年份:"))
if (year % 4) == 0 and (year % 100) != 0 or (year % 400) == 0:
    print("{0}是闰年".format(year))
else:
    print("{0}不是闰年".format(year))

但其实 Python 的 calendar 库中已经封装好了一个方法 isleap() 来实现这个判断是否为闰年:

import calendar

print(calendar.isleap(2000))

print(calendar.isleap(1900))

根据用户输入判断:

import calendar

year = int(input("请输入年份:"))
check_year = calendar.isleap(year)
if check_year:
    print("闰年")
else:
    print("平年")
Calendar.py
"""Calendar printing functions

Note when comparing these calendars to the ones printed by cal(1): By
default, these calendars have Monday as the first day of the week, and
Sunday as the last (the European convention). Use setfirstweekday() to
set the first day of the week (0=Monday, 6=Sunday)."""

import sys
import datetime
import locale as _locale
from itertools import repeat

__all__ = ["IllegalMonthError", "IllegalWeekdayError", "setfirstweekday",
           "firstweekday", "isleap", "l
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值