文档章节

python学习--for循环详解

o
 osc_1ee7cxmx
发布于 2018/08/06 20:11
字数 922
阅读 0
收藏 0

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

For 循环

一、使用for循环实现简单功能

'''
乘法表
1--9乘法表
for循环实现数字遍历
'''
for i in range(1,10): # 行中
    
    for s in range(1,i+1):  # 列中
        print('%s X %s=%s   '%(s,i,s*i),end ='')
    print()
'''
星星
实现星星以三角形排列
'''
for i in range(1,9):    #
    for s in range(len(range(1,9))-i):
        print(' ',end ='')
    for n in range(1,2*i):  #
        print('*',end = '')    
    print()
    
'''
金额小写=>大写
对循环数字进行拆分
对数组合
'''
list_num = ['','','','','','','','','','']

list_U = ['','','','','']
input_num = input('输入数字:')
len_U = len(input_num)
for i in input_num:
    len_U -=1
    print("{0}{1}".format(list_num[int(i)],list_U[len_U]),end='')
print('')

运行:

E:\python_VS_code\directory[目录]>D://py3.6//python.exe e:/python_VS_code/directory[目录]/demo0802/py_for_mult.py
1 X 1=1
1 X 2=2   2 X 2=4
1 X 3=3   2 X 3=6   3 X 3=9
1 X 4=4   2 X 4=8   3 X 4=12   4 X 4=16
1 X 5=5   2 X 5=10   3 X 5=15   4 X 5=20   5 X 5=25
1 X 6=6   2 X 6=12   3 X 6=18   4 X 6=24   5 X 6=30   6 X 6=36
1 X 7=7   2 X 7=14   3 X 7=21   4 X 7=28   5 X 7=35   6 X 7=42   7 X 7=49
1 X 8=8   2 X 8=16   3 X 8=24   4 X 8=32   5 X 8=40   6 X 8=48   7 X 8=56   8 X 8=64
1 X 9=9   2 X 9=18   3 X 9=27   4 X 9=36   5 X 9=45   6 X 9=54   7 X 9=63   8 X 9=72   9 X 9=81
       *
      ***
     *****
    *******
   *********
  ***********
 *************
***************
输入数字:1234
壹仟贰佰叁拾肆园整

 

二、推导式:

列表推导式:

va=[rxp for out in list if (out 条件)]

获得两个列表交集

va3=[10,20,30,40]
va4=[20,30,50,60,70]
Va5=[ num for num in va3 if num in va4  ]

获得并集

va6=[ num for num in  va3 if num not in  va4 ]
print(va6)
print(va4+va6)

获得差集

va7=[ num for num in  va4 if num not in  va3 ]
print(va7)

--------------------------------------------------------------

  # 获得0-99之间的 奇数的二倍值
 va2=[i*2 for i in range(100) if i%2!=0 ]

 print('va2,',va2)


生成器 对象 (元组推导式) gen=( i for i in range(5)) print(gen) # for i in gen: # print(i) ------------------------------------------------------------ 字典推导式 mcase = {'a': 10, 'b': 34, 'A': 7, 'Z': 3,'B':20,'b':50} var={keyexcept:vaExcept for key in 字典对象 } # if k.lower() in ['a','b','z'] 判断条件 mcase_frequency = { k.lower(): mcase.get(k.lower(), 0) + mcase.get(k.upper(), 0) #第三部执行 for k in mcase.keys()#第一步 if k.lower() in ['a','b','z'] #第二部判断执行 true 执行第三部 ------------------------------------------------------- 集合推导式 mcase_key={key for key in mcase if key== key.lower()}

 

 

三,同样要求的三种不同解决方式

'''
统计字符串中数字和字母的个数
1.使用异常处理非数字 try...except
2.使用内置函数判定非数字  isdigit()
3.使用字符转换判断数字字母范围。
ord() 字符转ascii码 chr() ascii码转字符
'''


str_for = 'adashgdkahfqa223354564'
num = 0
str_num = 0
'''
第一种
'''
for i in str_for:
    try:
        int(i)
        num +=1
    except ValueError:
        str_num +=1
print('数字:',num,'\n''字母:',str_num)

'''
第二种
'''
num1 = 0
str_num1 = 0
for i in str_for:
    if i.isdigit() == True:
        num1 +=1
    else:
        str_num1 +=1
print('数字:',num1,'\n''字母:',str_num1)

'''
第三种
'''
num2 = 0
str_num2 = 0
for i in str_for:
    if ord('0') < ord(i) <ord('9'):
        num2 +=1
    elif ord('a') <= ord(i) <=ord('z') or ord('A') <= ord(i) <= ord('Z'):
        str_num2 += 1
print('数字:',num2,'\n''字母:',str_num2)

 

 

四、推导式解决【金额大小写转换,字典推导式练习】

list_num = ['','','','','','','','','','']

list_U = ['','','','','']
input_num = input('输入数字:')
len_U = len(input_num)
num_info = [int(input_num)//10**i%10 for i in range(len_U-1,-1,-1)]
for i in num_info:
    len_U -=1
    print('%s%s'%(list_num[i],list_U[len_U]),end = '')
print('')

'''
字典对象
初始化定义数据
把 Key是 str类型
长度大于等于5的信息获取
用推导式
'''
dict_1 = {'a':12,123:'abcd','12345':True,'sadasdds':'18895','asd':'d'}
dict_infer = {k:v for k,v in dict_1.items() if type(k) ==str and len(k) >= 5}
print(dict_infer)

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

java架构师成长路线-高并发网络编程的分类

鲁班学院java架构师成长路线 随着互联网时代的到来,高并发网络编程这一新鲜名词早已跃然于纸上,为了满足大众眼光的需求,我为大家找了些关于高并发网络编程方面的资料,本文便来介绍高并发...

osc_o494ayqf
17分钟前
5
0
python dict乱码如何解决

定义字典并直接输出,结果输出结果中文是乱码展示 d={'name':'lily','age':18,'sex':'女','no':1121}print d 输出结果: {'age': 18, 'no': 1121, 'name': 'lily', 'sex': '\xe5\xa5\xb3'}...

osc_9mjo6c4e
18分钟前
14
0
硬肝50天,18w字的实战编程资料《重学Java设计模式》终于 出炉了

沉淀、分享、成长,让自己和他人都能有所收获! 一、前言 作者从5月20日那天投身实战型设计模式打磨,通过模拟互联网业务开发实际需求作为学习场景,讲解设计模式。 全书共计22个真实业务场景...

osc_zls6dx9i
20分钟前
20
0
怎么才能让Spring AOP有最大的作用--乐字节java

Spring AOP 日志处理带来的问题 我们有一个Pay(接口) 然后两个实现类DollarPay和RmbPay,都需要重写pay()方法, 这时我们需要对pay方法进行性能监控,日志的添加等等怎么做? 最容易想到的方法...

osc_sb30h1xb
21分钟前
10
0
Python 实现将numpy中的nan和inf,nan替换成对应的均值

nan:not a number inf:infinity;正无穷 numpy中的nan和inf都是float类型 t!=t 返回bool类型的数组(矩阵) np.count_nonzero() 返回的是数组中的非0元素个数;true的个数。 np.isnan() 返回b...

osc_sfl7wfr9
23分钟前
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部