zoukankan      html  css  js  c++  java
  • Python入门基础知识点(循环语句和编码)

    格式化输出

    字符串的拼接可以制作一个公共字符串模板,让某些位置变成动态的。

    name = input('请输入姓名')
    age = input('请输入年龄')
    hobby = input('请输入爱好')
    msg = '我的姓名是' + name + '我今年' + age + '我的爱好是' + hobby
    print(msg)

    现有一练习需求,问用户的姓名、年龄、工作、爱好 ,然后打印成以下格式

    ------------ info of Alex Li -----------
    Name  : Alex Li
    Age   : 22
    job   : Teacher
    Hobbie: girl
    ------------- end -----------------

    你怎么实现呢?你会发现,用字符拼接的方式还难实现这种格式的输出,所以一起来学一下新姿势!

    只需要把要打印的格式先准备好, 由于里面的 一些信息是需要用户输入的,你没办法预设知道,因此可以先放置个占位符,再把字符串里的占位符与外部的变量做个映射关系就好啦

    name = input("Name:")
    age = input("Age:")
    job = input("Job:")
    hobbie = input("Hobbie:")
    
    info = '''
    ------------ info of %s ----------- #这里的每个%s就是一个占位符,本行的代表 后面拓号里的 name 
    Name  : %s  #代表 name 
    Age   : %s  #代表 age  
    job   : %s  #代表 job 
    Hobbie: %s  #代表 hobbie 
    ------------- end -----------------
    ''' %(name,name,age,job,hobbie)  # 这行的 % 号就是 把前面的字符串 与拓号 后面的 变量 关联起来 
    
    print(info)

    %s就是代表字符串占位符,除此之外,还有%d,是数字占位符, 如果把上面的age后面的换成%d,就代表你必须只能输入数字啦

    age     : %d

    input接收的所有输入默认都是字符串格式!

    要想程序不出错,那怎么办呢?简单,你可以把str转成int

    name = input("Name:")
    age = int(  input("Age:")  )
    print(type(age))

    肯定没问题了。相反,能不能把字符串转成数字呢?必然可以,str( yourStr )

    问题:现在有这么行代码

    msg = "我是%s,年龄%d,目前学习进度为80%"%('金鑫',18)
    print(msg)

    这样会报错的,因为在格式化输出里,你出现%默认为就是占位符的%,但是我想在上面一条语句中最后的80%就是表示80%而不是占位符,怎么办?

    msg = "我是%s,年龄%d,目前学习进度为80%%"%('金鑫',18)
    print(msg)

    这样就可以了,第一个%是对第二个%的转译,告诉Python解释器这只是一个单纯的%,而不是占位符。

    while循环

    基本循环

        
    while 条件:
         
        # 循环体
     
        # 如果条件为真,那么循环体则执行
        # 如果条件为假,那么循环体不执行

    循环中止语句 

    如果在循环的过程中,因为某些原因,你不想继续循环了,怎么把它中止掉呢?这就用到break 或 continue 语句

    • break用于完全结束一个循环,跳出循环体执行循环后面的语句
    • continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环

    例子:break

    count = 0
    while count <= 100 : #只要count<=100就不断执行下面的代码
        print("loop ", count)
        if count == 5:
            break
        count +=1 #每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0
    
    print("-----out of while loop ------")

    输出:
    loop  0
    loop  1
    loop  2
    loop  3
    loop  4
    loop  5
    -----out of while loop ------

    例子:continue

    count = 0
    while count <= 100 : 
        count += 1
        if count > 5 and count < 95: #只要count在6-94之间,就不走下面的print语句,直接进入下一次loop
            continue 
        print("loop ", count)
    
    print("-----out of while loop ------")

    输出: loop
    1 loop 2 loop 3 loop 4 loop 5 loop 95 loop 96 loop 97 loop 98 loop 99 loop 100 loop 101 -----out of while loop ------

    while ... else ..

    与其它语言else 一般只与if 搭配不同,在Python 中还有个while ...else 语句

    while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句

    count = 0
    while count <= 5 :
        count += 1
        print("Loop",count)
    
    else:
        print("循环正常执行完啦")
    print("-----out of while loop ------")
    
    输出:
    Loop 1
    Loop 2
    Loop 3
    Loop 4
    Loop 5
    Loop 6
    循环正常执行完啦
    -----out of while loop ------

    如果执行过程中被break啦,就不会执行else的语句啦

    count = 0
    while count <= 5 :
        count += 1
        if count == 3:break
        print("Loop",count)
    
    else:
        print("循环正常执行完啦")
    print("-----out of while loop ------")


    输出:
    Loop 1
    Loop 2
    -----out of while loop ------

    while相关练习题:

    1、使用while循环输入 1 2 3 4 5 6     8 9 10

    2、求1-100的所有数的和

    3、输出 1-100 内的所有奇数

    4、输出 1-100 内的所有偶数

    5、求1-2+3-4+5 ... 99的所有数的和

    6、用户登陆(三次机会重试)

    运算符:

        计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算

        今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算、成员运算

    算数运算

    以下假设变量:a=10,b=20

    + - * / %
    % : 取余,取模。取的是第一个操作数和第二个操作数除法的余数。整除结果为0.
    10 % 3         1
    10 % 5         0
    10 % -3        ?
    10 % -5-10%3% 真正操作步骤:
    1.    用第一个数除以第二个数,得到最相近的两个商。取最小的数。
    2.    用第一个数减去第二个数和第一步的到的数的乘积。

    比较运算

    以下假设变量:a=10,b=20

    <= >= == !=
    
    比较运算符的结果始终是布尔类型。

    赋值运算

    以下假设变量:a=10,b=20

    基本的赋值运算符:=
    扩展的赋值运算符:
        +=  -=  *=  /=  %=
        例如:X += Y    -->  X = X + Y

    逻辑运算

    针对逻辑运算的进一步研究:

      1,在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。

    判断下列逻辑语句的True,False。

    1,3>4 or 4<3 and 1==1
    2,1 < 2 and 3 < 4 or 1>2 
    3,2 > 1 and 3 < 4 or 4 > 5 and 2 < 1
    4,1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8
    5,1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 66,not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6

      2 ,  x or y , x为真,值就是x,x为假,值是y;

                 x and y, x为真,值是y,x为假,值是x。

    python中只有三个逻辑运算符:
    and      or       not
    逻辑运算符的结果到底是什么类型???
    结果取决于两个操作数的类型!!!
    针对and操作:第一个操作数如果是可以转成False的话,那么第一个操作数的值,就是整个逻辑表达式的值。
    如果第一个操作数可以转成True,第二个操作数的值就是整个表达式的值。
    
    针对or操作:第一个操作数如果是可以转成False的话,第二个操作数的值就是整个表达式的值。
    如果第一个操作数可以转成True, 第一个操作数的值,就是整个逻辑表达式的值。

     编码的初识

    ascii:计算机最早期的'密码本', 只包含英文字母,数字,特殊字符。

    早期的ascii都是7位一段,但是为了以后的发展,拓展了一位
     01100001        a
     00000111        b
     00100100        c
     00000011        d
     一位 :1bit
     1字节 1 bytes = 8bit
     一个字符用一个字节表示

    s1 = 'oldboy' 用ascii编码本编译: 6个字节表示

    随着计算机的发展,世界的编码协会: 本我要写一个能满足全世界语言通用的密码创立了万国码

            a : 00000011 00000011
            中: 00000111 00000011
    
          升级: 32bit 4个字节表示一个字符
    
            a : 00000011 00000011 00000011 00000011
            中: 00000011 00000011 11000011 00000011
        结果太过于浪费空间

        utf-8 密码本: 最少用8位表示一个字符。

            a : 00000011  (英文:一个字节)
            欧洲文字: 00000011 00010011 (两个字节)
            中:00000011 00100011 11000011  (三个字节)
    
            s2 = '老boy' : utf-8编码:6个字节。(中文3个字节加上三个英文字节)

        gbk:gb2312 等等 国标,中国人自己发明的密码本。

            a : 00000011(英文:一个字节)
            中: 00000011 00100011(两个字节)
    
            s2 = '老boy' : gbk编码:5个字节。(中文两个字节加上三个英文字节)
    8bit == 1bytes
    1024bytes == 1kb
    1024kb == 1Mb
    1024Mb == 1GB
    1024GB == 1Tb
    。。。。。。。

     

  • 相关阅读:
    计算位数
    素数的判断(大数据,大规模)
    Patting Heads
    Jury Jeopardy (这是一道单纯的模拟题)
    POJ 2229 Sumsets(规律)
    OJ 26217 :Work Scheduling(贪心+优先队列)
    牛客Professional Manager(并查集)
    DJ 算法的队列优先优化
    优先队列priority_queue的简单应用
    node.js服务端存储用户密码md5加密
  • 原文地址:https://www.cnblogs.com/sikuaiqian/p/10460210.html
Copyright © 2011-2022 走看看