2-4python语法基础-基础-控制语句

 

###############    if条件控制语句    ###############

# 以下实例 x 为 0-99 取一个数,y 为 0-199 取一个数,如果 x>y 则输出 x,如果 x 等于 y 则输出 x+y,否则输出y
import random
x=random.randint(0,100)
y=random.randint(1,100)
print(x,y)
print('#'*30)
if x>y:
    print(x)
elif x==y:
    print(x+y)
else:
    print(y)

 

###############    三元运算符   ###############

一、三元运算符
三元运算符就是在赋值变量的时候,可以直接加判断,然后赋值
格式:[on_true] if [expression] else [on_false]
res = 值1 if 条件 else 值2
1.举例说明:
a =1
b = 2
c= a if a>1 else b #如果a大于1的话,c=a,否则c=b
 
如果不用三元运算符,就用if-else条件判断,如下:
a = 1
b = 2
if a >1:
    c = a
else:
    c = b
 
2.三元运算符也可以用在列表和字典中
例:1-10的数字,打印出其中的偶数
三元运算:
ss = [i for i in range(1,11) if i%2==0 ] #循环1-11间的值(不包括11),如果值能被2整除(即取偶数),就写到ss这个list中
print(ss) #最终打印结果 [2, 4, 6, 8, 10]
 
if-else条件判断
s = []
for i in range(1,11):
    if i %2==0:
        s.append(i)
print(s)
         

 

###############    while循环语句    ###############

# 实例:使用了 while 来计算 1 到 100 的总和:
# a=0
# total=0
# while a<=100:
#     total+=a
#     print(a)
#     a+=1
# print(total)

# 无限循环
# 加法计算器

while True:
    print('1:加法   q:退出')
    option=input('请输入你的操作:')
    if option=='1':
        a=int(input('请输入a:(输入000退出)'))
        b= int(input('请输入b(输入000退出)'))
        c=a+b
        print('a+b=%d'%c)
    if option=='q':
        break

 

###############    for循环语句    ###############

# 遍历列表
list1=['c','c++','java','python']
for i in range(4):  # range是0-4,左开右闭,
    print(i,list1[i])

# 0-100的和
sum=0
for i in range(0,101):
    sum+=i
    print(i)
print(sum)

 

####

 for循环单行写法,注意一下细节,

list1 = [1,2,3,4]

for i in list1:print(i)  # 这样写是对的,
# print(for i in list1:i)  # 这样写是不对的,

 

 

 

##########################################

# 打印九九乘法表

print
("\n".join("\t".join(["%s*%s=%s" %(x,y,x*y) for y in range(1, x+1)]) for x in range(1, 10)) ) for i in range(1,10): for j in range(1,i+1): print("%d * %d = %d "%(i,j,i*j),end='') print()

 

##########################################

# 列表推导式

# 30以内,所有能被3整除的数
print([i for i in range(31) if i%3 ==0])

# 30以内,所有能被3整除的数的平方
print([i*i for i in range(31) if i%3 ==0])

# 例题3:找到嵌套列表中名字含有两个‘e’的所有名字
names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],
         ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]

# 方法一: 普通方法
l4 = []
for i in names:
    for j in i:
        if j.count('e') >= 2:
            l4.append(j)
print(l4)

# 方法二: 列表推导式方法
print([j for i in names for j in i if j.count('e') >= 2 ])

# 用一行构建代码
l1 = [i for i in range(1,101)]

# 100以内所有的偶数写入列表.
print([i for i in range(2, 101, 2)])

# 选出1-100中的奇数。
[i for i in range(100) if i % 2 != 0]
 list(range(100))[1::2]  可以通过切片的方式

# 过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母
l1 = ['太白金星', 'fdsaf', 'alex', 'sb', 'ab']
l2 = [i.upper() for i in l1 if len(i) > 3]
print(l2)

优点:
​ 简单,快捷,装b

缺点:
​ 可读性不高,不好排错
 

 例题:

# [[1,2],[3,4],[5,6]]一行代码展开该列表,得出[1,2,3,4,5,6]
a = [[1,2],[3,4],[5,6]]
print([j for i in a for j in i ])

 

##########################################

##########################################

posted @ 2020-01-02 12:11  技术改变命运Andy  阅读(273)  评论(0编辑  收藏  举报