建设工程检测预约网站,广州专业网站,临河 网站建设,小说抄写员兼职app一、基础1、编码 UTF-8:中文占3个字节 GBK#xff1a;中文占2个字节 Unicode、UTF-8、GBK三者关系 ascii码是只能表示英文字符#xff0c;用8个字节表示英文#xff0c;unicode是统一码#xff0c;世界通用码#xff0c;规定采用2个字节对世界各地不同文字进行编码#x…一、基础1、编码 UTF-8:中文占3个字节 GBK中文占2个字节 Unicode、UTF-8、GBK三者关系 ascii码是只能表示英文字符用8个字节表示英文unicode是统一码世界通用码规定采用2个字节对世界各地不同文字进行编码gbk是针对中国汉字提出的编码标准用2个字节对汉字进行表示。utf8是对unicode的升级改进版但是unicode到utf-8并不是直接的对应。 UTF-8最大的一个特点就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号根据不同的符号而变化字节长度当字符在ASCII码的范围时就用一个字节表示保留了ASCII字符一个字节的编码做为它的一部分注意的是unicode一个中文字符占2个字节而UTF-8一个中文字符占3个字节。 ascii和unicode可以相互转换gbk和unicode可以相互转换。 2、input函数 n input
hello
n
hellon input
10
n
10输入数字10这里的n是字符串10,而非数字10 这里如果 n * 10将输出 10101010101010101010如果将字符串转换数字可以用Int( ) new_n int(n) 3、while循环、continue、break while 条件语句1功能代码1
else 条件语句2功能代码2while循环也可以加else 例子使用while循环输入 1 2 3 4 5 6 8 9 10 n 1
while n 11:if n 7 :passelse:print(n)n n 1或者 count 1
while count 11if count 7:count count 1continueprint(count)count count 1当while执行到if count 7时遇到continue下面的print语句和countcount 1不会被执行重新跳回while语句 再比如 count 1
while count 11:count count 1continueprint(123)
print(end)这里的print(123)永远不能被执行到 第二个例子 count 1
while count 11:count count 1print(count)breakprint(123)
print(end)输出结果 2
end这里的print(123)也不能被执行到遇到break语句直接跳出循环只能执行一次循环即输出一次print(count)语句此程序完整执行过程如下图 总结continue终止当前循环进行下次循环break终止整个循环 4、算术运算符 - * / % ** // 加 减 乘 除 取余 乘方 取整数商 5、字符串 name 马大帅
if 马 in name :print(ok)
else:print(error)马大帅 称为字符串马 成为一个字符马大或者大帅称为子字符串也可以叫做子序列注意这里的字符要连续的而马帅不能称之为子字符串 6、成员运算判断某个字符在某个字符串用in 或者not in name 马大帅
if 吗 not in name :print(ok)
else:print(error)7、布尔值 if语句和while语句都使用布尔值作为条件。布尔值只有两种情况真 True 假 False if 条件判断语句功能代码某块这里的条件判断语句最终会产生一个布尔值或者是True 或者False name 马大帅
p 吗 not in name
print(p)
if p:print(ok)
else:print(error)输出结果 True
ok布尔操作符and or not 在 Python 看来只有以下内容会被看作假注意冒号括号里边啥都没有连空格都不要有False None 0 () [] {} 其他一切都被解释为真 举个例子 i 10
while i:print (我爱学习)
print(end)输出结果 我爱学习
我爱学习
我爱学习
我爱学习
我爱学习
我爱学习
我爱学习
我爱学习
我爱学习
...这里代表一直输出我爱学习这个程序会一直输出我爱学习除非按下CTRLC停止执行程序而print(end)语句永远不会被执行到。再比如 i 10
while i:print (我爱学习,i)i i -1
print(end)输出结果 我爱学习 10
我爱学习 9
我爱学习 8
我爱学习 7
我爱学习 6
我爱学习 5
我爱学习 4
我爱学习 3
我爱学习 2
我爱学习 1
end通过观察我爱学习后的数字变化我们可以看到这个循环的执行过程当i循环到0时 即while 0 0为False终止循环。开始执行print(end)语句。 8、比较运算符判断大小符号 等于 大于 小于 大于等于 小于等于 不等于 9、运算的优先级 先计算括号内复杂的表达式推荐使用括号一般的执行顺序从左到右布尔运算优先级从高到低not and or例子 user nicholas
psswd 123
v user nicholas and passwd 123 or 1 2 and pwd 9876
print(v)分析 v true and true or 此时不用继续计算即可得出v为真的结果不用考虑布尔运算的优先级注意这个运算是从左到右的**而非看到and自动进行运算而后从左到右运算** 一些结论 从左到右 (1)第一个表达式 or True or ————得出结果True (2)第一个表达式 and True and ————继续运算 3第一个表达式 or False or ————继续运算 4第一个表达式 and False and ————得出结果False 即**短路逻辑** 短路逻辑 表达式从左至右运算若 or 的左侧逻辑值为 True 则短路 or 后所有的表达式不管是 and 还是 or直接输出 or 左侧表达式 即True。 表达式从左至右运算若 and 的左侧逻辑值为 False 则短路其后所有 and 表达式直到有 or 出现输出 and 左侧表达式到 or 的左侧参与接下来的逻辑运算。 若 or 的左侧为 False 或者 and 的左侧为 True 则不能使用短路逻辑。 10、赋值运算符 简单的赋值运算符 c a b 将 a b 的运算结果赋值给c 加法赋值运算符 c a 等效于 c c a- 减法赋值运算符 c - a 等效于 c c - a* 乘法赋值运算符 c * a 等效于 c c * a/ 除法赋值运算符 c / a 等效于 c c / a% 取模赋值运算符 c % a 等效于 c c % a** 幂赋值运算符 c ** a 等效于 c c ** a// 取整除赋值运算符 c // a 等效于 c c // a 二、基本数据类型(1)数字 inta 1a 2 int整型整数类型 python3中用int表示没有范围python2中int有一定范围超过一定范围Python2中有长整型即longpython3中只有整型用int取消了long类型 **①**、int()将字符串转换为数字 a 123
type(a)
b int(a)
print(b)
type(b)输出 class str
123
class inttype即可查看变量类型 但是a 123nb int(a)此时是无法用int()转换字符串为数字的。 num c
v int(num,base 16)
print(v) 注释 v int(num,base 16) 将num以16进制看待将num转为10进制的数字。这里是可以的。 ②bit_lenghth 当前数字的二进制至少用n位表示 age 5
r age.bit_length()
#当前数字的二进制至少占用了n位表示
print(r)输出结果 3即5在二进制中表示为101至少需要3个位置来表示 2字符串 stra helloa ssssdda 字符串方法介绍 a--capitalize() # capitalize() 首字母大写
test lingou
v1 test.capitalize( )
print(v1)输出结果 Lingoub--casefold( )、lower() #lower() 所有变小写 # casefold( ) 所有变小写与lower相比casefold更牛逼很多未知(不是英文的如法文、德文等)的对相应变小写 #lower() 方法只对ASCII编码也就是‘A-Z’有效对于其他语言非汉语或英文中把大写转换为小写的情况只能用 casefold() 方法。 test LinGou
v2 test.casefold( )
print(v2)
v3 test.lower()
print(v3)输出结果 lingou
lingouc--center( ) #center( ) 设置宽度并将内容居中,这里的*可以不写默认为空白。 #这里的30是总宽度单位字节 test LinGou
v4 test.center(30,* )
print(v4) 输出结果 ************LinGou************空白情况 test LinGou
v5 test.center(30 )
print(v5) 输出结果 LinGou 注这个输出结果LinGou左右是有空格的 d--count( ) #count( ) 去字符串中寻找寻找子序列的出现次数 #count(sub[, start[, end]]) #count( 子序列,寻找的开始位置寻找的结束位置) #count( sub, startNone, endNone) None默认表示此参数不存在 test LinGouLinGengxin
v6 test.count(in )
print(v6)
v7 test.count(in,3,6)
#这里的36 是对字符串LinGouLinGengxin的索引编码从第三个开始到第六个结束
#L i n G o u L i n G e n g x i n
#0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
print(v7)
v8 test.count(in,3)#从第3个位置开始找
print(v8) 输出结果 3
0
2e--endswith、startswith #endswith 以什么什么结尾 #startswith以什么什么开始 test LinGouLinGengxin
v9 test.endswith(in )
v10 test.startswith(in)
print(v9)
print(v10) 输出结果 True
Falsef--find、index #find从开始往后找找到第一个之后获取其索引位置 #index功能同上index找不到报错,一般建议用find() test LinGouLinGengxin
v11 test.find(in )
v12 test.find(XING )
v13 test.index(in)
# v14 test.index(XING )
print(v11)
print(v12)
print(v13)
#print(v14)输出结果 1
-1
1取消v14 test.index(XING )和print(v14)的注释后运行程序会直接报错因为index找不到XING,而find()找不到会返回-1 g--format #format格式化将一个字符串中的占位符替换为指定的值 # { }就是占位符通过format将占位符替换为指定的值 test I am {name}
print(test)
v15 test.format(name LinGou )
print(v15)输出结果 I am {name}
I am LinGou-第二个 test I am {name},age{a}
print(test)
v16 test.format(name LinGou,a 19 )
print(v16)输出结果 I am {name},age{a}
I am LinGou,age19-第三个 test I am {0},age{1}
print(test)
v17 test.format(LinGou,19 )
print(v17)输出结果 I am {0},age{1}
I am LinGou,age19当占位符有数字代表format函数里不再需要具体的name 这里是按照先后顺序替换的。 第四个 #format_map格式化传入的值 # 书写格式{name:LinGou,a:19} test I am {name},age {a}
print(test)
v18 test.format_map({name:LinGou,a:19} )
v19 test.format(name LinGou,a 19)
print(v18)
print(v19)输出结果 I am {name},age {a}
I am LinGou,age 19
I am LinGou,age 19分析这里的v18和v19是等价的只是书写方式不一样。format_map后面加的是字典。 h--isalnum( ) #isalnum( )字符串中是否只包含 字母和数字 test LinGou
v20 test.isalnum( )
print(v20)
test2 LinGou
v21 test2.isalnum( )
print(v21)输出结果 True
False转载于:https://www.cnblogs.com/Nicholas0707/p/8542913.html