鱼C论坛

 找回密码
 立即注册
查看: 3139|回复: 5

[技术交流] 一段有意思的代码

[复制链接]
发表于 2021-3-5 00:46:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Daniel_Zhang 于 2021-3-5 00:47 编辑

今天在做一个提醒事项的 exe 的时候,发现一段很神奇的代码

  1. import platform
  2. import os
  3. import time

  4. SYSTEM = platform.system()  # 判断操作系统

  5. if SYSTEM == 'Windows':  # 不同的系统
  6.     import winsound
  7.     duration = 3000  # millisecond
  8.     freq = 600  # Hz
  9.     winsound.Beep(freq, duration)
  10. elif SYSTEM == 'Linux':
  11.     for each in range(15):
  12.         os.system('spd-say "ding"')
  13.         time.sleep(0.5)
  14. else:
  15.     try:
  16.         for each in range(15):
  17.             os.system('say "你的电脑已经被控制"')
  18.             time.sleep(0.5)
  19.     except:
  20.         pass
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-3-7 16:43:35 | 显示全部楼层
给你段更神奇的看看(听听):
  1. from winsound import Beep
  2. from time import sleep
  3. from sys import argv
  4. from os import system
  5. from os import path as op_pa

  6. my_dict = [{1:261, 2:294, 3:330, 4:349, 5:392, 6:440, 7:494}, \
  7.            {1:523, 2:587, 3:659, 4:699, 5:784, 6:880, 7:988}, \
  8.            {1:1047, 2:1175, 3:1319, 4:1397, 5:1568}]

  9. class Player:
  10.     def __init__(self, line, speed = 0.2, last = 150):
  11.         self.line = line
  12.         self.speed = speed
  13.         self.last = last

  14.     def play(self):
  15.         state = 3
  16.         i = 0
  17.         while i < len(self.line):
  18.             if self.line[i] == '\\':
  19.                 state = int(self.line[i + 1])
  20.                 i += 2
  21.             if self.line[i] == '[':
  22.                 tmp = int(self.line[i + 1])
  23.                 for each in range(tmp):
  24.                     i += 2
  25.                     a, b = int(self.line[i]), int(self.line[i + 1])
  26.                     if b == 0:
  27.                         sleep(self.last // tmp / 1000)
  28.                         continue
  29.                     Beep(my_dict[a][b], self.last // tmp)
  30.                 i += 2
  31.                 sleep(self.speed)
  32.                 continue
  33.             if state == 3:
  34.                 if i + 2 < len(self.line):
  35.                     if self.line[i + 2] == '-':
  36.                         tmp = 1
  37.                         while self.line[i + tmp + 1] == '-':
  38.                             tmp += 1
  39.                             if not(i + tmp + 1 < len(self.line)):
  40.                                 break
  41.                         a, b = int(self.line[i]), int(self.line[i + 1])
  42.                         Beep( \
  43.                             my_dict[a][b], \
  44.                             round(self.last * tmp + \
  45.                                   self.speed * (tmp - 1) * 1000))
  46.                         i += 1 + tmp
  47.                         sleep(self.speed)
  48.                         continue
  49.                 a, b = int(self.line[i]), int(self.line[i + 1])
  50.                 i += 2
  51.             else:
  52.                 a, b = state, int(self.line[i])
  53.                 i += 1
  54.             if b == 0:
  55.                 sleep(self.last / 1000)
  56.                 sleep(self.speed)
  57.                 continue
  58.             Beep(my_dict[a][b], self.last)
  59.             sleep(self.speed)

  60. def main():
  61.     '''
  62.     try:
  63.         path = argv[1]
  64.     except IndexError:
  65.         system('_for_player_get_path.exe')
  66.         with open('tmp.txt', 'rt') as f:
  67.             path = f.readline()[0:-1]
  68.         system('del tmp.txt')
  69.         if path == 'exit':
  70.             exit()

  71.     with open(path, 'rt') as f:
  72.         tmp = '#'
  73.         while tmp[0] == '#':
  74.             tmp = f.readline()
  75.         speed, last = eval(tmp)
  76.         tmp = '#'
  77.         while tmp[0] == '#':
  78.             tmp = f.readline()
  79.     callable_char = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', \
  80.                  '\\', '[', '-'}
  81.     line = ''
  82.     for each in tmp:
  83.         if each in callable_char:
  84.             line += each
  85.     '''

  86.     line = r'\15543[21111251[3050505\0555\1[21314543[211112\05[20006[20605\11[21314\315--\1[2141565[21414[213112\06[20011[207065\1[21311\312--[311111116-\14655431[21211[21213\060565\1[21112322431[20605[2121310\316-\146[21514[21314\315--00\314-\124[21514[21312\313--\101[20511316[21416530[2121431\0665\11[21311\312--00[21111[20511\1316[2141653[21212[2121431\0665\123\311--00\13[21314[2151504[21415[2161605543[211112[21314\315--00\13[21314[2151504[21415[2161605543[211112510'
  87.     speed, last = 0.1, 150
  88.     path = tmp = callable_char = None
  89.    
  90.     player = Player(line, speed, last)
  91.     del path, line, speed, last, tmp, callable_char
  92.     print('关闭该窗口即可停止播放')
  93.     player.play()

  94. if __name__ == '__main__':
  95.     main()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-7 16:52:00 | 显示全部楼层
考不好不改名 发表于 2021-3-7 16:43
给你段更神奇的看看(听听):

啥也没发生啊

就print 一行 关闭该窗口即可停止播放
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-7 17:00:58 | 显示全部楼层
Daniel_Zhang 发表于 2021-3-7 16:52
啥也没发生啊

就print 一行 关闭该窗口即可停止播放

你开声音了吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-7 17:02:18 | 显示全部楼层

开了啊,我系统提示都有声音

看样子你的代码我是无缘了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-7 17:03:22 | 显示全部楼层
Daniel_Zhang 发表于 2021-3-7 17:02
开了啊,我系统提示都有声音

看样子你的代码我是无缘了

啊这,,,我这有,,,真是奇怪

评分

参与人数 1荣誉 +3 鱼币 +3 贡献 +3 收起 理由
Daniel_Zhang + 3 + 3 + 3 鱼C有你更精彩^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-27 00:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表