zoukankan      html  css  js  c++  java
  • python基础二

    一、流程控制-while循环,结构如下:

    while 条件:

      结果

    如果条件是真,则直接执行结果,然后再次判断条件,直到条件是假,停止循环

    那么我们如何终止循环呢?

    1,改变循环条件

    2,break

    注意:continue并不能结束循环,只是结束本次循环,继续下一次循环

    while循环补充:

    while 条件:

      循环体

    else: # 循环在正常情况跳出之后会执行这里

    例如:

    index = 1

    while index < 11

      if index == 8:

        # break

         pass

      else:

        print(index)

      index = index + 1

    else:print(“您好”)

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

    pass:不表示任何内容,为了代码的完整性,占位而已

    二、流程控制-break和continue

    1,break:打断,彻底终止当前本层循环

    2,continue:停止本次循环,继续执行下一次循环

    三、格式化输出

    现在有以下需求,让用户输入name,age,job,hobby然后输出如下所示:

    --------------- info of Alex Li ---------------

    Name   : Alex Li

    Age     : 22

    job      : Teacher

    Hobby   : girl

    -------------------- end ---------------------

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

    name = input(“Alex Li”)

    age = input(“22”)

    job = input(“Teacher”)

    hobby = input(“girl”)

    info = ’’’

    --------------- info of %s -----------------    # 这里的每个%s就是一个占位符

    Name   : %s

    Age     : %s

    job      : %s

    Hobby   : %s

    -------------------- end -------------------  

    ’’’ % (name , name , age , job , hobby)  # 这行的%就是把前面的字符串与后面的变量关联起来

    %s就是代表字符串占位符,除此之外,还有%d,是数字占位符,如果把上面age后面的换成%d,就代表你必须只能输入数字,这时age对应的数据类型必须是int类型,否则程序会报错。

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

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

    如果你觉得转换类型麻烦,不想转换,也可以全部都用%s,因为任何东西都可以直接转换成字符串(仅限%s)

    现在问题又来了,如果想输出: 我叫%s,今年多少岁,我们已经学习了2%的python了

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

    注意:如果你的字符串中没有使用过%s,%d占位,那么就不需要考虑那么多,该%就%,程序不会报错。

    例如:print(“我叫%s,今年22岁了,学习python2%%了” % ‘lily’)    # 有%占位符,想输出“2%”就要写成“2%%”

         print(“我叫lily,今年22岁了,已经学了80%python了”)   # 没有占位符,正常写即可

    四、基本运算符

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

      算数运算

      比较运算

      逻辑运算

      赋值运算

      成员运算

      身份运算

      位运算

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

    4.1 算数运算

      +,-,*,/,%(取余),**(次幂),//(整除或地板除)

    4.2 比较运算

      ==,!=,<>(不等于),>,<,>=,<=

    4.3 逻辑运算

      and -- 并且,两边同时为真,结果才是真,有一个是假,结果为假

      or -- 或者,两边只要有一个为真,结果就为真

      not -- 非真即假,非假即真

      逻辑运算的进一步研究:

      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

        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

      例题:求出下列逻辑语句的值

        8 or 4

        0 and 3

        0 or 4 and 3 or 7 or 9 and 6

    4.4 赋值运算

      =,+=,-=,*=,/=,%=,**=,//=

    五、编码初识

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

      早期,计算机是美国发明的,普及率不高,一般只是在美国使用,所以,最早的编码结构就是按照美国人的习惯来编码的,对应数字+字母+特殊字符一共也没多少,所以就形成了最早的编码:ASCII码,直到今天ASCII依然深深的影响着我们。

      ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用8位来表示(一个字节),即2**8 = 256,所以,ASCII码最多只能表示256个字符。

      随着计算机的发展以及普及率的提高,流行到欧洲和亚洲,这时ASCII码就不合适了,比如:中文汉字有几万个,而ASCII最多也就256个位置,所以ASCII不行了,怎么办呢?这时,不同的国家就提出了不同的编码用来适应于各自的语言环境,比如,中国的GBK,GB2312,BIG5,ISO-8859-1等等,这时各个国家都可以使用计算机了。

      GBK,国标码占用2个字节,对应ASCII码,GBK直接兼容,因为计算机底层是用英文写的,你不支持英文肯定不行,而英文已经使用了ASCII码,所以GBK要兼容ASCII。

      字母A:0100 0001     # ASCII码

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

      由于国标码使用两个字节,所以对于ASCII 码而言,前8位都是0

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

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

      UTF-16:每个字符最少占16位

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

    编码小结:

    1,ASCII是最早的编码,至今还在使用,一个字符8位(一个字节)

    2,GBK,国标码,16位,2个字节

    3,unicode,万国码,32位,4个字节

    4,UTF-8,可变长度的unicode

      英文:8位,1个字节

      欧洲文字:16位,2个字节

      汉字:24位,3个字节

    5,单位转换(常用到TB就够了):

      8bit = 1byte    或者    8b = 1B

      1024byte = 1KB

      1024KB = 1MB

      1024MB = 1GB

      1024GB = 1TB

      1024TB = 1PB

      1024PB = 1EB

      1024EB = 1ZB

      1024ZB = 1YB

      1024YB = 1NB

      1024NB = 1DB

    in 和not in

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

    例如:

    content = input(“请输入你的评论”)

    if “苍老师” in content or “邱老师” in content:

      print(“你输入的内容不合法”)

    else:

      print(“评论成功”)

  • 相关阅读:
    猜年龄的问题
    某字符串可能包含26个英文字母,可能包含6种符号,可能包含3个数字,统计他们出现的个数
    指针变量前面类型的作用和意义
    二维数组 同时计算 练习题
    二维数组,行累加与列累加同时进行
    二维数组斜线扫描心得与分析
    二维数组扫描操作题
    LeetCode | Remove Duplicates from Sorted List II
    LeetCode | Remove Nth Node From End of List
    LeetCode | Palindrome Linked List
  • 原文地址:https://www.cnblogs.com/li-li/p/9385633.html
Copyright © 2011-2022 走看看