python 用户输入一个数字和一个字母组成的座位号,根据字母判断位置是窗口还是过道。目前中国高铁

Python013

python 用户输入一个数字和一个字母组成的座位号,根据字母判断位置是窗口还是过道。目前中国高铁,第1张

你这个问题没表达清楚

按照普通车厢里面,A F窗口位 C D 过道位

你看下,有问题可以追问

a = input('请输入您的排号')

b = input('请输入您的座号').upper()

if b == 'A' or b == 'F':

print('您的位置是在', a, '排 ', b, '座', '靠近窗口')

elif b == 'B':

print('你的位置是在', a, '排', b, '座')

elif b == 'C' or b == 'D':

print('您的位置是在', a, '排 ', b, '座,靠近过道')

else:

print('没有这个座位')

# Python3.6

# 导入random模块

import random

# 定义一个人椅的类

class ManAndBench:

    def __init__(self, n_bench):

        self.bench_num = n_bench

        # 依次已经被占用的座位号

        self.break_point = []

    def print_bench(self):

        # 定义全0数组作为长椅

        pt_str = [0 for _ in range(self.bench_num)]

        # 按照占用的作为号,重写长椅数字

        for i, item in enumerate(self.break_point):

            # 长椅的第[作为号]赋值为第i+1个人

            pt_str[item] = i+1

        brk_num = len(self.break_point)

        if brk_num == 0:

            print("长椅为空:", pt_str)

        else:

            print("{:2d}号男人: {}".format(brk_num, pt_str))

    def next_man(self):

        # 如果是第一个人,使用随机占座

        if len(self.break_point) == 0:

            fst = random.randint(0, self.bench_num - 1)

            self.break_point.append(fst)

        else:

            brk_num = len(self.break_point)

            # 产生已经被占座的个数+1的全零数组,用于空的位置长度计数

            block_size = [0 for _ in range(brk_num + 1)]

            # 统计每个空位置的长度

            tmp = 0

            for i in range(self.bench_num):

                # 如果第i个作为没有被占用,则第tmp个数组加1

                if i not in self.break_point:

                    block_size[tmp] += 1

                # 否则,tmp加1,统计下一个间隔段的长度

                else:

                    tmp += 1

            # 找出最大长度,计算最大长度块的序号

            max_block = max(block_size)

            max_index = block_size.index(max_block)

            # 计算最大长度块在整个长椅中的分割点

            start = 0

            for i in range(max_index):

                start += block_size[i]+1

            self.break_point.append(start + max_block // 2)

 

            

c = int(input("请输入椅子的数量:"))

while True:

    m = int(input("请输入人的数量:"))

    if m <= c:

        break

    else:

        print("人数量大于椅子数量,请重新输入!")

# 引用定义的类

mab = ManAndBench(c)

# 打印长椅

mab.print_bench()

# 每次坐一个人,打印一次

for _ in range(m):

    mab.next_man()

    mab.print_bench()

“我去图书馆”抢座助手,借助python实现自动抢座。

在使用“我去图书馆”公众号进行抢座的时候,在进行抢座前我们都会进入一个页面,选定要选的座位之后点击抢座。

通过分析网页源码,很容易定位座位元素的代码,座位元素的模板如下所示:

在编写代码的过程中,我对抢座位这个过程进行的多次的抓包观察,发现在座位号前面的那个query字符串是一个看不出什么规律的编码。

解析这个query是在后端进行解析,但既然发get请求你要在页面上发,那这个代码必然在前端是有迹可循的。这个编码的答案就在页面底部的js链接中,通过运行那一段js代码就可以搞定这个编码,从而拼凑起这最后一块拼图。