零基础入门学Python系列内容对应的所有编程练习题目 → \rightarrow →Python编程练习题目汇总。
- 编写程序:判断传入的字符串参数是否为“回文联”。回文联即用回文形式写成的对联,既可顺读,也可倒读。
def palindrome(string):
length = len(string)
last = length - 1
length //= 2
flag = 1
for each in range(length):
if string[each] != string[last]:
flag = 0
last -= 1
if flag == 1:
return 1
else:
return 0
string = input('请输入一句话:')
if palindrome(string) == 1:
print('是回文联!')
else:
print('不是回文联!')
>>>
请输入一句话:一二三
不是回文联!
请输入一句话:一二三三二一
是回文联!
>>>
- 编写程序:判断传入的字符串参数是否为“回文联”(递归实现)。
def Huiwen(temp,start,end):
if start > end:
return 1
else:
if temp[start]==temp[end]:
return Huiwen(temp,start+1,end-1)
else:
0
temp = input('请输入一段文字:')
length = len(temp)
end = len(temp)-1
if Huiwen(temp,0,end):
if temp[0:length//2] == temp[length//2:length]:
print('%s不是一个回文字符串!'%temp)
else:
print('%s是一个回文字符串!'%temp)
else:
print('%s不是一个回文字符串!'%temp)
>>>
请输入一段文字:一二三
一二三不是一个回文字符串!
请输入一段文字:一二三二一
一二三二一是一个回文字符串!
>>>
- 编写程序:分别统计出传入字符串参数(可能不只一个参数)的英文字母、空格、数字和其它字符的个数。
def count(*param):
length = len(param)
for i in range(length):
word = 0
num = 0
spa = 0
oth = 0
for j in param[i]:
if j.isalpha():
word += 1
elif j.isspace():
spa += 1
elif j.isdigit():
num += 1
else:
oth += 1
print ('第 %d 个字符串共有:英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个'%(i+1,word,num,spa,oth))
count('I love Python','I love you')
>>>
第 1 个字符串共有:英文字母 11 个,数字 0 个,空格 2 个,其他字符 0 个
第 2 个字符串共有:英文字母 8 个,数字 0 个,空格 2 个,其他字符 0 个
>>>
- 编写程序:求某个整数的阶乘。
def recursion(n):
result = n
for i in range(1,n):
result *= i
return result
number = int(input('请输入一个整数:'))
result = recursion(number)
print("%d的阶乘是:%d" % (number,result))
>>>
请输入一个整数:4
4的阶乘是:24
请输入一个整数:12
12的阶乘是:479001600
>>>
- 编写程序:求某个整数的阶乘(递归实现)。
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
number = int(input('请输入一个整数:'))
result = factorial(number)
print("%d的阶乘是:%d" % (number,result))
>>>
请输入一个整数:5
4的阶乘是:120
>>>
- 编写程序:实现斐波那契数列(迭代实现)。
def fab(n):
a1 = 1
a2 = 1
a3 = 1
if n < 1:
print("输入有误!")
return -1
while (n-2) > 0:
a3 = a1 + a2
a1 = a2
a2 = a3
n -= 1
return a3
n=int(input("请输入经过的月份:"))
result = fab(n)
if result != -1:
print('总共有%d对小兔子诞生!'% result)
>>>
请输入经过的月份:5
总共有5对小兔子诞生!
请输入经过的月份:7
总共有13对小兔子诞生!
请输入经过的月份:10
总共有55对小兔子诞生!
>>>
- 编写程序:实现斐波那契数列(递归实现)。
def fab(n):
if n < 1:
print("输入有误!")
return -1
if n == 1 or n == 2:
return 1
else:
return fab(n-1) + fab(n-2)
n=int(input("请输入经过的月份:"))
result = fab(n)
if result != -1:
print('总共有%d对小兔子诞生!'% result)
>>>
请输入经过的月份:10
总共有55对小兔子诞生!
>>>
- 编写程序:将参数n分解出每个位的数字并按顺序存放到列表中。
# 写一个函数get_digits(n),将参数n分解出每个位的数字并按顺序存放到列表中。举例 : get_digits(12345)==>[1,2,3,4,5]
def get_digits(n):
result = ''
if n:
result = get_digits(n//10)
result += str(n%10)
return list(result)
num = int(input('请输入一个数:'))
print(get_digits(num))
>>>
请输入一个数:350
[‘3’, ‘5’, ‘0’]
请输入一个数:1890
[‘1’, ‘8’, ‘9’, ‘0’]
>>>
- 编写程序:实现一个用户登录系统。
user_data = {}
def new_user():
prompt = '请输入用户名:'
while True:
name = input(prompt)
if name in user_data:
prompt = '此用户名已被使用,请重新输入:'
continue
else:
break
passwd = input('请输入密码:')
user_data[name] = passwd
print('注册成功,赶紧试试登录吧^_^')
def old_user():
prompt = '请输入用户名:'
while True:
name = input(prompt)
if name not in user_data:
prompt = '您输入的用户名不存在,请重新输入:'
continue
else:
break
passwd = input('请输入密码:')
pwd = user_data.get(name)
if passwd == pwd:
print('欢迎进入系统!')
else:
print('密码错误!')
def showmenu():
prompt = '''
|--- 新建用户:N/n ---|
|--- 登录账号:E/e ---|
|--- 退出程序:Q/q ---|
|--- 请输入指令代码:'''
while True:
chosen = False
while not chosen:
choice = input(prompt)
if choice not in 'NnEeQq':
print('您输入的指令代码有误,请重新输入:')
else:
chosen = True
if choice == 'q' or choice == 'Q':
break
if choice == 'n' or choice == 'N':
new_user()
if choice == 'e' or choice == 'E':
old_user()
showmenu()
>>>
|— 新建用户:N/n —|
|— 登录账号:E/e —|
|— 退出程序:Q/q —|
|— 请输入指令代码:n
请输入用户名:lucky
请输入密码:123456
注册成功,赶紧试试登录吧 ^ _ ^
|— 新建用户:N/n —|
|— 登录账号:E/e —|
|— 退出程序:Q/q —|
|— 请输入指令代码:e
请输入用户名:lucky
请输入密码:123456
欢迎进入系统!
|— 新建用户:N/n —|
|— 登录账号:E/e —|
|— 退出程序:Q/q —|
|— 请输入指令代码:q
>>>
- 编写程序:接受用户的输入并保存为新的文件。
def file_write(file_name):
f = open(file_name,'w')
print('请输入内容【单独输入\':w\'保存退出】:')
while True:
write_some = input()
if write_some != ':w':
f.write('%s\n' % write_some)
else:
break
f.close()
file_name = input('请输入文件名:')
file_write(file_name)
>>>
请输入文件名:story.txt
请输入内容【单独输入’:w’保存退出】:
从前有座山,
山上有座庙,
庙里有个老和尚在给小和尚讲故事,
讲的故事是:
从前有座山,
山上有座庙,
庙里有个老和尚在给小和尚讲故事,
讲的故事是。。。。。。
:w
>>>