Python基础编程:10个经典入门实例代码详解

不晚
不晚
发布时间:2026-10-12| 4人浏览过
原创

本文精选10个Python基础编程实例,涵盖数字组合、利润计算、完全平方数判断、日期处理、排序、列表操作、乘法表、延时输出及斐波那契数列等核心概念。代码基于Python 2.7编写,针对Python 3用户提供了print函数调整建议,适合初学者通过实际案例掌握编程逻辑与语法。

注意:本文示例代码基于Python 2.7环境编写。如果您使用的是Python 3.0及以上版本,请务必注意print()函数的使用差异,因为Python 3中print已改为函数调用形式。若因版本兼容性问题产生评论,作者将不予回复。

1.题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

程序分析:百位、十位和个位上的数字均可从1、2、3、4中选取。通过遍历所有可能的排列组合,并剔除包含重复数字的排列,即可得到结果。程序源代码:

# -*- coding: UTF-8 -*-
for i in range(1,5):
 for j in range(1,5):
  for k in range(1,5):
   if (i != j) and (i != k) and (j != k):
    print i,j,k

2.题目:企业发放的奖金根据利润提成。具体规则如下:利润(I)低于或等于10万元时,奖金按10%提成;利润高于10万元且低于20万元时,10万元及以下部分按10%提成,超出10万元的部分按7.5%提成;利润在20万到40万之间时,超出20万元的部分按5%提成;利润在40万到60万之间时,超出40万元的部分按3%提成;利润在60万到100万之间时,超出60万元的部分按1.5%提成;超过100万元的部分按1%提成。请编写程序,从键盘输入当月利润I,计算并输出应发放的奖金总数。

程序分析:建议利用数轴分段定位的方法进行逻辑构建。在定义变量时,请注意将奖金金额定义为长整型以避免精度问题。

方法一:该方法基于数学推导,通过列出每种利润区间的奖金计算公式,简化表达式后直接根据输入的利润I计算总奖金。这种方法将数学逻辑直接转化为代码,虽然思路较为直观笨拙,但非常适合编程初学者理解问题本质。具体算法推导需在纸上完成,随后转化为代码实现。

# -*- coding: UTF-8 -*-
while True:
 I = input("pls input the lirun:")
 if I <= 10:
  a = I * 0.01
  print a
 elif I <= 20 and I > 10:
  b =0.25 + I * 0.075
  print b
 elif I <= 40 and I > 20:
  c = 0.75 + I * 0.05
  print c
 elif I <= 60 and I > 40:
  d = 0.95 + I * 0.03
  print d
 elif I <= 60 and I > 100:
  e = 2 + I * 0.015
  print e
 else:
  f = 2.95 + I * 0.01
  print f

方法二:该方法逻辑较为复杂,适合具备一定编程基础的用户阅读。

# -*- coding: UTF-8 -*-
I = int(raw_input('净利润:'))
#这应该就是各个分界值了,把它们放在列表里方便访问
arr = [1000000,600000,400000,200000,100000,0] 
#这是各个分界值所对应的奖金比例值
rat = [0.01,0.015,0.03,0.05,0.075,0.1] 
 #这是总奖金的初始值
r = 0  
 #有6个分界值当然要循环6次     
for idx in range(0,6):  
 if I > arr[idx]:
  r = r + (I - arr[idx]) * rat[idx] 
  print (I - arr[idx]) * rat[idx]
  I = arr[idx]
print r

3.题目:一个整数,它加上100后是一个完全平方数,再加上268后也是一个完全平方数,请问该数是多少?

程序分析:在10000以内的整数范围内进行判断。将该数加上100后开方,再加上268后开方,如果两个开方结果均为整数(即满足完全平方数条件),则该数即为所求。此处需使用数学库中的开方函数sqrt。

# -*- coding: UTF-8 -*-
import math
for i in range(10000):
 x = int(math.sqrt(i + 100))
 y = int(math.sqrt(i + 268))
 if (x * x == i + 100) and (y * y == i + 268):
  print i

4.题目:输入某年某月某日,判断这一天是这一年的第几天?

程序分析:以3月5日为例,计算逻辑为:先累加前两个月的天数,再加上5天,即为当年的第几天。特殊情况处理:若当年为闰年且输入月份大于3月,则需额外多加一天。

思路:首先将输入的日期字符串分割为年、月、日三个整数,然后根据具体月份和闰年情况依次编写计算逻辑。

# -*- coding: UTF-8 -*-
x = raw_input("请输入日期,比如20160506:")
year = int(x[:4])
month = int(x[4:6])
day = int(x[6:8])
month_day = [31,28,31,30,31,30,31,31,30,31,30,31]
data = sum(month_day[:(month-1)],day)
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
 if month > 2:
  data = data + 1
print "it is the %dth day"% (data)

5.题目:输入三个整数x、y、z,请把这三个数由小到大输出。

程序分析一:采用交换法,目标是使x成为最小值。首先比较x与y,若x>y则交换两者的值;接着比较x与z,若x>z则交换两者的值。经过这两步操作,x即为最小值。

# -*- coding: UTF-8 -*-
l = []
for i in range(3):
 x = int(raw_input('integer:\n'))
 l.append(x) #这里用append()函数,意思是追加元素
 l.sort()
print l

程序分析二:使用一个变量存储最小值,通过三个数之间的两两比较与交换来实现排序,这是较为常用的基础思路。

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

x = input("input a num:")
y = input("input a num:")
z = input("input a num:")
temp = 0
if x < y:
 temp = x
 x = y
 y = temp
if x < z:
 temp = x
 x = z
 z = temp
if y < z:
 temp = y
 y = z
 z = temp
print z,y,x #由于上面是由小到大来比较和交换的,所以这里需要逆序输出

程序分析三:利用内置排序函数sort进行排序,该函数可将数字列表按从小到大的顺序重新排列。

# -*- coding: UTF-8 -*-
x = input("input a num:")
y = input("input a num:")
z = input("input a num:")
y = [x,y,z] #注意,这里只能是列表,不能是元组,因为元组是不可改变的,你懂得!!
y.sort()
print y

6.题目:将一个列表的数据复制到另一个列表中。

注意:部分初学者可能会想到使用append()函数,但需特别注意,append()函数每次仅追加一个元素。如果使用append()将一个列表追加到另一个列表,原列表会被视为单个元素加入,导致结果嵌套。示例如下:

方法一:

# -*- coding: UTF-8 -*-
l1 = [1,2,3]
l2 = [4,5,6]
l1.append(l2)
print l1

输出:[1, 2, 3, [4, 5, 6]]

方法二:使用“+”运算符连接两个列表,即将l2列表的数据复制到l1列表中。

# -*- coding: UTF-8 -*-
l1 = [1,2,3]
l2 = [4,5,6]
print l1 + l2

输出:[1, 2, 3, 4, 5, 6]

方法三:使用列表切片[:]。若不指定start和end参数,切片将输出该列表的所有元素,从而实现复制。

# -*- coding: UTF-8 -*-
a = [1, 2, 3] #把列表a复制到列表b
b = a[:]
print b

7.题目:输出9*9乘法口诀表。

程序分析:分行与列考虑,共9行9列,i控制行,j控制列。如果不要求特定格式,可以任意格式输出,如下所示:

# -*- coding: UTF-8 -*-
for i in range(1,10):
 for j in range(1,10):
  x = i * j
  print "%d * %d = %d" % (i,j,x)

如果需要考虑输出格式,我们后续的文章会详细讲解。

8.题目:暂停一秒输出。

程序分析:暂停时间的函数为time.sleep(),此处可随意举例,列表、元组、字典等数据结构均可用于演示。

# -*- coding: UTF-8 -*-
import time
d = {"a":1,"b":2}
for i in d:
 print i
 time.sleep(1) #暂停一秒输出

9.题目:斐波那契数列。

程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。在数学上,费波那契数列是以递归的方法来定义:

n = 1 时 f(1) = 1
n = 2 时 f(2) = 1
n = 3 时 f(3) = f(3-1) + f(3-2)
    = f(2) + f(1)
    = 1 + 1
    = 2
n = 4 时 f(4) = f(4-1) + f(4-2)
    = f(3) + f(2)
    = 2 + 1
    = 3
n = 5 时 f(5) = f(5-1) + f(5-2)
    = f(4) + f(3)
    = 3 + 2
    = 5
.....   ...

所以,当 n >= 2 时,表达式为f(n) = f(n-1) + f(n-2)

方法一:

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

def fib(n):
 a,b = 1,1
 for i in range(n-1):
  a,b = b,a+b
 return a

# 输出了第10个斐波那契数列
 print fib(10)

方法二:

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

# 使用递归
def fib(n):
 if n==1 or n==2:
  return 1
 return fib(n-1)+fib(n-2)

# 输出了第10个斐波那契数列
print fib(10)

方法三:如果您需要输出指定个数的斐波那契数列,可以使用以下代码:

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

def fib(n):
 if n == 1:
  return [1]
 if n == 2:
  return [1, 1]
 fibs = [1, 1]
 for i in range(2, n):
  fibs.append(fibs[-1] + fibs[-2])
 return fibs

# 输出前 10 个斐波那契数列
print fib(10)

10.题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

程序分析:经过计算和寻找规律得到,兔子的数量规律为数列1,1,2,3,5,8,13,21…,这是典型的斐波那契数列。这也是将斐波那契数列放在第九题的原因。根据上一题的方法三,我们可以轻松求得每月兔子的数量。

此外,还有一种较为美观的输出格式:

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

f1 = 1
f2 = 1
for i in range(1,21):
 print '%12ld %12ld' % (f1,f2),
 if (i % 3) == 0:
  print ''
 f1 = f1 + f2
 f2 = f1 + f2

输出 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155 165580141 267914296

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。