• python基础-02-while格式化逻辑运算


    python其他知识目录

     

    1、循环打印“我是小马过河”

    while True:
       print('我是小马过河')

    #4、用while从一打印到10

    #5、请通过循环,1 2 3 4 5 6 8 9 10

    #备注:连续的对其中一个不做相同的操作(连续数字指

    定其中一个不打印)

     

    #自我注解:无限循环,死循环用while。

    小结:

    死循环无限循环while ;有限循环for;满足条件停止循环if满足就break;
    需要输入input;需要序列range()或定义自增循环;循环中某个不操作if满足条件continue,pass;for 用range能省去while的循环计数


    判断变量是不是某种类型:
    if type(变量) == 数据类型:(str ,list,tuple,dict)
    print(数据类型)

    #4、用while从一打印到10

    #注意Python似乎不能用i++,可以i+=1

    count=0
    while count<10:
        count=count+1
        print(count)                 #从1到10,(0,10)先自增
    
    count=0
    while count<=9:
        count = count + 1
        print(count)                #从1到10,(0,9]先自增
    
    count=0
    while count<10:
        count +=1
        print(count)               #从1到10,(0,10)先自增,自增可以count=count+1;count+=1;如果自增为一个变量,那么count+=变量
    
    count=1
    while count<11:
        print(count)
        count = count + 1       #[1,11),先其它操作后自增
    
    count=1
    while count<=10:
        print(count)
        count = count + 1      #[1,10]先其它操作后自增

    #给自己的建议:程序需要从几到几,按照第一种方式,先自增后其它,实现循环次数后再做操作,自增放在前面防止思路弄乱,方便自己阅读。
    #需要添加倒着循环的

    #5、请通过循环,1 2 3 4 5 6 8 9 10

     #备注:连续的对其中一个不做相同的操作(连续数字指
    
    定其中一个不打印)  #自我注解 连续数字一个不打印相当于不等于它就打印,或者等于它就跳过本次循环后面的操作
    
    count=0
    while count<10:
        count=count+1
        if count != 7:
            print(count)
    
    先打印出1-10,然后去掉7
    count=0
    while count<10:
        count=count+1
        if count == 7 :
            continue
        print(count)
    
    print("""
    1
    3
    4
    5
    6
    8
    9
    10""")
    
    count=0
    while count<10:
        count=count+1
        if count == 7 :
            pass
        else:
            print(count)
    
    6  8-10

    #6、while else 结构

    count=0
    while count<10:
        count = count + 1
        print(count)
    else:
        print("不再满足while的条件时,即whil返回值为False时执行这里,break等跳出循环的操作是否
    
    执行else后面语句,看返回值")

    #自我注解:循环(正常)结束才执行的代码,非正常结束不执行代码
    #添加:上面为循环做完了做什么操作,添加一个循环做完了然后做满足某种条件的才做某种操作,否则是另一种操作。(使用flag)

    #7、格式化输出

    1、s%  指定占位符宽度

    name=["mcw","小马过河","魔降风云变"]
    print("%s和%s"%(name[0],name[1]))
    --------------结果:
    mcw和小马过河
    
    print("name:%s"%("mcwhr"))            #指定占位符宽度
    print("name:%3s"%("mcwhr"))
    print("name:%6s"%("mcwhr"))
    print("name:%8s"%("mcwhr"))
    print("name:%12s"%("mcwhr"))
    print("name:%8.2f"%(3.1415926))
    --------------结果:

    print ("Name:%s Age:%d Height:%.2f"%("mcw",18,1.64))                    #加-加数字,可实现几列对齐排序
    print ("Name:%-s Age:%-d Height:%-.2f"%("mcw",18,1.64))
    print ("Name:%10s Age:%8d Height:%8.2f"%("mcw",18,1.64))
    print ("Name:%-10s Age:%-8d Height:%-8.2f"%("mcw",18,1.64))
    print ("Name:%-12s Age:%-12d Height:%-12.2f"%("mcw",18,1.64))
    -------------------------结果:
    
    
    问题一:%s格式化输出缺少传参出现的错误 name=["mcw","小马过河","魔降风云变"] print("%s和%s"%(name[0])) --------结果: print("%s和%s"%(name[0])) TypeError: not enough arguments for format string (格式字符串的参数不足) 问题二:%s传参数量多于接收的数量报错 name=["mcw","小马过河","魔降风云变"] print("%s和%s"%(name[0],name[1],name[2])) ----------------结果: print("%s和%s"%(name[0],name[1],name[2])) TypeError: not all arguments converted during string formatting (并非所有参数都在字符串格式化过程中转换)
    问题三:缺少一个右半边括号报错:
    name=["mcw","小马过河","魔降风云变"]
    print("%s和%s"%(name[0],name[1])
    -------------结果:
    SyntaxError: unexpected EOF while parsing (分析时出现意外的EOF)

    2、%d        #取整数

    print("You have %d books"%(23.4))
    ------------结果:
    You have 23 books
    
    %d可以取整,而%s却不能取整
    print("You have %s books"%(23.4))
    --------------结果:
    You have 23.4 books

    3、%%     #打印一个%号,要用另一个%转义,不要被%s的%所影响。

    print("我有%s%%的把握"%(80))
    -----------------结果:
    我有80%的把握

    4、%f     #打印浮点数,以及指定打印小数位位数

    print("我支付宝只有%f的余额"%(250.25))
    --------------结果:
    我支付宝只有250.250000的余额

    print("我支付宝只有%.3f的余额"%(250.25))    
    -------------结果:
    我支付宝只有250.250的余额
    #%f可以打印出后面的浮点数,似乎是6位小数。而%s写的啥就输出的啥 
    print(
    "我支付宝只有%s的余额"%(250.25))
    --------------结果: 我支付宝只有250.25的余额

    参考:https://www.cnblogs.com/claidx/p/7253288.html

    字符串格式化存在的意义

    name = input('姓名:') do = input('在干什么:') template = "%s在教室,%s。" %(name,do,) print(template)

    直接做占位符

    template = "我是%s,年龄%s, 职业%s。" %("mcw",73,'讲鸡汤',)

    print(template)

    template = "我是%s,年龄%d, 职业%s。" %("mcw",73,'讲鸡汤',)

    print(template)

    name = 'mcw'

    template = "%s现在手机的电量是100%%" %(name,)

    print(template)

    占位符%s既可以表示字符串str,还可以表示整数int,浮点数float;

     占位符%d既可以表示整数int,还可以表示浮点数float(去除整数部分)

     占位符%f既可以表示浮点数float,还可以表示整数int(默认保留6位小数)

      注意:若想自主保留n位小数,可将其表示位%.nf

    自我注解:格式化输出"%s"%(传的值),打印%就要再加一个%

    问题:如果后面%s和后面的参数个数不一致会是什么情况?


    pycharm改解释器版本

    #8、打印1-100的奇数

    count=0
    while count<100:
        count=count+1
        if count%2 != 0:
        print(count)

    #自我注解:除以2取余为0的是偶数。条件可得偶数,需要奇数,条件取反就得奇数。

    #9、求和1-100

    count=0
    sum=0
    while count<100:
        count=count+1
        sum=sum+count
    print(sum)
    #注解:count自增实现循环,sum将每次循环的count加到sum里,实现count1-100的循环求和

    #10、计算1-10中,除1外,偶数减奇数

    zongshu=0
    num=1
    while  num<11:
        if num==1:
            zongshu=zongshu+num
        elif num !=1:
            b=num%2
            if  b==False:
                zongshu=zongshu+num
            elif b==True:
                zongshu=zongshu-num
        num=num+1
    print(zongshu)

    #11、求方,

    #12、求开方

    #13、逻辑运算 与或非

    #14、数据类型转换

    bool() 数字和字符串转布尔类型,0和空字符串是False,空格是True.布尔值转换数字为0和1,转换为字

    符串为字符串。 int() 字符串转数字,数字转字符串 str()

    #需要增加数据类型转换

     

    #15、value=1 or 9  (and,or,not)

    #注意:似乎由此判断变量的值,然后对值进

    or

    """

    对于 or,如果有遇到 value= 1 or 9 第一个值如果是转换成布尔值如果是真,则value=第一值。 第一个值如果是转换成布尔值如果是假,则value=第二值。 如果有多个or条件,则从左到右依次进行上述流程。 示例: v1 = 0 or 1 v2 = 8 or 10 v3 = 0 or 9 or 8 """

    #注解:or遇到假,往后走,遇到第一个真,就返回这个值。遇到全为假,返回最后那个值 $找真找到就停

    v1= 0 or 0 or False
    v2=0 or False or 0
    print(v1,v2)
    View Code

    and

    """ 对于and,如果遇到 value= 1 and 9 这种情况 如果第一个值转换成布尔值是True,则value=第二个值。 如果第一个值转换成布尔值是False,则value=第一个值。 如果有多个and条件,则从左到右依次进行上述流程。

    #注解:and遇到假就停,返回假的值。没有假,返回最后一个值  $找假,找到就停

    示例:

    v1 = 1 and 9
    v2 = 1 and 0
    v3 = 0 and 7
    v4 = 0 and ""
    v5 = 1 and 0 and 9
    j_str = "v1=%s v2=%s v3=%s v4=%s v5=%s" %(v1,v2,v3,v4,v5)
    print(j_str)
    
    #v1=9 v2=0 v3=0 v4=0 v5=0

    行判断做对应的操作 第一个值转换布尔值如果是真,则value=第一个值 第一个值转换布尔值如果是假,则value=第二个值 如果有多个or条件,则从左到右依次

    从左到右进行判断,遇到真即停止继续判断

    and 遇到0就0,遇到空就空,都么遇到就是最后那个,同时遇到谁在前就是谁?

     

    unicode现在基本ecs4,小表情ecs4,ecs2不包括 gbk gb2312,其中一个是另一个的升级,多一点。二者用两个字节存储汉字。 很多开源组件是国外的,用的是utf-8,建议用utf-8的编码

     
     
     
     
  • 相关阅读:
    Mac开发——设置关闭窗口之后点击Dock中的图标可以再次打开窗口
    添加学院的 Exchange邮箱到手持设备中
    黑苹果 装SVN工具 cornerstone无法打开解决办法——网卡内建
    解决cocos2dx在Xcode中运行时报:convert: iCCP: known incorrect sRGB profile 的问题
    Lua中的正则表达式的使用
    C++11 标准新特性:Defaulted 和 Deleted 函数
    HTML5基础
    第一本书考试错题
    字符串
    带参数的方法
  • 原文地址:https://www.cnblogs.com/machangwei-8/p/10617037.html
Copyright © 2020-2023  润新知