Python3 实例(三)

Python 十进制转二进制、八进制、十六进制

以下代码用于实现十进制转二进制、八进制、十六进制:

实例(Python 3.0+)

-- coding: UTF-8 --

Filename : test.py

author by : www.runoob.com

获取用户输入十进制数

dec = int(input("输入数字:"))

print("十进制数为:", dec)
print("转换为二进制为:", bin(dec))
print("转换为八进制为:", oct(dec))
print("转换为十六进制为:", hex(dec))
执行以上代码输出结果为:

python3 test.py
输入数字:5
十进制数为:5
转换为二进制为: 0b101
转换为八进制为: 0o5
转换为十六进制为: 0x5

python3 test.py
输入数字:12
十进制数为:12
转换为二进制为: 0b1100
转换为八进制为: 0o14
转换为十六进制为: 0xc
笔记

具体实现

十进制到二进制:

def dec2bin(num):
l = []
if num < 0:
return '-' + dec2bin(abs(num))
while True:
num, remainder = divmod(num, 2)
l.append(str(remainder))
if num == 0:
return ''.join(l[::-1])
十进制到八进制:

def dec2oct(num):
l = []
if num < 0:
return '-' + dec2oct(abs(num))
while True:
num, remainder = divmod(num, 8)
l.append(str(remainder))
if num == 0:
return ''.join(l[::-1])
十进制到十六进制:

base = [str(x) for x in range(10)] + [ chr(x) for x in range(ord('A'),ord('A')+6)]def dec2hex(num):
l = []
if num < 0:
return '-' + dec2hex(abs(num))
while True:
num,rem = divmod(num, 16)
l.append(base[rem])
if num == 0:
return ''.join(l[::-1])
Python ASCII码与字符相互转换

以下代码用于实现ASCII码与字符相互转换:

实例(Python 3.0+)

Filename : test.py

author by : www.runoob.com

用户输入字符

c = input("请输入一个字符: ")

用户输入ASCII码,并将输入的数字转为整型

a = int(input("请输入一个ASCII码: "))

print( c + " 的ASCII 码为", ord(c))
print( a , " 对应的字符为", chr(a))
执行以上代码输出结果为:

python3 test.py
请输入一个字符: a
请输入一个ASCII码: 101
a 的ASCII 码为 97
101 对应的字符为 e
Python 最大公约数算法

以下代码用于实现最大公约数算法:

实例(Python 3.0+)

Filename : test.py

author by : www.runoob.com

定义一个函数

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

输入第一个数字: 54
输入第二个数字: 24
54 和 24 的最大公约数为 6
笔记

可按以下思路减少循环次数:

  1. 当最小值为最大公约数时,直接返回;

  2. 当最小值不为最大公约数时,最大公约数不会大于最小值的1/2;

  3. 求最大公约数理应从大到小循环递减求最大。

实例:

def gcd(a, b):
if b > a:
a, b = b, a # b为最小值
if a % b == 0:
return b # 判断b是否为最大公约数
for i in range(b//2+1, 1, -1): # 倒序求最大公约数更合理
if b % i == 0 and a % i == 0:
return i
return 0while(True):
a = int(input("Input 'a':"))
b = int(input("Input 'b':"))
print(gcd(a, b))
Python 最小公倍数算法

以下代码用于实现最小公倍数算法:

实例(Python 3.0+)

Filename : test.py

author by : www.runoob.com

定义函数

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

输入第一个数字: 54
输入第二个数字: 24
54 和 24 的最小公倍数为 216
笔记

按以下思路可减少循环次数:

1.当最大值为最小公倍数时,返回最大值;

2.当最大值不为最小公倍数时,最小公倍数为最大值的倍数。

实例:

最小公倍数def lcm(a, b):

if b > a:
    a, b = b, a     # a为最大值
if a % b == 0:
    return a        # 判断a是否为最小公倍数
mul = 2             # 最小公倍数为最大值的倍数
while a*mul % b != 0:
    mul += 1
return a*mul

while(True):
a = int(input("Input 'a':"))
b = int(input("Input 'b':"))
print(lcm(a, b))
Python 简单计算器实现

以下代码用于实现简单计算器实现,包括两个数基本的加减乘除运输:

实例(Python 3.0+)

Filename : test.py

author by : www.runoob.com

定义函数

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

选择运算:
1、相加
2、相减
3、相乘
4、相除
输入你的选择(1/2/3/4):2
输入第一个数字: 5
输入第二个数字: 2
5 - 2 = 3
笔记

参考方法:

def divide(x,y):
#相除
if y ==0:
print('0不能做为分母')
return
else:
return x/y

choice =int(input("请选择运算:\n1,相加\n2,相减\n3,相乘\n4,相除\n请输入运算(1/2/3/4):"))
num1 = float(input("请输入第一个数:"))
num2 = float(input("请输入第二个数:"))if choice ==1:
print("{}+{}={}".format(num1,num2,num1+num2))elif choice ==2:
print("{}-{}={}".format(num1,num2,num1-num2))elif choice ==3:
print("{}x{}={}".format(num1,num2,num1*num2))elif choice ==4:
print("{}/{}={}".format(num1,num2,divide(num1,num2)))else:
print("选择的运算为非法输入")
Python 生成日历

以下代码用于生成指定日期的日历:

实例(Python 3.0+)

Filename : test.py

author by : www.runoob.com

引入日历模块

importcalendar

输入指定年月

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

显示日历

print(calendar.month(yy,mm))
执行以上代码输出结果为:

输入年份: 2015
输入月份: 6
June 2015
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Python 使用递归斐波那契数列

以下代码使用递归的方式来生成斐波那契数列:

实例(Python 3.0+)

Filename : test.py

author by : www.runoob.com

def recur_fibo(n):
"""递归函数
输出斐波那契数列"""
if n <= 1:
return n
else:
return(recur_fibo(n-1) + recur_fibo(n-2))

获取用户输入

nterms = int(input("您要输出几项? "))

检查输入的数字是否正确

if nterms <= 0:
print("输入正数")
else:
print("斐波那契数列:")
for i in range(nterms):
print(recur_fibo(i))
执行以上代码输出结果为:

您要输出几项? 10
斐波那契数列:
0
1
1
2
3
5
8
13
21
34
Python 文件 IO

以下代码演示了Python基本的文件操作,包括 open,read,write:

实例(Python 3.0+)

Filename : test.py

author by : www.runoob.com

写文件

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

该文本会写入到文件中
看到我了吧!
笔记

w, r, wt, rt 都是 python 里面文件操作的模式。

w 是写模式,r 是读模式。

t 是 windows 平台特有的所谓 text mode(文本模式),区别在于会自动识别 windows 平台的换行符。

类 Unix 平台的换行符是 \n,而 windows 平台用的是 \r\n 两个 ASCII 字符来表示换行,python 内部采用的是 \n 来表示换行符。

rt 模式下,python 在读取文本时会自动把 \r\n 转换成 \n。

wt 模式下,Python 写文件时会用 \r\n 来表示换行。

Python 字符串判断

以下代码演示了Python字符串的判断:

实例

Filename : test.py

author by : www.runoob.com

测试实例一

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

print("------------------------")

测试实例二

print("测试实例二")
str = "runoob"
print(str.isalnum())
print(str.isalpha())
print(str.isdigit())
print(str.islower())
print(str.isupper())
print(str.istitle())
print(str.isspace())
执行以上代码输出结果为:

测试实例一
False
False
False
True
False
False
False

测试实例二
True
True
False
True
False
False
Python 字符串大小写转换

以下代码演示了如何将字符串转换为大写字母,或者将字符串转为小写字母等:

Filename : test.py

author by : www.runoob.com

str = "www.runoob.com"
print(str.upper()) # 把所有字符中的小写字母转换成大写字母
print(str.lower()) # 把所有字符中的大写字母转换成小写字母
print(str.capitalize()) # 把第一个字母转化为大写字母,其余小写
print(str.title()) # 把每个单词的第一个字母转化为大写,其余小写
执行以上代码输出结果为:

WWW.RUNOOB.COM
www.runoob.com
Www.runoob.com
Www.Runoob.Com

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

Python3 实例(三)
Python3 实例(三)

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

猜你喜欢

转载自blog.51cto.com/14186420/2405429
今日推荐