What meaning is "if k in [0, len(n_trials) - 1] else None"?

Robert rxjwg98 at gmail.com
Sat Dec 3 18:11:38 EST 2016


On Saturday, December 3, 2016 at 6:09:02 PM UTC-5, Robert wrote:
> Hi,
> 
> I am trying to understand the meaning of the below code snippet. Though I have
> a Python IDLE at computer, I can't get a way to know below line:
> 
> if k in [0, len(n_trials) - 1] else None
> 
> I feel it is strange for what returns when the 'if' condition is true?
> The second part 'None' is clear to me though.
> 
> Could you explain it to me?
> 
> 
> thanks,
> 
> 
> 
> 
> 
> 
> 
> %matplotlib inline
> from IPython.core.pylabtools import figsize
> import numpy as np
> from matplotlib import pyplot as plt
> figsize(11, 9)
> 
> import scipy.stats as stats
> 
> dist = stats.beta
> n_trials = [0, 1, 2, 3, 4, 5, 8, 15, 50, 500]
> data = stats.bernoulli.rvs(0.5, size=n_trials[-1])
> x = np.linspace(0, 1, 100)
> 
> # For the already prepared, I'm using Binomial's conj. prior.
> for k, N in enumerate(n_trials):
>     sx = plt.subplot(len(n_trials) / 2, 2, k + 1)
>     plt.xlabel("$p$, probability of heads") \
>         if k in [0, len(n_trials) - 1] else None
>     plt.setp(sx.get_yticklabels(), visible=False)
>     heads = data[:N].sum()
>     y = dist.pdf(x, 1 + heads, 1 + N - heads)
>     plt.plot(x, y, label="observe %d tosses,\n %d heads" % (N, heads))
>     plt.fill_between(x, 0, y, color="#348ABD", alpha=0.4)
>     plt.vlines(0.5, 0, 4, color="k", linestyles="--", lw=1)
> 
>     leg = plt.legend()
>     leg.get_frame().set_alpha(0.4)
>     plt.autoscale(tight=True

I just notice that there is a slash character (\) before the if line.
What is it for?

I've learn Python for a while, but I don't use it for more than 2 years now.
Thanks.


More information about the Python-list mailing list