跟着词穷学python之文件流自动关闭

# file =open("test13.txt","w+",encoding="UTF-8")
# file.write("如懿传")

#文件是否关闭
# print(file.closed)
# file.close();
# print(file.closed)
"""
    `with....as..... 上下文管理器
"""
with open("test13.txt","w+",encoding="UTF-8") as  file:
    file.write("如懿传")
print(file.closed)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,请参考以下的C语言代码实现: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <time.h> #define MAX_WORD_LEN 20 #define MAX_PLAY_ROUND 20 void generateStartLetter(char *startLetter); void getPlayerInput(char *playerInput); void getComputerInput(char *computerInput, char *lastLetter); int isValidInput(char *input, char *lastLetter); void printRoundResult(int round, char *playerInput, char *computerInput, int playerScore, int computerScore, int drawScore); void printFinalResult(int playerScore, int computerScore, int drawScore); int main() { char startLetter; generateStartLetter(&startLetter); printf("游戏开始!首轮字母:%c\n", startLetter); int round = 1; int playerScore = 0; int computerScore = 0; int drawScore = 0; char lastLetter = startLetter; while (round <= MAX_PLAY_ROUND) { char playerInput[MAX_WORD_LEN+1]; getPlayerInput(playerInput); if (strcmp(playerInput, "quit") == 0 || strcmp(playerInput, "q") == 0) { break; } if (!isValidInput(playerInput, &lastLetter)) { printf("你输入的单词不合法,请重新输入!\n"); continue; } char computerInput[MAX_WORD_LEN+1]; getComputerInput(computerInput, &lastLetter); printf("机器输入:%s\n", computerInput); if (strcmp(playerInput, computerInput) == 0) { printf("平局!\n"); drawScore++; } else if (strlen(playerInput) % 2 == 0) { printf("你输了!\n"); computerScore++; } else { printf("你赢了!\n"); playerScore++; lastLetter = playerInput[strlen(playerInput)-1]; } printRoundResult(round, playerInput, computerInput, playerScore, computerScore, drawScore); round++; } printFinalResult(playerScore, computerScore, drawScore); return 0; } void generateStartLetter(char *startLetter) { srand(time(NULL)); *startLetter = (char) (rand() % 26 + 'a'); } void getPlayerInput(char *playerInput) { printf("请输入单词(输入quit或q结束游戏):"); scanf("%s", playerInput); for (int i = 0; i < strlen(playerInput); i++) { playerInput[i] = tolower(playerInput[i]); } } void getComputerInput(char *computerInput, char *lastLetter) { // 这里只是简单的生成一个单词,可以根据实际需求进行修改 srand(time(NULL)); char firstLetter = *lastLetter; char secondLetter = (char) (rand() % 26 + 'a'); sprintf(computerInput, "%c%c", firstLetter, secondLetter); } int isValidInput(char *input, char *lastLetter) { if (strlen(input) <= 1 || strlen(input) > MAX_WORD_LEN) { return 0; } if (input[0] != *lastLetter) { return 0; } for (int i = 0; i < strlen(input); i++) { if (!isalpha(input[i])) { return 0; } input[i] = tolower(input[i]); } return 1; } void printRoundResult(int round, char *playerInput, char *computerInput, int playerScore, int computerScore, int drawScore) { printf("----------第%d轮结果----------\n", round); printf("你输入:%s\n", playerInput); printf("你的得分:%d\n", playerScore); printf("机器输入:%s\n", computerInput); printf("机器得分:%d\n", computerScore); printf("平局次数:%d\n", drawScore); } void printFinalResult(int playerScore, int computerScore, int drawScore) { printf("----------最终结果----------\n"); printf("你的得分:%d\n", playerScore); printf("机器得分:%d\n", computerScore); printf("平局次数:%d\n", drawScore); if (playerScore > computerScore) { printf("你赢了!\n"); } else if (playerScore < computerScore) { printf("你输了!\n"); } else { printf("平局!\n"); } } ``` 这个程序实现了你所需求的所有功能,可以根据自己的需求进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值