zoukankan      html  css  js  c++  java
  • Python入门

    一.while循环

      什么是循环?说白了就是重复某个事物,你可以让它一直重复,也可以通过添加一些条件,让这个循环在我们的掌握中!下面让我们进入今天额内容.

      1.while循环的语法

        while 条件:

          循环体

    while True:       #True 表示这个条件一直成立
        print('你好')   #死循环  会一直打印 你好
    

      死循环在我们生活中也有应用到,比如:输入用户名和密码这种情况,输入错误可以一直输,当然也有次数限制的情况,这个会在下面的内容中提到

      while 条件:

        循环体

      else:

        循环体

    s = input('输入数字:')
    while s > 60:    #你输入的数字如果大于60,就会打印下面的结果
        print('及格')
    else:            #else 是否则的意思,如果小于60,就执行下面的代码
        print('不及格')
    

      上面的只是最简单的情况,通常while会和if语句组合使用,这样可以实现更多的功能

    例如:

    s = input('输入数字:')
    while True:
        if s > 60:
            print('及格')
        else:
            print('不及格')
     

      上面的这种情况还是不够完美,还是死循环,又想实现功能,又想让它在实现完功能后自动停止,怎么办呢?

    这里就要我们认识两个单词:break,continue

    break 结束循环

    continue 结束本次循环继续下次循环

    s = input('输入数字:')
    while True:
        if s > '60':
            print('及格')
         break
        else:
            print('不及格')
         break
    结果:如果你输入的数字大于60,打印完及格就会结束循环
      输入的数字小于60,会打印不及格,同样也会结束循环  

    这是break一个简单的小应用,下面我们来说说continue的应用

    注意: 如果循环是通过break退出的. 那么while后面的else将不会被执行, 只有在while条件判断是假的时候才会执行这个 else

    while True:
        user = input('请输入用户名:')
        pwd = input('请输入密码:')
        if user == '喜羊羊' and pwd == '123'
            print('登录成功')
            break
        else:
            print('用户名或者密码错误,请重新输入')
            continue    
    结果:用户名输入'喜羊羊'和密码输入'123',则显示登陆成功,然后就会结束循环
       有一个或者两个都没输对,就会显示用户名或密码错误,重新输入,continue就是起到输入不正确,让你能重新输入
       否则就会一直打印'用户名或密码错误,请重新输入'

      这种情况就是就是我们生活中经常遇到的登录情况,是不是很有画面感,当然我们还能限制输入次数,防止被盗.

    count = 1      #定义一个计数器
    while count <= 3: #把条件设置在一个范围,只能输入三次,三次都不对就会退出程序 user = input('请输入用户名:') pwd = input('请输入密码:') if user == '喜羊羊' and pwd == '123' #用户名和密码都正确才能登陆成功 print('登录成功') break else: print('用户名或者密码错误,请重新输入')
         count += 1 #每次让它加1,既可以循环,又能限制次数,当上边count不满足条件就会自动停止

    同样,我们也可以用while循环让程序数数,从1数到100

     count = 1
     while count <= 100:
         print(count) 
         count = count + 1
    结果:1
       2
       3
      ...
      100
    数数. 1-100奇数
    count = 1
    while count <= 100:
    print(count)
    count = count + 2

    while循环求和

    计算 1-100之间所有的数的和
    sum = 0                 # sum: 0 + 1 + 2 + 3 + 4....99 + 100
    count = 1               # count: 1, 2, 3, 4, 99,100, 101
    while count <= 100:
        sum = sum + count  # 累加运算
        count = count + 1
    print(sum)
    

      

      

    二.格式化输出

      现在如果我们有这种需求,让用户输入name, age, job,hobby 然后输出如下所示:
    ------------ info of Alex Li -----------
    Name : Alex Li
    Age : 22
    job : Teacher
    Hobbie: girl
    ------------- end -----------------
    

     你怎么实现呢?你会发现,用字符拼接的方式很难实现这种格式的输出,所以一起来学习下新姿势 只需要把要打印的格式先准备好, 由于里面的 一些信息是需要用户输入的,你没办法预先知道,因此可以先放置个占位 符,再把字符串里的占位符与外部的变量做个映射关系就好啦!

    name = input("Name:")
    age = input("Age:")
    job = input("Job:")
    hobby = 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,就代表你必须只能输入数字 , 这时对应的数据必须是int类型 . 否则程序会报错 , 使用时 , 需要进行类型转换.

    int(str) # 字符串转换成int
    str(int) # int转换成字符串
    

      类似这样的操作在后面还有很多, 如果 你头铁, 就不想转换, 觉着转换很麻烦, 也可以全部都用%s. 因为任何东西都可以直接转换成字符串--> 仅限%s .现在又来新问题了. 如果想输出:  

    我叫xxx, 今年xx岁了,我们已经学习了2%的python基础了
    

      这里的问题出在哪里呢? 没错2%, 在字符串中如果使用了%s这样的占位符. 那么所有的%都将变成占位符. 我们的2%也变成了 占位符. 而"%的"是不存在的, 这里我们需要使用%%来表示字符串中的%.

    注意: 如果你的字符串中没有使用过%s,%d站位. 那么不需要考虑这么多. 该%就%.没毛病老铁.

    print("我叫%s, 今年22岁了, 学习python2%%了" % '王尼玛') # 有%占位符
    print("我叫王尼玛, 今年22岁, 已经凉凉了100%了") # 没有占位符 

    三.运算符

      计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为:

    算数运算、 比较运算、 逻辑运算、 赋值运算、 成员运算、 身份运算、 位运算.

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

      2.1算数运算

        假设我们现在设置两个变量 : a = 10   b = 20

    运算符     描述                                                                     实例
    
       +        加 + 两个对象相加                                              a + b 输出结果 30
    
       -        减 - 得到负数或是一个数减去另一个数                               a - b 输出结果 -10
    
       *        乘 * 两个数相乘或返回一个被重复若干次的字符串                       a * b 输出结果 200         
    
       /        除 / x除以y                                                   b / a 输出结果 2
    
       %        取模 % 返回除法的余数                                           b % a 输出结果 0
    
       **       幂 ** 返回x的y次幂                                             a ** b 10的20次方 100000000000000000000
    
       //       取整除 //  返回商的整数部分                                      9 // 2 输出结果 4  9.0 // 2.0 输出结果 4.0
    
       
    

      2.2 比较运算

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

    运算符                描述                                                实例
     ==        等于 - 比较对象是否相等                                   (a == b)返回False
    
     !=         不等于 - 比较两个对象是否不相等                           (a == b)返回True
    
     <>         不等于 - 比较两个对象是否不相等                           (a <> b)返回True
    
     >          大于 - 返回x是否大于y                                   (a > b)返回False
    
     <          小于 - 返回x是否小于y                                   (a < b)返回True
    
     >=         大于等于 - 返回x是否大于等于y                            (a >= b)返回False
     
     <=         小于等于 - 返回x是否小于等于y                            (a <= b)返回True
      

    注意: <> 不等于,类似于 !=,不过python3.x版本以后都用 != 

       所有比较运算符返回1表示真,返回0表示假,这分别与特殊的变量True和False等价.变量名记得要大写

      2.3 赋值运算

    运算符                描述                                                实例
     =             简单的赋值运算符                                   c = a + b 将 a + b的运算结果赋值为c
    
     +=            加法赋值运算符                                     c += a等效于 c = c + a
    
     -=            减法赋值运算符                                     c -= a等效于 c = c - a
    
     *=            乘法赋值运算符                                     c *= a等效于 c = c * a
    
     /=            除法赋值运算符                                     c /= a等效于 c = c / a
    
     %=            取模赋值运算符                                     c %= a等效于 c = c % a
     
     **=           幂赋值运算符                                       c **= a等效于 c = c ** a
     
     //=           取整除赋值运算符                                   c //= a等效于 c = c // a
    

      2.4 逻辑运算

    运算符                            描述                                     实例                                   
     and      布尔'与',如果x为False,x and y返回False,否则它返回y的计算值       (a and b) 返回True
    
     or       布尔'或',如果x是True,它返回True,否则它返回y的计算值              (a and b) 返回True
    
     not      布尔'非',如果x为True,返回False.如果x为False,它返回True           not(a and b)返回False
    

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

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

      () > not > and > or

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

    3>4 or 4<3 and 1==1
    1 < 2 and 3 < 4 or 1>2
    2 > 1 and 3 < 4 or 4 > 5 and 2 < 1
    1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8
    1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
    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 

         in和not in

    可以判断xxx字符串是否出现在xxxxx字符串中

    content = input("请输入你的评论:")
    if "苍老师" in content or '邱老师' in content:
        print('你输入的内容不合法')
    else:
        print("评论成功")

    四.初始编码

      python2解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),在python3对内容进行编码的默认为utf-8。

      早期, 计算机是美国发明的, 普及率不高, 一般只是在美国使用. 所以, 最早的编码结构就是按照美国人的习惯来编码的,对应数字+字母+特殊字符总共也没多少. 所以就形成了最早的编码ASCII码, 直到今天ASCII依然深深的影响着我们. ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电 脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(1个字节),即:2**8 = 256,所 以,ASCII码最多只能表示 256 个符号.

      随着计算机的发展, 以及普及率的提高, 流行到欧洲和亚洲, 这时ASCII码就不合适了. 比如: 中国汉字有几万个,而ASCII 最多也就256个位置, 所以ASCII不行了, 怎么办呢? 这时, 不同的国家就提出了不同的编码来适用于各国的语言环境. 比如, 中国的GBK, GB2312, BIG5, ISO-8859-1等等. 这时各个国家都可以使用计算机了. GBK, 国标码占用2个字节, 对应ASCII码 GBK直接兼容, 因为计算机底层是用英文写的, 你不支持英文肯定不行, 而英文已经使用了ASCII码, 所以GBK要兼容ASCII, 这里GBK国标码前面的ASCII码部分, 由于使用两个字节, 所以对于ASCII码而言, 前9位都是0.

    字母A:0100 0001 # ASCII
    字母A:0000 0000 0100 0001 # 国标码
    

      国标码的弊端: 只能中国用,日本就垮了, 所以国标码不满足我们的使用, 这时提出了一个万国码Unicode. unicode刚开始设计是每个字符两个字节, 设计完了, 发现我们中国汉字依然无法进行编码, 只能进行扩充, 扩充成32位也就是4个字节, 这回够了, 但是问题来了, 中国字9万多, 而unicode可以表示40多亿, 根本用不了, 太浪费了, 于是乎, 就提出了新的 UTF编码.可变长度编码.

    UTF-8: 每个字符最少占8位, 每个字符占用的字节数不定, 根据文字内容进行具体编码. 比如: 英文, 就1个字节就够了, 汉 字占3个字节, 这时既满足了中文, 也满足了节约, 也是目前使用频率最高的一种编码.

    UTF-16: 每个字符最少占16位. GBK: 每个字符占2个字节, 16位.

     GBK: 每个字符占2个字节, 16位.

     单位转换:

     8bit = 1byte

    1024byte = 1KB

    1024KB = 1MB

    1024MB = 1GB

    1024GB = 1TB

    1024TB = 1PB

    1024PB = 1EB

    1024EB = 1ZB

    1024ZB = 1YB

    1024YB = 1NB

    1024NB = 1DB

    常用到TB就够了

     

      

  • 相关阅读:
    1.Hibernate配置
    CKEditor/FCKEditor的使用
    介绍一个好用的工具类库commons-beanutils
    SpringBean.xml配置
    MVC框架显示层——Velocity技术
    mysql CMD命令
    day 05
    day 04
    day03
    python day 02
  • 原文地址:https://www.cnblogs.com/pythoncainiao/p/10029768.html
Copyright © 2011-2022 走看看