日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python函数编程训练题_Python文件与函数练习题

發布時間:2025/3/15 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python函数编程训练题_Python文件与函数练习题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

有名為poetry.txt的文件,其內容如下,請刪除第三行:

"""

昔人已乘黃鶴去,此地空余黃鶴樓。

黃鶴一去不復返,白云千載空悠悠。

晴川歷歷漢陽樹,芳草萋萋鸚鵡洲。

日暮鄉關何處是?煙波江上使人愁。

"""

import os

str = '晴川歷歷漢陽樹,芳草萋萋鸚鵡洲'

f_name = 'poetry.txt'

f_new_name = '%s.new'% f_name

f_new = open(f_new_name,'w',encoding='utf-8')

with open(f_name,'r', encoding='utf-8') as f:

for line in f:

if str in line:

line = ''

f_new.write(line)

else:

f_new.write(line)

f_new.close()

os.replace(f_new_name, f_name)

有名為username.txt的文件,其內容格式如下,寫一個程序,判斷該文件中是否存在"alex", 如果沒有,則將字符串"alex"添加到該文件末尾,否則提示用戶該用戶已存在

import os

str = 'alex'

f_name = 'username.txt'

f_new_name = '%s.new'% f_name

with open(f_name,'r+', encoding='utf-8') as f:

for line in f:

if str in line:

print('the user {} already exist'.format(str))

break

else:

f.write('\n%s' % str)

有名為user_info.txt的文件,其內容格式如下,寫一個程序,刪除id為100003的行;

"""

有名為user_info.txt的文件,其內容格式如下,寫一個程序,刪除id為100003的行

pizza,100001

alex, 100002

egon, 100003

"""

f_name = r'user_info.txt'

f_new_name = '%s.new'%f_name

del_id = '100001'

f_new = open(f_new_name, 'w', encoding='utf-8')

with open(f_name, 'r', encoding='utf-8') as f:

for line in f:

if del_id in line:

pass

else:

f_new.write(line)

f_new.close()

os.replace(f_new_name,f_name)

有名為user_info.txt的文件,其內容格式如下,寫一個程序,將id為100002的用戶名修改為alex li;

"""

有名為user_info.txt的文件,其內容格式如下,寫一個程序,將id為100002的用戶名修改為alex li

pizza,100001

alex,100002

egon,100003

"""

f_name = r'user_info.txt'

f_new_name = '%s.new'%f_name

update_id = '100002'

update_name = 'alex li'

f_new = open(f_new_name, 'w', encoding='utf-8')

with open(f_name, 'r', encoding='utf-8') as f:

for line in f:

if update_id in line:

line = ','.join([update_name, update_id])

f_new.write(line+'\n')

else:

f_new.write(line)

f_new.close()

os.replace(f_new_name,f_name)

寫一個計算每個程序執行時間的裝飾器;

import time

from functools import wraps

def timer(func):

@wraps(func)

def wrapper(*args,**kwargs):

start = time.time()

ret = func(*args, **kwargs)

print('{} execute {}s'.format(func.__name__,time.time()-start))

return ret

return wrapper

@timer # fib = timer(fib)

def fib(n):

a, b = 0, 1

for i in range(n):

print(b)

a, b = b, a+b

return b

fib(100)

lambda是什么?請說說你曾在什么場景下使用lambda?

好處:

1.lambda函數比較輕便,即用即扔,適合完成只在一處使用的簡單功能

2.匿名函數,一般用來給filter,map這樣的函數式編程服務

3.作為回調函數,傳遞給某些應用,比如消息處理

題目:寫一個搖骰子游戲,要求用戶壓大小,賠率一賠一。

要求:三個骰子,搖大小,每次打印搖骰子數。

import random

def roll_dice(numbers=3, points=None):

"""

定義骰子,循環三次

:param numbers:

:param points:

:return:

"""

if points is None:

points = []

print('----- 搖骰子 -----')

while numbers > 0:

point = random.randrange(1, 7)

# print('roll dice is {}'.format(point))

points.append(point)

numbers -= 1

return points

def roll_result(total):

"""

定義大小,三個大或者一個小兩個大。三個小或者兩個小一個大

:param total:

:return:

"""

is_big = 11 <= total <= 18

is_small = 3 <= total <= 10

if is_big:

return "big"

elif is_small:

return "small"

def start_game():

money = 1000

while money > 0:

print('----- 游戲開始 -----')

choices = ['big', 'small']

your_choice = input("請下注, big or small")

your_bet = input("下注金額:")

if your_choice in choices:

if your_bet.isdigit():

points = roll_dice()

total = sum(points)

you_win = your_choice == roll_result(total)

if you_win:

print("骰子點數", points, total)

money += int(your_bet)

print("恭喜, 你贏了%s元, 你現在的本金%s 元" % (your_bet, money))

else:

print("骰子點數", points, total)

money -= int(your_bet)

print("很遺憾, 你輸了%s元, 你現在的本金%s 元" % (your_bet, money))

else:

print('格式有誤,請重新輸入')

else:

print('格式有誤,請重新輸入')

else:

print("game over")

start_game()

總結

以上是生活随笔為你收集整理的python函数编程训练题_Python文件与函数练习题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。