Python3 实例(二)

Python 判断字符串是否为数字

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

实例(Python 3.0+)

-- 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 判断奇数偶数

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

实例(Python 3.0+)

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
Python 判断闰年

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

实例(Python 3.0+)

-- 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 不是闰年
Python 获取最大值函数

以下实例中我们使用max()方法求最大值:

实例(Python 3.0+)

-- coding: UTF-8 --

Filename : test.py

author by : www.runoob.com

最简单的

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))
执行以上代码输出结果为:

2
b
2
2
80, 100, 1000 最大值为: 1000
-20, 100, 400最大值为: 400
-80, -20, -10最大值为: -10
0, 100, -400最大值为: 100
Python 质数判断

一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除(2, 3, 5, 7等),换句话说就是该数除了1和它本身以外不再有其他的因数。

test.py 文件:

-- coding: UTF-8 --

Filename : test.py

author by : www.runoob.com

Python 程序用于检测用户输入的数字是否为质数

用户输入数字

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,"不是质数")
执行以上代码输出结果为:

$ python3 test.py
请输入一个数字: 11 不是质数
$ python3 test.py
请输入一个数字: 44 不是质数2 乘于 2 是 4
$ python3 test.py
请输入一个数字: 55 是质数
Python 输出指定范围内的素数

素数(prime number)又称质数,有无限个。除了1和它本身以外不再被其他的除数整除。

以下实例可以输出指定范围内的素数:

实例(Python 3.0+)

#!/usr/bin/python3

输出指定范围内的素数

take input from the userlower = int(input("输入区间最小值: "))upper = int(input("输入区间最大值: "))

for num inrange(lower,upper + 1): # 素数大于 1
if num > 1: for i in range(2,num): if (num % i) == 0: break
else: print(num)
执行以上程序,输出结果为:

$ python3 test.py
输入区间最小值: 1输入区间最大值: 100
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
Python 阶乘实例

整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,0的阶乘为1。即:n!=1×2×3×...×n。

实例

#!/usr/bin/python3

Filename : test.py

author by : www.runoob.com

通过用户输入数字计算阶乘

获取用户输入的数字

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))
执行以上代码输出结果为:

请输入一个数字: 3
3 的阶乘为 6
Python 九九乘法表

以下实例演示了如何实现九九乘法表:

实例

-- coding: UTF-8 --

Filename : test.py

author by : www.runoob.com

九九乘法表

for i in range(1, 10):
for j in range(1, i+1):
print('{}x{}={}\t'.format(j, i, i*j), end='')
print()
执行以上代码输出结果为:

1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
通过指定end参数的值,可以取消在末尾输出回车符,实现不换行。

Python 斐波那契数列

斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13,特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。

Python 实现斐波那契数列代码如下:

实例(Python 3.0+)

-- coding: UTF-8 --

Filename : test.py

author by : www.runoob.com

Python 斐波那契数列实现

获取用户输入数据

nterms = int(input("你需要几项?"))

第一和第二项

n1 = 0
n2 = 1
count = 2

判断输入的值是否合法

if nterms <= 0:
print("请输入一个正整数。")
elif nterms == 1:
print("斐波那契数列:")
print(n1)
else:
print("斐波那契数列:")
print(n1,",",n2,end=" , ")
while count < nterms:
nth = n1 + n2
print(nth,end=" , ")

更新值

   n1 = n2
   n2 = nth
   count += 1

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

你需要几项? 10
斐波那契数列:
0 , 1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 ,
Python 阿姆斯特朗数

如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5^3 + 3^3 = 153。

1000以内的阿姆斯特朗数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。

以下代码用于检测用户输入的数字是否为阿姆斯特朗数:

实例(Python 3.0+)

Filename : test.py

author by : www.runoob.com

Python 检测用户输入的数字是否为阿姆斯特朗数

获取用户输入的数字

num = int(input("请输入一个数字: "))

初始化变量

sumsum = 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,"不是阿姆斯特朗数")
执行以上代码输出结果为:

$ python3 test.py
请输入一个数字: 345
345 不是阿姆斯特朗数

$ python3 test.py
请输入一个数字: 153
153 是阿姆斯特朗数

$ python3 test.py
请输入一个数字: 1634
1634 是阿姆斯特朗数
获取指定期间内的阿姆斯特朗数

实例(Python 3.0+)

Filename :test.py

author by : www.runoob.com

获取用户输入数字

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

ifnum == sum:
print(num)
执行以上代码输出结果为:

最小值: 1
最大值: 10000
1
2
3
4
5
6
7
8
9
153
370
371
407
1634
8208
9474
以上实例中我们输出了 1 到 10000 之间的阿姆斯特朗数。

好了,本文就给大伙分享到这里,文末分享一波福利

Python3 实例(二)

Python3 实例(二)

获取方式:加python群 839383765 即可获取!

转载于:https://blog.51cto.com/14186420/2404797

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值