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

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


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

原文地址:https://blog.51cto.com/14186420/2405429

时间: 2024-11-07 15:05:58

Python3 实例(三)的相关文章

C语言库函数大全及应用实例三

原文:C语言库函数大全及应用实例三 [编程资料]C语言库函数大全及应用实例三 函数名: ecvt 功 能: 把一个浮点数转换为字符串 用 法: char ecvt(double value, int ndigit, int *decpt, int *sign); 程序例: #i nclude #i nclude #i nclude int main(void) { char *string; double value; int dec, sign; int ndig = 10; clrscr()

动态规划算法实例三则

动态规划属于不好理解的计算机基本算法之一. 需要经过多次实践,才能体会其精妙之处. 其精妙的地方在于:降低运算量. 下面通过实例理解动态规划解题思路. 实例一:求数组的最大连续和子数组.参考文章 用动态规划来解,首先得考虑状态和状态转移方程.如果我们把题述数组看成序列,那么是不是可以用序列DP来考虑呢? 我们不妨考虑一个这样的序列:1,-3,5,-2,4 a[i]表示这个序列的第 i 个元素,dp[i]表示最后一个元素是a[i]的最大连续和(此乃状态,是不是跟LIS的DP解法有点类似),于是:

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 Trueexcept ValueError: pass try: import unicodedata unicodedata.numeric(

Python3 实例

Python 判断字符串是否为数字 以下实例通过创建自定义函数 is_number() 方法来判断字符串是否为数字: 实例(Python 3.0+) # -*- coding: UTF-8 -*-# Filename : test.py# author by : www.runoob.comdef is_number(s): try: float(s) return True except ValueError: pass try: import unicodedata unicodedata.

【FastDev4Android框架开发】RecyclerView完全解析之结合AA(Android Annotations)注入框架实例(三十)

(一).前言: 话说RecyclerView已经面市很久,也在很多应用中得到广泛的使用,在整个开发者圈子里面也拥有很不错的口碑,那说明RecyclerView拥有比ListView,GridView之类控件有很多的优点,例如:数据绑定,Item View创建,View的回收以及重用等机制.本系列文章会包括到以下三个部分: RecyclerView控件的基本使用,包括基础,进阶,高级部分,动画之类(点击进入) RecyclerView控件的实战实例(点击进入) RecyclerView控件集合AA

python3基础三

一.if语句 if condition_1: statement_block_1 elif condition_2: statement_block_2 else: statement_block_3 1.每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块 2.使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块 3.在Python中没有switch – case语句 4.条件:(1)检查是否相等: ==:(2)检查是否不相等:!=:(3)比较数字:==,<=,>=:(4

Python3 实例(一)

Python Hello World 实例 以下实例为学习Python的第一个实例,即如何输出"Hello World!": 实例 -- coding: UTF-8 -- Filename : helloworld.py author by : www.runoob.com 该实例输出 Hello World! print('Hello World!')执行以上代码输出结果为: Hello World!Python 数字求和 以下实例为通过用户输入两个数字,并计算两个数字之和: 实例(

Python3 实例(五)

Python 翻转列表 定义一个列表,并将它翻转. 例如,对调第一个和第三个元素: 翻转前 : list = [10, 11, 12, 13, 14, 15]翻转后 : [15, 14, 13, 12, 11, 10]实例 1 def Reverse(lst): return [ele for ele in reversed(lst)] lst = [10, 11, 12, 13, 14, 15] print(Reverse(lst)) 以上实例输出结果为: [15, 14, 13, 12, 1

Python3 实例(八)

Python 归并排序 归并排序(英语:Merge sort,或mergesort),是创建在归并操作上的一种有效的排序算法.该算法是采用分治法(Divide and Conquer)的一个非常典型的应用. 分治法: 分割:递归地把当前序列平均分割成两半. 集成:在保持元素顺序的同时将上一步得到的子序列集成到一起(归并). 实例 def merge(arr, l, m, r): n1 = m - l + 1n2 = r- m # 创建临时数组 L = [0] * (n1) R = [0] * (