day3 变量、数学比较逻辑赋值、按位运算、字符基操

1.变量

1.声明变量(定义) --假的声明

说明:变量名 - 标识符(不能是关键字)

  • 1.遵守PEP8命名规范(所有字母都小写,多个单词组成,单词之间用下划线隔开)
  • 2.见名知意 看到名字就知道意思
  • 3.变量名 = 值。= :赋值符号。将右边的值赋给左边的变量。
    值:可以使任何有结果的表达式。
    例:190 变量,10+20,调用函数表达式。
  • 4.使用变量的时候,就是使用变量中保存的值;
  • 5.变量先声明(赋值),再使用

2.声明变量的方式

  • 1.直接赋值
age = 18
name = 'lorry'
print(age)
  • 2.同时声明多个变量,并且赋一样的值
a1 = a2 =a3= a4 =a5 =10
print(a1,a2,a3,a4,a5,sep=' $ ')
  • 3.同时声明多个变量,赋不同的值,变量的个数和值得个数要保持一致
aa,bb = 10,20
print(aa,bb)
[x,y] = ["lorry","lorrybz"]
print(x,y)
  • 4.给同一个变量,后赋的值会覆盖原先的值,同一个变量可以存储不同类型的值
num1 = 1
num1 = 2
print(num1)
num1 = "lorry"
print(num1)
num1 =  [1,2,3,"lorry"]
print(num1)  
aaa = [1,2,3,"lorry"]
aaa[0]="lorrbz"
print(aaa)

3.声明变量的本质

  • 1.结论:python所有的变量存的都是数据在内存中的地址。内存地址大小一样。用一个变量给另外一个变量赋值,实质是将变量中的地址赋给另外一个变量。使用变量的时候,是使用变量中地址对应的值。
  • 2.3.变量的三要素:值、地址和类型
    值:变量中存的地址对应的值
    地址:变量中存储的地址
    类型:变量中存的地址对应的值的类型
name1 = "小明"
name2 = name1
print(name1)  #使用变量拿到变量中地址对应的值
print(id(name1))  #  id(变量)  获取变量中存储的地址
print(id(name2))
print(type(name1),type(name2 ))

2.运算符

python 中的运算符:数学运算符、比较运算符、逻辑运算符、赋值运算符

1.数学运算符

  • 1.基本操作:+:加法运算 -:减法运算 *:乘法运算 /:÷法运算(基操)
  • 2.稍微高点的基操:
    • %:取余(求余数)
      获取一整数的最低一位或者几位的值
print(10%3)
a = 35648
print(a % 10,a % 100)
  • //:整除
  1. 判断一个数是否能被另外一个数整除;2. 整除 取商的部分.
print(10 // 3,10 % 3) 
print(3.9 // 3,3.9 % 3)
num1 = 289
print(num1 // 100)  
  • **:幂运算 x的y次方
print(2**10)   #2的10次方
print(9**0.5)  #9开平方
print(int(8**(1/3)))  #8开3次方   取整

2.比较运算符 : >, <, ==,!=,>=,<=

注意:比较运算符的运算结果都是布尔值

print(100 >10,10>100,10 > 10 )
print(11 == 10,11 !=10,"lorry" == "lorry")

3.逻辑运算符:and or not

逻辑运算符的运算对象是布尔值,运算符结果也是布尔值

    1. and(逻辑与运算)
      布尔1 and 布尔2 ;值1 and 值2
      如果值1和值2的结果都为true,结果才是true。只要有一个false,结果为fals
and 值1(true) 值2(false)
值1(false) false false
值2(true) true false

注意:逻辑与运算相当于生活中的“并且”;当需要多个条件同事满足就使用 and 链接在一起
例子:例子:要求成绩 > 90分,并且表现分>95.

name = input("名字:")
grade = int(input("表现分数:"))  #成绩
score = int(input("成绩分数:"))   #分数
print('%s 是否获得奖学金:'%name,grade >90 and score >90)
    1. or(逻辑或运算)
      值1 or 值2 如果值1和值2中有一个true,就是true,两个false才为false
or 值1(true) 值2(false)
值1(false) true false
值2(true) true true

逻辑 或 运算 相当于生活中的“或者”,当需要多个条件中至少有一个条件满足,就使用 or 连接在一起
例:要求成绩 > 90分或者表现分>95.

name = input("名字:")
grade = int(input("表现分数:"))  #成绩
score = int(input("成绩分数:"))   #分数
print('%s 是否获得奖学金,表现分数%s,成绩分数%s'%(name,grade,score),grade,grade >90 or score >90)
    1. not (逻辑 非 运算) 用来对某个条件否定。
      not值 :如果值是true,结果是false;如果值是false,结果是true
      例:是否能进入网吧的条件:年龄不小于18
age = 21
print("是否能进入网吧",not age < 18)
print("是否能进入网吧:",age >= 18)

4.赋值运算符

=; +=; -=; *=; /= ;%=
所有赋值运算符的左边必须是变量;组合的赋值运算符左边的变量必须已经赋值
所有的赋值运算符最终都会进行赋值操作。

  • 1.# 1.= 直接赋值
num = 1
    1. += -= *= /= %=
      变量 += 值 相当于:变量 = 变量 + 值()
      变量 -= 值 相当于:变量 = 变量 - 值()
      变量 *= 值 相当于:变量 = 变量 * 值()
      变量 /= 值 相当于:变量 = 变量 / 值()
a = 1
a +=1      # a = 1+1
print(a)
a *=2     # a= 2*2
print(a)
a /= 2     # a =4/2
print(a)
a %= 2    # a =  2%2
print(a)
    1. 运算符的优先级
      **数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符 **
      优先级高的先算。如果有括号先算括号里面的。
数学运算符中:** > *,/,%,// > +,- 
num = 10 +20 > 25 and True < 2
# num = 30 > 25 and True < 2
# num = True  and  True
# num = True
print(num)
num = 10 +(20 > 25 and True < 2)
print(num)
# num = 10 +(False and True)   and 前面如果False不会管后面,直接False
# num = 10
num = 10+2*3**2
print(num)

5.位运算符

位运算是正对二进制中每一位进行的相关操作

位运算(bit)  &(与) |(或) ^(异或)  ~(取反) >>(左移)  <<(右移)
  • a.(数字1) & (数字2) ->二进制的每一位进行" 与" 运算,运算时:如果都为1,结果为1,否则为0.
    1 & 1 为1
    0 & 1 为0
    1 & 0 为0
    0 & 0 为0
    特点:一位上的数如果和1与,就会保留这一位上的数,如果和0与,就会是0.
    应用:判断一个数的奇偶性(最优解答)
    将数字和1 与,如果结果是0,数字是偶数,如果结果是1,数字是奇数。
a = int(input("输入任意数:"))
b = 1
c = a & b
print(c)
if c == 1:
    print("%s"%a+"是"+"奇数")
elif c == 0:
    print("%s" % a + "是" + "偶数")

举例 11010
举例 00111
结果 00010

3(原) = 0011
2(原) = 0010
3 & 2 =  0 0 1 0(补码)
3 & -2
3(原/补) =                 0011
2(原) = 0010
-2(原码) 1010 = 1101(反) = 1110(补码)
                            0010(补码,依然是正数)
print(3 & 2)
print(3 & -2)
print(5 & 1,100 & 1)
  • b. 数字1 | 数字2 如果有一位是1结果是1,两个都为0结果才是0.
    1 | 1 - 1
    1 | 0 - 1
    0 | 1 - 1
    0 | 0 - 0
    1101 | 1010 结果 1111
3 | 20
3(原) = 000011
20(原) = 010100
000011 | 010100 = 0100111

-3 | 20
-3(原码) = 100011(原码) = 111100(反码) = 111101(补码)
20(原码/补码) =                             010100   
                 -3 | 20                     111101(补码)
                 补码转反码 -1               111100(反码)
                                             100011(原码)= -3
print(-3|20)
  • c.按位取反
    ~ 数字 将每一位取反(0变成1,1变成0)
print(~2)
# 010 > 101(补码)  = 100(反码) = 111 = -3
  • d.按位异或
    (数字1) ^ (数字2) -判断每一位相同为0,不同为1
    可判断 数字是否相同。
11 - 01011
2  - 00010
11^2 01001(补码)

print(11^2)
  • e.左移<<
    (数字1 )<< n (位数) - 将指定的数字的每一位向左移指定的位数,就是在二进制的后面加指定的0.
左移1位 乘以2,左移2位 乘以4  相当于x * (2**n)
10 << 1  左移过程
00001010(补码)  - 00010100(补码)
-10 <<1
11010 -> 10101(反码)=10110(补码) << 1  = 101100(补码) = 101011(反码) = 110100 = -20
代码:
print(10 <<1,10 <<2,10<<3,10<<4)
  • f.右移 >> ;(数字1 )>>n(位数) 将数字的二进制位向右移动指定的位数(将低位删除指定的位数).
    相当于:** 数字1 //(2n)
20  右移过程
10100 >> 2 = 0101 =5
0101 >> 1 = 010 = 2
010 >> 1 = 01= 1
01 >> 1 = 0 = 0

3.字符串

1.什么是字符串

是python中常用的有序的但不可变的容器类的数据类型,可以同时存储多个字符。属于序列
字面量:使用单引号或者双引号将任意字符引起来。

a = ('allal我是你爸爸,the top is your dad?')
b = len(a)
print("这句话:"+a+"有%s"%b+'个字符')

2.字符串的内容

a.普通字符:包含数字字符、字母、普通符号:+ - * /
"1 2 3","sdsds","&&%90"
b.转义字符:通过 \ 将一些字符转换成有特殊功能或者特殊意义的字符
例如:
\t(制表符),
\n(换行)

print("ads\nsda5")
print("\tads\nsda5")
print("adssda5",end="\t")
print("lorry",end="\t")
print("2222222")

' 一个单引号
" 一个双引号
\\ 单纯的 \ 不会换行

print('ads\'sda5',"ads'sda5")   #加\用来区分字符
print("ads\\nsda5")

注意:一个转义字符代表一个字符
c.阻止转义:在字符串前面加R/r,可以阻止转义字符转义

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

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,145评论 0 13
  • 1.recode 1.常用快捷键ctrl + sctrl + cctrl + vctrl + x - 剪切ctr...
    Gary134阅读 262评论 0 0
  • 一·recode 1.常用快捷键ctrl + sctrl + cctrl + vctrl + x - 剪切ctr...
    fakerkb阅读 175评论 0 0
  • 本书作者饶雪莉,除了是一名优秀的小学语文教师外,她也是一位母亲,和所有家长一样,希望自己的孩子快乐成长。家长,老师...
    菜小东西阅读 500评论 0 0
  • 我朝自己开了一枪 却不知道 貌似犀利的子弹 能否穿透油腻的中年 曾经沧海 除却巫山 这世上还有什么可以让我卑躬屈...
    竹子河阅读 201评论 0 4