python基础|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 = 99python:
num = 100
变量的三要素:值、地址和类型
- 值:变量中存的地址对应的值
- 地址:变量中存住的地址(id)
- 类型:变量中存储地址对应值的类型
name1 = "张收纳"
name2 = name1print(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)
【python基础|python基础 二】执行结果:123abc 123 abc
- 2 字符串的乘法
字符串 * n(正整数) : 字符串的内容重复n次,产生一个新的字符串
print("*"*10 + "%"*10)
**********%%%%%%%%%%
-
- 比较运算符: > , < , == , != , >= ,<=
- 字符串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(所有类型数据)
推荐阅读
- EffectiveObjective-C2.0|EffectiveObjective-C2.0 笔记 - 第二部分
- 遇到一哭二闹三打滚的孩子,怎么办┃山伯教育
- 赢在人生六项精进二阶Day3复盘
- 2019年12月24日
- 陇上秋二|陇上秋二 罗敷媚
- 一百二十三夜,请嫁给我
- 迷失的世界(二十七)
- python学习之|python学习之 实现QQ自动发送消息
- 我要我们在一起(二)
- 基于|基于 antd 风格的 element-table + pagination 的二次封装