python基础 二

1.变量

  • 变量:在程序中用来保存数据的容器
    声明变量(定义)--假的声明
    变量名 = 值

说明:
变量名(要求:标识符,不能是关键字)
规范:遵守PEP8命名规范(名字的所用字母都小写,如果由多个单词组成,单词之间用_隔开)
关于代码规范
http://www.python.org/dev/peps/pep-0008/
谷歌对应中文文档:
http://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/

= : 赋值符号,将等号右边的值负给左边的变量
值 : 可以是任何有结果的表达式,例如:100、变量、调用函数表达式

变量必须先声明(赋值)再使用

name1 = "李四"
age = 25
gender = "男"

# 同时声明多个变量
num1 = num2 = num3 = 99
# 注意变量的个数和值的个数要保持一致
x, y, z = 10, 20, 30
# 同一个变量可以存储不同类型的值
num = 100
num = "carry"
num = True
num = [1, 2, 3]

  • 注意
    声明变量和给变量赋值的本质
    结论:python中所有的变量,存储的都是数据在内存中的地址,内存地址的大小一样
    用一个变量给另一个变量赋值,实质是将变量中的地址赋给另一个变量
    使用变量的时候,是使用变量中对应的值
C中声明变量:
int num = 100
num = 99

python:
num = 100
变量的三要素:值、地址和类型
  • 值:变量中存的地址对应的值
  • 地址:变量中存住的地址(id)
  • 类型:变量中存储地址对应值的类型
name1 = "张收纳"
name2 = name1

print(name1)
print(name2)
# id(变量)-获取变量中存储的地址
print(id(name1))
print(id(name2))

2.运算符

 python中的运算符:数学运算符、比较~、逻辑~、赋值~、位运算
1.数学运算符:+、-、*、/、%、//、**
% :取余(求余数)
   应用:获取一个整数的最低的一位或者几位的值 num%(10^n)

// :整除 - 求商,获取商的整数部分
      注意:如果是负数整除(取整数部分并减一)
** :幂(次方)
print(99 % 5)
print(99 // 5)
print(1.01 ** 31)
# 开方
print(36 ** 0.5)
print(8 ** (1/3))
# 获取百位的数字
print(289 // 100)
# 获取一个数的个位数
num = int(input("获取数字的个位数"))
print(num % 10)
  • 2.比较运算符:> 、< 、==、!= 、>=、<=
    所有比较运算符的结果都是布尔值
# python 有有一种特殊的写法
10 <= num <= 20
  • 3.逻辑运算符:and 、or 、not
    逻辑运算符对象是布尔值,运算结果也是布尔值
    and : 逻辑与运算
    值1 and 值2:如果值1和值2都为True,结果才为True
    否则都为False
    and的短路:and前面的语句是False,后面的代码就不会执行
    or : 逻辑或运算
    值1 or 值2:如果值1和值2都为False,结果才为False
    否则都为True
    not:逻辑非运算
    如果值是True,结果就是False,如果值是False,结果就是True
    用来对每个条件进行否定
4.赋值运算符 =、+=、-=、*=、/=、%=、//=、**=
  • 所用赋值运算符的左边必须是变量,组合的赋值运算符的左边的变量必须已经赋值
    所有赋值运算符最终会进行赋值操作
    变量 += 值(变量= 变量+值(其他同理)
  • 6.位运算 : &(与) |(或) ^(异或) ~(取反) <<(左移) >>(右移)
位运算是针对二进制中每一位进行相关的操作
& : 数字1 & 数字2  --->二进制的每一位进行与运算,
如果都为1,则为1,否则为0
   10010 & 01110 = 00010
   与运算的应用:判断一个数的奇偶性(最优方法)
              数值 & 1  如果是0则这个数为偶数,如果是1则为奇数


| : 数字1 | 数字2 --->二进制的每一位进行与运算,如果都为0,则为0,否则为1

~ : 数字-将每一位取反(0变成1,1变成0)
    ~2 -> 010 -> 101(补) -> 100(反) -> 011(原) = 3
    
^ : 数字1 ^ 数字2  每一位相同就为0 ,不同为1

<< :  数字<< n(位数)  -将指定的数字每一位左移n位,移除多少位后面加多少个0
                       移动的位数不能超过符号位
                       结果 = 数字 * 2**n    
    10 << 1
    00001010 << 1 = 00010100 = 20

>> : 数字 >> n(位数)
      结果 = 数字 / 2**n  (取整数)
    20 >> 1
    010100 >> 1 = 001010 = 10

3.字符串:一种常用的有序但是不可变的容器的数据类型

  • 可以同时存储多个字符,属于序列范畴
    字面量:使用单引号或者双引号将任意字符括起来,就是字符串常量

字符:字符串中的每一个单元

字符串的内容:
普通字符:包含数字字符、字母、普通符号.....
转义字符:通过 \ 将一些字符转换成有特殊功能或者特殊意义的字符

      \n: 换行
      \t: 制表符(tab)
      \': 普通单引号
      \\: \

注意:一个转义字符代表一个字符
阻止转义:在字符串的最前面加 r/R,可以阻止转义字符转义
1.字符编码
python 中的字符采用的是Unicode编码

  • a.什么是编码:就是数字和字符的一一对应,其中字符对应的数字就是字符的编码

  • b.编码方式:
    ASCII码表:针对数字字符、字母字符、一些英文中常用的符号进行编码
    大写字母的ASCII值小于小写字母的值
    采用一个字节对字符进行编码(2**7 - 1)
    Unicode表:Unicode码包含ASCII码表,同时能够对世界上所用语言及对应符号进行编码
    采用两个字节对字符进行编码,能编码655536编码

          中文编码值:4E00 ~ 9FA5
    
  • c.两个函数
    chr(编码值)- 将字符编码转化成字符
    ord(字符) - 获取字符对应的编码值

print(chr(0x004E00), chr(0x009FA5))
print(ord("童"))
# 可以将字符编码放到字符编码中就是一个字符: \u + 4位的16进制编码值
print(hex(31461))
print("cop\u7ae5>>>>>>")
一 龥
31461
0x7ae5
cop童>>>>>>

2.获取字符串中的字符
一旦一个字符串确定,那么字符串每一个字符的为值就确定了
而且每个字符会对应一个用来表示其位置和顺序的下标值

  • 1.下标(索引)
    字符串中的每个字符都有一个下标,代表其在字符串的位置
    下标的范围: 0 ~ 字符串长度-1
    -1 ~ -字符串长度(-1代表最后一个字符的下标)

  • 2.获取单个字符
    语法:字符串[下标] - 获取字符串中指定下标对应的字符
    说明:字符串 - 可以是字符串常量,也可以是字符串变量(只要结果是字符串就行)

  • 3.获取部分字符
    语法:字符串[开始下标:结束下标:步长]
    功能:从开始下标开始获取到结束下标前为止,每次下标值增加对应的值
    返回的结果是字符串

  • 注意:当步长是正数(从前往后取)、开始下标对应的字符要在结束下标对应字符的前面
    当步长是负数(从后往前取)、开始下标对应的字符要在结束下标对应字符的后面

str1 = "1234567890"
print(str1[3:9:])
print(str1[3:9:2])

# 取不到
print("==:", str1[-1:6:2])

print("==:", str1[-6:6:-2])
456789
468
==: 
==: 
  • 简写
    字符串[开始下标:结束下标] (相当于步长是1)
    str2 = "" ( 空字符串)

  • 获取部分字符,省略下标
    获取部分字符的时候,开始下标和结束下标都可以省略

  • a. 开始下标省略 字符串[:结束下标:步长] 或者 字符串[:结束下标]
    步长是正数:从字符串开头往后获取
    步长是负数:从字符串结尾往前获取

  • b. 结束小标省略
    字符串[开始下标::步长] 后者 字符串[开始下标:]

print(str1[:4:1])
print(str1[:4:-1])

print(str1[:])
print(str1[::-1])

print(str1[:100])
1234
09876
1234567890
0987654321
1234567890

3.字符串相关运算

  • 1.字符串加法
    字符串1 + 字符串2 :拼接在一起,产生一个新的字符串
    注意:字符串如果相加,加号两边必须都是字符串
str1 = "123"
str2 = "abc"
print(str1 + str2, str1, str2)

执行结果:123abc 123 abc

  • 2 字符串的乘法
    字符串 * n(正整数) : 字符串的内容重复n次,产生一个新的字符串
print("*"*10 + "%"*10)
**********%%%%%%%%%%
    1. 比较运算符: > , < , == , != , >= ,<=
  • 字符串1 == 字符串2 - 判断两个字符串是否相等
    两个字符串比较大小: > , < , >= ,<=
    比较编码值
print("abc" == "abc")

# 将每一个字符的编码值比较
print("abc" > "adr")

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

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,142评论 0 13
  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 5,801评论 2 16
  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,172评论 1 44
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,380评论 0 5
  • 中华文化博大精深源远流长,这其中也包括婚庆方面,例如说彩礼。 如今彩礼已经成为大部分人不结婚...
    叮叮当当_阅读 989评论 1 3