设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: manhong2112
打印 上一主题 下一主题

新人報到

[复制链接]

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

11#
发表于 2016-1-17 13:51:06 |显示全部楼层
本帖最后由 manhong2112 于 2016-1-17 14:36 编辑

第11題,200內平方數是回文數的數字
  1. for i in range(1, 201):
  2.     print("", end=str(i) + "\n" if str(i * i) == str(i * i)[::-1] else "")
  3.     #str[::-1]是反轉的意思(str[start:stop:step],從start退到stop ,並沒有甚麼不對2333),若 i * i == 反轉後的i * i,輸出i,否則空白
复制代码
  1. for i in range(1, 201):
  2.     a = list(str(i * i)) # i * i 轉成字串,再轉成列表
  3.     b = list(str(i * i)) # 為了公平比較 ,一起轉
  4.     a.reverse() # 反轉
  5.     if a == b: # 若反轉前反相同,輸出
  6.         print(i)
复制代码
  1. print("\n".join(str(i) for i in range(1, 201) if str(i * i) == str(i * i)[::-1])) # 列表生成式, 跟10同理
复制代码
回复

使用道具 举报

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

12#
发表于 2016-1-17 14:41:37 |显示全部楼层
第12題,抽出文件中英文的詞語,並寫入
  1. import re # 導入regex(叫正則表示式甚麼的)

  2. file = open("from.txt", encoding='utf8').read() # 讀取檔案
  3. output = open("to.txt", "w") # 生成寫入檔

  4. fromList = re.findall(r"[a-zA-z]+", file) # 找出文檔中符合pattern的字,1 個或以上 a-z和A-Z
  5. fromList.sort() # 排序
  6. output.write("\n".join(fromList)) #寫入
复制代码
回复

使用道具 举报

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

13#
发表于 2016-1-17 14:45:29 |显示全部楼层
猜密码游戏
  1. import random

  2. pwd = ""

  3. for i in range(0, 4): pwd += str(random.randint(0, 9))

  4. print("Guess a number: ")
  5. print("(", pwd, ")")
  6. while True:
  7.     guess = input()
  8.     if len(guess) != 4:
  9.         continue
  10.     A, B = 0, 0
  11.     for i in range(0, 4):
  12.         B += guess[i] in pwd[i:4]
  13.         A += guess[i] == pwd[i]

  14.     print(A, "A", (B - A), "B", sep="")
  15.     if A == 4:
  16.         break

  17. print("You Win!")
复制代码
回复

使用道具 举报

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

14#
发表于 2016-1-17 14:48:41 |显示全部楼层
每日一坑 1 随机取数
http://crossin.me/forum.php?mod=viewthread&tid=854
  1. import random
  2. import sys

  3. o = []
  4. m, n = int(input("m = ")), int(input("n = "))
  5. if 1 <= m <= n:
  6.     sys.exit(1)
  7. while len(o) < n:
  8.     a = random.choice(range(1, m + 1))
  9.     if a in o:
  10.         continue
  11.     o.append(a)

  12. o.sort()
  13. print(o)
复制代码
回复

使用道具 举报

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

15#
发表于 2016-1-17 14:50:51 |显示全部楼层
本帖最后由 manhong2112 于 2016-1-17 14:53 编辑

每日一坑 2 去除重复
  1. o = [1, 1, 2, 2, 3, 4, 5, 5, 6, 7]
  2. o2 = []
  3. for i in o:
  4.     if i in o2:
  5.         continue
  6.     o2.append(i)

  7. o2.sort()
  8. print(o2)
复制代码
  1. o = [1, 1, 2, 2, 3, 4, 5, 5, 6, 7]
  2. sorted(set(o))
复制代码
回复

使用道具 举报

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

16#
发表于 2016-1-17 14:53:41 |显示全部楼层
每日一坑 3 找数字
  1. import re
  2. o = "aAsmr3idd4bgs7Dlsf9eAF"
  3. print(''.join(re.findall("\d", o)))
复制代码
回复

使用道具 举报

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

17#
发表于 2016-1-17 14:55:59 |显示全部楼层
本帖最后由 manhong2112 于 2016-1-17 14:58 编辑

每日一坑 4 查找文件import re
  1. import re
  2. import os


  3. def check(dir):
  4.     for i in os.listdir(dir):
  5.         if os.path.isdir(i):
  6.             check(dir + "/" + i)
  7.         print(str(i) + "\n" if re.search(r'.*\.txt', i) else "", end="")


  8. check(os.getcwd())
复制代码
回复

使用道具 举报

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

18#
发表于 2016-1-17 15:01:03 |显示全部楼层
每日一坑 5 文字竖排
  1. # -*- coding:utf8 -*-
  2. poem = "\
  3. 静夜思 李白\n\
  4. 床前明月光,\n\
  5. 疑似地上霜。\n\
  6. 举头望明月,\n\
  7. 低头思故乡。".split('\n')

  8. poem = poem[::-1]

  9. poemLength = 0
  10. for i in poem:
  11.     poemLength = len(i) if poemLength < len(i) else poemLength
  12. poemWidth = len(poem)

  13. for i in range(0, poemLength):
  14.     for j in range(0, poemWidth):
  15.         try:
  16.             print(poem[j][i] if poem[j][i] != " " else "  ", end="|")
  17.         except IndexError:
  18.             print(end="  |")
  19.     print()
复制代码
回复

使用道具 举报

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

19#
发表于 2016-1-17 15:02:20 |显示全部楼层
每日一坑 6 查找文件内容
  1. import re
  2. import os


  3. def check(dir, text):
  4.     for i in os.listdir(dir):
  5.         if os.path.isdir(i):
  6.             check(dir + "/" + i, text)
  7.         if re.search(r'.*\.txt', i):
  8.             file = open(dir + "/" + i, encoding="utf8").read()
  9.             print(str(i) + "\n" if re.search(text, file) else "", end="")


  10. check(os.getcwd(), "hello world")
复制代码
回复

使用道具 举报

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

20#
发表于 2016-1-17 15:08:52 |显示全部楼层
【每周一坑】3道题
  1. def ex1(text):
  2.     i = {}
  3.     for j in text:
  4.         if j in i:
  5.             i[j] += 1
  6.         else:
  7.             i[j] = 1
  8.     return sorted(i.items(), key=lambda i: i[1], reverse=True)


  9. print(ex1("History is his story."))
复制代码
  1. def ex2():
  2.     from random import randint
  3.     from sys import exit

  4.     class Game:
  5.         thrownNumber = 0
  6.         gameRound = 0

  7.         def start_game(self):
  8.             self.gameRound += 1
  9.             print("New Game start, Round", self.gameRound)
  10.             self.thrownNumber = randint(3, 18)

  11.         def end_game(self, *players):
  12.             for i in players:
  13.                 player_score = 0
  14.                 player_score += i.bet.get("big", 0) * 2 if self.thrownNumber >= 11 else 0
  15.                 player_score += i.bet.get("small", 0) * 2 if self.thrownNumber < 11 else 0
  16.                 player_score += i.bet.get(str(self.thrownNumber), 0) * 10
  17.                 i.score += player_score
  18.                 i.bet = {}

  19.     class Player:
  20.         def __init__(self, player_id, score=100):
  21.             self.player_id = player_id
  22.             self.score = score
  23.             self.bet = {}

  24.         def add_bet(self, bet_type, bet_score):
  25.             if self.score - bet_score < 0:
  26.                 raise ValueError()
  27.             self.bet[bet_type] = self.bet.get(bet_type, 0) + bet_score
  28.             self.score -= bet_score

  29.     class Computer(Player):
  30.         def __init__(self, player_id, score=100):
  31.             super().__init__(player_id, score)

  32.         def add_bet(self):
  33.             for i in range(randint(1, 5)):
  34.                 try:
  35.                     bet_score = randint(1, int(self.score / randint(1, 5)) + 1)
  36.                     if randint(0, 1):
  37.                         super().add_bet("big" if randint(0, 1) else "small", bet_score)
  38.                     else:
  39.                         super().add_bet(str(randint(3, 18)), bet_score)
  40.                     pass
  41.                 except ValueError:
  42.                     break

  43.     comp = Computer("Computer")
  44.     player = Player(input("Input Your Name: \n> "))
  45.     game = Game()

  46.     # game main body
  47.     while True:
  48.         game.start_game()
  49.         # print(game.thrownNumber)

  50.         # read input
  51.         print("Input 'quit' to end game, input 'end' or leave blank to end input, input as '<type/number> <bet>' to bet")
  52.         while True:
  53.             tmp = input("> ")
  54.             if tmp == "end" or tmp == "": break
  55.             if tmp == "quit": exit(0)
  56.             tmp = tmp.split(" ")
  57.             try:
  58.                 player.add_bet(tmp[0], int(tmp[1]))
  59.             except ValueError:
  60.                 print("Over your existing score")
  61.             except IndexError:
  62.                 print("Wrong input, try again")

  63.         comp.add_bet()
  64.         print(comp.player_id, " bet ", comp.bet, sep="")
  65.         print(player.player_id, " bet ", player.bet, sep="")

  66.         game.end_game(player, comp)
  67.         print("Number is", game.thrownNumber)

  68.         print(comp.player_id, "'s score: ", comp.score, sep="")
  69.         print(player.player_id, "'s score: ", player.score, sep="")

  70.         print("=" * 24, sep="")


  71. ex2()
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-11 17:15 , Processed in 0.021102 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部