python变量和运算符及字符串

一、变量

1、声明变量(定义变量)

语法:变量名 = 值
说明:
变量名 - 要求:标识符,不能使关键字
规范:
a.遵守PEP8命名规范(名字的所有字母小写,有多个单词组成,单词之间用_隔开)
b.见名知意(看见名字就知道变量中存的是什么数据)
student_name
"="赋值符号,将=右边的赋值给左边的变量
值 - 可以是任何有结果的表达式,例如:100,变量,10+30,调用函数表达式
例如:

age = 18
num = 16574
num1 = num2 = num3 = 19 #同时声明多个变量,并赋一样的值
x,y = 10,30 #同时声明多个变量,并赋不一样的值,变量的个数和值的个数要保持一致
num4 = 100
num4 = 200 #给同一变量赋值,后赋的值会覆盖先赋的值
num4 = "abc" #同一变量可以存储不同类型的值
print(num4)

结果如下:

image.png

注:此声明变量为假的声明


2.声明变量和给变量赋值的本质

结论:python中所有的变量,存的都是数据在内存中的地址,内存地址大小一样
用一个变量给另一个变量赋值,实质是将变量中的地址赋给另一个变量
使用变量的时候,是使用的变量中地址所对应的值


3.变量的三要素:值、地址和类型

  • 值:变量中存的地址对应的值
  • 地址:变量中存储的地址(id)
  • 类型:变量中存的地址对应的值的类型
name = "小米"
name1 = name
print(name)
print(id(name),id(name1)) #id(变量) - 获取变量中存的地址
print(type(name)) #获取变量地址中的值的类型

结果如下:

image.png

二、运算符

  • python中的运算符:数学运算符,比较运算符,逻辑运算符,赋值运算符,位运算符

1.数学运算符:+,-,,/,%,//,*

+:加法运算
-:减法运算
*:乘法运算
/:除法运算

print(10+20)
print(10-20)
print(10*20)
print(10/20)

%:取余
应用1:获取一个整数的最低的以为或者几位数的值 num%(10^n)
应用2:判断一个是是否能够被另外一个数整除 num1 % num2

print(10 % 3)
print(10 % 2)
# 获取一个数的个数
num = 36523
print(num % 10)  # 3
print(num % 100) # 23

//:整除取整
**:幂运算 print(2 ** 16) x^y print(4 ** 0.5) 开方


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

  • 所有的比较运算符的运算结果都是布尔值
#值1 > 值2 : 值1是否大于值2
print(100 > 10)  # True
print(10 > 100)  # False
print(10 > 10)   # False

# 值1 < 值2: 值1是否小于值2
print(100 < 10)  # False

# 值1==值2: 值1是否等于值2
print(10 == 100)    # False
print(10 == 10)     # True
num = 10
print(num == 10)  # True
# 值1!=值2: 值1是否不等于值2
print(10!=100)   # True
print(10!=10)    # False

3.逻辑运算符: and, or, not

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

a. and(逻辑与运算):

值1 and 值2:如果值1和值2的都为True,结果才是True;只要有一个False结果就是False
True and True -> True
True and False -> False
False and True -> False
False and False -> False

逻辑与运算相当于生活中的'并且';当需要多个条件同时满足,就使用and将多个条件连接在一起

grade = 90   # 成绩
score = 98   # 分数
# 例子:要求成绩大于90并且表现分大于95,才能获得奖学金
print('是否获取奖学金:', grade > 90 and score > 95)

b.or(逻辑或运算)

值1 or 值2:如果值1和值2中有一个是True,就过就是True。两个都是False,即如果才是False
True or True -> True
True or False -> True
False or True -> True
False or False -> False

逻辑或运算,相当于生活中的'或者';当需要多个条件中至少有一个条件满足,就是用or将多个条件连接在一起

grade = 90   # 成绩
score = 98   # 分数
# 例子:要求成绩大于90或者表现分大于95,就能获得奖学金
print(grade > 90 or score > 95)

c.not(逻辑非运算)

  • not 值:如果值是True,结果就是False;如果值是False,结果就是True

not True -> False
not False -> True

not用来对某个条件进行否定

age = 17
# 是否能够进入网吧的条件: 年龄不小于18
print('是否能进入网吧:', not age < 18)
print('是否能进入网吧:', age >= 18)

结果如下:

image.png

4.赋值运算符

  • 赋值运算符:=,+=, -=, *=, /=, %=, //=, **=
  • 所有赋值符的左边必须是变量; 组合的赋值运算符的左边的变量必须已经赋值;
  • 所有赋值运算符最终的会进行赋值操作
 #a. = - 直接将右边的结果赋给左边的变量
num = 100
# b. +=, -=, *=, /=,  %=,  //=, **=
"""
变量 += 值 --> 相当于 变量 = 变量 + 值
变量 -= 值 --> 相当于 变量 = 变量 - 值
变量 *= 值 --> 相当于 变量 = 变量 * 值
...
"""
num1 = 1
num1 += 10   # num1 = num1+10 = 1+10
print(num1)

num1 *= 2    # num1 = num1*2 = 11*2
print(num1)

num1 %= 2
print(num1)

5.运算符的优先级

数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
优先级高的先算。如果有括号,先算括号里面的

数学运算符中: ** > *, /, %, // > +, -


6.位运算

  • 位运算:&(按位与),|(按位或),^(按位异或), ~(按位取反),<<(左移), >>(右移)
  • 位运算是针对二进制中每一位进行的相关操作
&(按位与)

数字1 & 数字2 -> 二进制的每一位进行与运算,运算的时候如果都为1结果就是1,否则就是0
1 & 1 - 1
1 & 0 - 0
0 & 1 - 0
0 & 0 - 0

与的特点:一位上的数如果和1与,就会保留这一位上的数。如果和0与,就会将这一位置0

11010 & 00111 = 00010

与运算的应用:判断一个数的奇偶性(最优解答)
将数字和1与,如果结果是0,就说明这个数是偶数;如果结果是1,说明这个数是奇数
例如:

print(3 & 2)

结果如下:

image.png

解析:3(原/补) = 0011
2(原/补) = 0010
3 & 2 = 0011 & 0010 = 0010(补) = 2

|(按位或)

数字1 | 数字2 - 如果有一位是1结果就是1,两个都为0结果才是0
1 | 1 - 1
1 | 0 - 1
0 | 1 - 1
0 | 0 - 0

^(按位异或)

数字1 ^ 数字2 - 每一位如果相同就为0,不同为1
1 ^ 1 - 0
1 ^ 0 - 1
0 ^ 1 - 1
0 ^ 0 - 0

例如:11 ^ 2
01011 ^ 00010 = 01001(补) = 9

~(按位取反)

~ 数字 - 将每一位取反(0变成1,1变成0)

~1 = 0
~0 = 1

例如:~2
010 -> 101(补) = 100(反) = 111

<<(左移)

数字1 << n(位数) - 左移指定的位数就是在二进制的后面加指定个数个0
相当于:数字1 * (2**n)

例如:10 << 1
01010 << 1 = 010100 = 20
01010 << 2 = 0101000 = 2^5 + 2^3 = 32 + 8 = 40
-10 << 1
11010 -> 10110(补码) << 1 = 101100(补)= 101011(反)=110100 = -20

>>(右移)

数字1 >> n(位数) 将数字的二进制位向右移动指定的位数(将低位删除指定的位数)
相当于: 数字1 // (2**n)

例如:20>>2
010100 >> 2 = 0101 = 5
0101 >> 1 = 010 = 2
010 >> 1 = 01 = 1
01 >> 1 = 0 = 0


三、字符串

1.什么是字符串(str)

  • 字符串是python中一种常用的有序但是不可变的容器类的数据类型,可以同时存储多个字符。属于序列
  • 字面量:使用单引号或者双引号将任意字符括起来,就是字符串常量
  • 字符:指的就是字符串中的每一个单元。注意,python中只有字符的概念没有字符类型

2.字符串中的内容

a.普通字符:包含数字字符、字母、普通符号:+,-(),%#@等、中文、韩文、日语等

如:'123', 'hsja', '*&sd23顺'

b.转义字符:通过反斜杠将一些字符转换成有特殊功能或者特殊意义的字符

\n - 换行
\t - 制表符
' - 表示一个单引号
" - 表示一个双引号
\ - 表示一个\

注意:一个转义字符代表一个字符
例如:

print('\tabc\n123')
print('abc\'123')
print("ab\"c'123")
print('abc\\n123')

结果如下:

image.png
c.阻止转义: 在字符串的最前面加r/R,可以阻止转义字符转义

例如:

print(r'abc\n12\\3')
print(r'\b')

结果如下:

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

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,150评论 0 13
  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 5,823评论 2 16
  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,195评论 1 44
  • 今天又一次匆匆忙忙来到厦门送产品,每次都没有静静的停下来好好看看这个城市,每次来我都感受到截然不同于惠州的生活气息...
    Troy連阅读 138评论 0 0
  • 猪们聚拢在猪圈的门口,就如同平时午饭那个点一样,他们又一次抖了抖身上的赘肉,那种肚皮上油脂的震荡感明...
    叶灵龙阅读 351评论 2 2