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(所有类型数据)

你可能感兴趣的