Python Day5 基础

Python基础 day03

运算符:

   not , and , or

语法:

   not x

作用:

    将X进行布尔取反,如bool(x)为True,则返回False,否则为True

例:

     not True    #返回False

     not False    #返回True

     money = 100

     is money >= 100

     pay = money - 20

else:

       pay = money - 20

       print(pay)

布尔 与 操作  and  :

语法:

         x and y

注:

        x、y 代表表达式

作用:

         当x 的布尔值为True时,返回y,否则返回x

例如:

>>> True and False

True

>>> True and True

True

>>> Flase and True

Flase

>>> Flase and Flase

Flase

布尔 或 操作  or :

语法:

        x or y

作用:

          当x为True时,返回x,否则返回y

>>> True and False

True

>>> True and True

True

>>> Flase and True

True

>>> Flase and Flase

Flase

score = input('请输入学生成绩:') or '0'

score = int(score)

score = input() or input() or input()            # 这个就是按顺序 遇到True的时候输出

比如:

            score = input('请输入你的成绩') or input('你忘记输入成绩了哦') or input('看来你真的不打算输入')

正负号运算符:

                     正号(+)  负号(-)

一元运算符

语法:

+ 表达式

- 表达式

示例:

        a = 5

        b = -a  #b = -5

        c = +a  #c = 5

        c = (2-3j)

        c2 = -c  #(-2+3j)

位运算符

              bit(位)

             byte(字节,含有8个位)  2**8

运算符:

            & 位与

            | 位或

           ^ 位异或

           << 左移

           >> 右移

~ 按位求反

位与:(通常整型数字运算,不支持浮点数运算)

语法:

        表达式x & 表达式y

作用:

        按位操作,两个对应的位为1 ,则结果为1,否则结果为0

例:

          10 & 12  # 返回 8

          bin(x)  函数: (bin 为 binary 前三个字符)

          可以将x转换为二进制字符串

位或:

语法:

         表达式: x | y

作用:  按位操作,两个对应的位,只要有一个为1,则结果为1,否则结果为0

     10 | 12  # 结果为14

# 数据压缩和加密需要用位操作,不知道算法就无法解密

位异或: ^

语法:

          表达式: x ^ y

作用: 按位操作,两个对应的位不同,结果为1,否则结果为0

左移运算:左移多少位实际为乘以2的几次方

语法:

          表达式 x << 整数表达式y

作用:

          将x 的二进制值按位向左移动y位,低位补 0

示例:

         0b1010 << 1  #20

         0b1010 << 2  #40

右移运算:右移多少位实际为地板除以2的y的次方

语法:

         表达式 x >> 整数表达式y

作用:

         将x的二进制值按位向右移动y位,低位溢出丢弃

示例:

0b1010 >> 1  #5 0b101

0b1010 >> 2  #2 0b10

0b1010 >> 3  #1 0b1

0b1010 >> 4  #0 0b

按位求反: ~ (1按键的左上角)1变成0  0变成1

语法:

~ 表达式

正数隐藏为0 求反隐藏符号变为1 则原来正数变为负数

~ 0b1010(0b01010)

符号位取反0b(1)0101

示例:

~ 0 = -1(补码形式)

-1 = 0

练习:输入一个正整数存于x内,用移位方式求x的五倍是多少?

(注:不允许使用乘号)

字符串: str

作用:

用来记录文本信息

字符串表示方法:

在非注释中凡是用银行括起来的部分都是字符串:

 ' '  单引号

" "  双引号

'''  ''' 三单引号

"""   """三双引号

空字符串字面值的表示方法:

' '

" "

''' '''

""" """

空字符串的布尔测试值为False

非空字符串字面值的表示方法:

'hello'

"hello"

'''hello'''

"""hello"""

单引号和双引号的区别:

单引号内可以包含双引号(双引号不算结束符)

反之相同

示例:

print('I'am a teacher')

print("I'am a teacher")

三引号的字符串:

作用:

三引号串的换行符会自动转换为换行符  \n

三引号内可以包含单引号和双引号

示例:

hello

welcome to beijing!

i like python

print("hello\nwelcome to beijing\ni like python")

print("""hello!

weilcome to beijing!

i like python!""")

隐式字符串字面值的拼接:

>>> "I'am"      'a teacher'

>>> "I'am a teacher"

用转义序列代表特殊字符:

字符串中\ 后跟一些字符代表特殊含义:

例:反斜杠字符

\'  代表单个单引号

\"  代表单个双引号

\n  代表换行

\\  一个反斜杠

\a  响铃

\r  返回光标至行首

\t  水平制表符  通常为4-8个空格符

\v  垂直制表符

\f  换页

\b  倒退

\0  空字符,字符值为0

\0oo 八进制表示的字符

\xXX 十六进制表示的字符

\uXXXX Unicode 16 的十六进制字符

\uxxxxxxxx Unicode 32 的十六进制字符

计算机为每个字符字母文字编码,输入相关信息,计算机找到后再输出

ASCII编码:

$  man ascii

任何字符都有编码标记,输出编码也能打印出任何字符

ascii 里边一共有128个编码  0-127

常用的ascii 编码表

字符        十进制          十六进制

'0'          48              0x30

'A'          65              0x41

'a'          97              0x61

Unicode

'\x41'    十六进制表示的字符 A

'\u0041'  Unicode16(2个bit表示) 十六进制表示的字符A

'\U00000041'  Unicode32(4个bit表示) 十六进制表示的字符A

len(x)  函数,求字符个数:

len(s)

练习:'1234abcd'  有几个字符

'\5\'4"'

'\"A\x34\056'

'\a\bc\td\n'

raw 字符串(原始字符串,未经过任何修饰的)

格式:

r"字符串内容"

r'字符串内容'

r'''字符串内容'''

r"""字符串内容"""

作用:

让转义字符\无效

字符串的运算:

+  +=  *  *=

+ 加号运算,用于拼接字符串

例:

x = 'abcd' + 'efg'

print(x)  # abcdefg

y = '123'

z = x + y  #abcdefg123

+= 用原字符串与右侧字符串拼接后生成新的字符串

新字符串绑定原字符串上

例:

x = 'abcd'

y = 'efg'

x += y    # 等同于 x = x + y

* 运算符代表生成重复的字符串

例:  "a" * 5

print(a)  # "aaaaa"  乘几就是多少个前边字符串

*=  生成重复的字符串,并改变原变量的绑定关系

例:

x = 'ABC'

x *= 3          # x = 'ABCABCABC'

字符串的比较运算:

<    <=  >    >=  ==  !=

示例:

"ABC" == '''ABC'''    # True  长度内容相同,那么他就是相同的

'ABC' == 'ABD'    # False

'ABC' > 'ABB'    # True 因为字母C的编码值大

'ABC' > '123'    # True

'ADC' < 'ABD'    # True D已经比B大后边不在判断

'AB'  < 'AB0'    # True 后边字符长,所以大

'ABCD' == 'DCBA'  # False 顺序不同

'abc'  == 'ABC'  # 不同的字符编码不同

in / not in 运算符:

作用:

in 用于序列 ,字典,集合中,用于判断某个值是否存在于对象中(通常是容器类对象)

not in 与 in 的返回值相反

语法格式:

值 in 字符串

例:

x = 'welcome to tarena!'

if 'to' in x:

print('to 存在于x中')

python 运算符优先级:

(自上而下,由高到低)

**              指数

-,+,-          按位反转(取反),一元正号,一元负号

*,/,//,%

+,-

>> , <<        右移和左移

&              位与

^              位异或

|              位或

< , <= , > , >= , == ,!= ,is ,is not ,in ,not  in

not            bool非运算(取非)

and

or

if - else  条件表达式

字符串的基本操作:

字符串的索引操作:

索引 (用编号来表示数据的方式)  index:

python 字符串是不可以改变的序列

语法:

字符串[整数值]

说明:

python 序列都可以用索引(index)来访问序列中的内容

序列的正向索引是从0开始的,第二个索引为1,最后为len(s)-1

序列的反向索引是从-1开始的,-1代表最后一个,-2代表倒数第二个,以此类推,第一个是-len(s)

例:

s = 'ABCDE'

print(s[2])  #  C

切片  slice

从字符串序列中,取出相应元素,从新组成一个字符串序列

语法:

字符串[(开始索引):(结束索引)(:(步长))]

注:()括起部分代表可省略

说明:

1.开始索引是切片切下的位置,0代表第一个元素,1代表第二个元素, ......,-1代表最后一个

2.结束索引是切片的终止点(但不包含终止点)(无下限可切到无限大,但字符串一共就那么多,所以到末尾)

3.步长是切片每次获取完当前元素后移动的方向和偏移量

   3.1没有步长,相当于取值完成后向右移动一个位置(默认为1)

   3.2当步长为正数时,取正向切片

        步长默认为1,开始索引默认为0,结束索引默认为len(s)

        步长代表下一次索引取值的增长值

   3.3当步长为负整数时,取反向切片

       反向切片时,默认的起始位置为最后一个元素,终止位置是第一个元素的前一个元素

例:

s = 'ABCDE'

a = s[:]    # a -->'ABCDE'没有开始结束默认全部

a = s[2:]  # a -->'CDE'  从第三个开始没有结束默认结尾

a = s[:2]  # a -->'AB'

a = s[2:4]  # a -->'CD'

a = s[1:1]  # a -->''

a = s[4:2]  # a -->''  从左到右,优先到了2,所以停止为空

a = s[0:5:2]  # a -->'ACE'步长变为2,就是一次跳一个,第二个数值,1.3.5

a = s[::-1] # a -->'EDCBA' 步长是负数即为正数相反,反向切

注:索引的正负就是字符位置的标示,正负都是一个位置,而步长的正负则为切片方向的正反,跟字符本身无关

练习:

1.输入一个字符串,打印这个字符串的第一个字符,中间的字符及最后一个字符,如果输入的字符数为偶数,则中间字符输出为'|'

2.输入任意一个字符串,判断这个字符串是否为回文

回文示例,上海自来水来自海上,中心对称的文字为回文

3.用字符串*运算符打印矩形方框,要求输入一个整数,此整数代表此矩形的宽度

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,911评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,014评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,129评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,283评论 1 264
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,159评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,161评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,565评论 3 382
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,251评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,531评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,619评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,383评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,255评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,624评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,916评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,199评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,553评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,756评论 2 335

推荐阅读更多精彩内容

  • •1 C语言程序的结构认识 用一个简单的c程序例子,介绍c语言的基本构成、格式、以及良好的书写风格,使读者对c语...
    CONLYOUC阅读 8,686评论 9 66
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,497评论 18 139
  • 1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或...
    哈哈哎呦喂阅读 637评论 0 0
  • 个人基于对 Vuejs 的学习制作了一个 Todo 单页应用 Lightodo,功能包括:添加待办事项卡片,对卡片...
    AlessiaLi阅读 21,531评论 16 308
  • 又是一年毕业季,回首过往,我已毕业两年之久,已离开那个象牙塔了,已经不再是一个能遨游在象牙塔里的孩子了,该学...
    小脉脉阅读 156评论 0 1