01-python-全栈三期-day10上节内容回顾以及补充
- 编码补充:
ASCII码是8位的,所以表示的字符个数是有限的,无法表示中文,所以出现了Unicode。Unicode至少是16位的,所有的字符都可以表示,但是会有很大的浪费的问题(三位能表示一个字符,还的用至少16位),后来又出现了utf-8,按需表示所需要的位数。三位能表示一个字符,就用三位的。Utf8是三个字节表示中文,GBK是两个字节表示中文。
UTF-8最大的一个特点,就是它是一种变长的编码方式。
GBK包含全部中文字符;UTF-8则包含全世界所有国家需要用到的字符。
- 如何将字符串转换成数字?
inp=”10”
new_inp=int(inp)
- Python当中缩进代表一个代码块
- while循环
while 条件语句:
……
print(‘……’) #当条件不满足的时候跳出while循环执行下面的语句print。
补充:while循环也是支持else的
例
count=0
while count <10: #条件成立,执行这里的
print(count)
count=count+1
else: #条件不出成立,执行这里(只执行一次)
print(‘else’)
print(‘……’)
- 在循环里面,如果没有遇到continue,那么代码是从上到下依次执行的,如果一旦遇到了continue,他就直接立刻停止当前的循环(continue下面的代码不再执行),开始下一次的循环.
例
count=0
while count <10:
if count==7
count=count+1
continue
print(count)
count=count+1
例
count=0
while count <10:
continue #一遇到continue当前循环立即停止,开始下一次循环
print(123)#123一辈子都输出不了
例
count=0
while count <10:
count=count+1
print(count)
continue #一遇到continue当前循环立即停止,开始下一次循环
print(123)
print('end')
- break:当前整个循环全部终止,把整个的循环都跳出来了
例
count=0 step1
while count <10: step2
count=count+1 step3
print(count) step4
break step5
print(111111111111)
print('end') step6
- break:终止所有循环
continue:终止当前循环,开始下一次的循环
02-python-全栈三期-day10 上周作业实现
6、用户登陆(三次机会重试)
count=0
while count<3:
user=input('>>>')
pwd=input('>>>')
if user=='Alex'and pwd =='123' :
print('登陆成功')
print('Hello')
break
else :
count=count+1
print('用户名或者或者密码错误')
03-python-全栈三期-day10 pycharm的安装和使用
- Python开发IDE:pycharm(后续不需要安装很多的pychram)建议专业版不要汉化
eclipse(后续需要安装很多的插件)
- File------setting-------输入mouse-----点击General-------勾选第二个
04-python-全栈三期-day10-python 运算符(一)
- Python运算符补充
+ - * /(除) %(取余) //(取商)
in 判断的是连续的字符串(子字符串或者子序列)或单个的字符在不在某个字符串内
not in
in 和not in判断某个东西是不是包含在某个东西里面
全选然后ctrl +? 就将选中的内容注释了
name="郑建文"
if "正" in name:#正是不是在name字符串里面
print("OK")
else:
print('Error')
if "建文" in name:#建文是不是在name字符串里面
print("OK")
else:
print('Error')
if "郑文" in name: # 郑文是不是在name字符串里面 in判断的是连续的字符
print("OK")
else:
print('Error')
#"郑建文" 字符串 郑 建 文 三个字符组成的字符串
#"郑" 字符串 郑 一个字符组成的字符串
#"郑建文" 建文是其中的一个子字符串或者是子序列
if "文" not in name: # 文是不是在name字符串里面 in判断的是连续的字符
print("OK")
else:
print('Error')
05-python-全栈三期-day10-python 运算符(二)
- 数据类型:数字
字符串
布尔值:真(True) 假(False)
S1="文" not in name
print(S1)#结果是布尔值False
==
<
>
<=
>=
!= 不等于
<>不等于
06-python-全栈三期-day10-python 运算符以及总结
- user=”alex”
pwd=”123”
V=user==’alex’ and pwd==’123’ or 1==1 and pwd==” 99854”
print(V)
先计算括号内的、
在从前到后
规则结果 True OR ---------True
True AND ---------继续走
False OR ---------继续走
False AND ---------False
#and和or没有什么优先级,从左到右依次计算
#假 and 则全假
#真 and 判断第二个条件了(如果真)接下来如果遇到or 则全是真的
- 算数运算符和赋值运算符是一类 结果真实的结果 一般是数值
算数运算符:a=10*10
赋值运算符:a=a+1 a+=1
比较运算符和逻辑运算符和成员运算符是一类 要么是真要么是假
比较运算符:a=1>5
逻辑运算符:a=1>6 or1==1
成员运算符:a=”文” in “郑建文”
07-python-全栈三期-day10-python 基本数据类型介绍
- 基本数据类型
数字int a1=123
字符串str s1=”liuzhu”
列表list
元祖tuple
字典dict
布尔值bool
08-python-全栈三期-day10-python 整型的魔法
- int
- int() 的作用是将字符串(只含有数字)转换为数字
a="123"
b=int(a)
print(type(a),a) #type()查看该数据的数据类型
print(type(b),b)
- int(num,base=n) 的作用是将num以base进制的方式转换成十进制
num="a"#将num以十六进制的方式转换成十进制
v=int(num,base=16)
print(v)
- .bit_length() 作用是得到当前数据的二进制至少是用几个比特位表示的
age=8
r=age.bit_length()
print(r)#结果是4
09-python-全栈三期-day10-python 字符串的魔法(一)
- 字符串
- .capitalize() 的作用是 字符串的首字母大写
test="alex"
v=test.capitalize()
print(v)
- .lower() 的作用是字符串的首字母小写
test="alEX"
v2=test.lower()
print(v2)
- .casefold() 的作用是字符串的首字母小写 ,比.lower()更牛逼很多未知的对应变小写(很少用到)
test="Alex"
v1=test.casefold()
print(v1) - center(self, width,fillchar=None)
.center(width) 的作用是:设置宽度并且将内容居中,空白位置可用且仅用一个字符填充
test="alEX"
v3=test.center(20,"*") #20代指总长度,“*”空白位置填充
print(v3)
- count(self, sub, start=None, end=None)
.count(str) 的作用是去字符串str当中寻找子序列(可以是子字符串也可以是一个字符)出现的次数,start从零开始计算
test="aLexalexr"
v4=test.count("ex")
print(v4)
- encode
- decode
- endswith(self, suffix, start=None, end=None) 以suffix开头
startswith(self, suffix, start=None, end=None) 以suffix结尾
test="aLex"
v5=test.endswith("x")
print(v5)
10-python-全栈三期-day10-python 字符串的魔法(二)
- 字符串
(1).expandtabs() 以指定的数为分割数遇到tab使用分割的数用空格补齐
test = "12345678\t9" #\t是制表符,就是Tab
v = test.expandtabs(6) #意思是出现一个\t用六个空格代替,如果里面包含Tab了Tab,那么 Tab只补齐就好
print(v,len(v))
说明:以6个单位分割123456为一组,78遇到tab了使用空格补齐4位 然后是9总长度是13,用途产生一个对齐的表格
test="username\temail\tpassword\n
liuzhu\tliuzhu@163.com\t123\n
qiufukang\tqiufukang@163.com\t123"
v17=test.expandtabs(20)
print(v17)
结果:
(2) find(self, sub, start=None, end=None) [start,end )
.find() 的作用是从开始往后找,找到第一个以后,获取其位置号(从0开始),没找到则返回-1
test="alexalex"
v8=test.find("ex")
print(v8) #获得2
test="alexalex"
v8=test.find("ex",5,8) #大于等于5小于8
print(v8)
补充(忽略).index() 找不到是自动报错的,而find找不到是返回-1,所以经常用.find() 而不用.index()
test="alexalex"
v10=test.index('7')#字符7不在test字符串中,系统报错
print(v10)
(3) .format() 的作用是字符串的格式化,将字符串当中的占位符替换为指定的值
test="I am {name} ,age{a}"
print(test)
v11=test.format(name="alex",a=19)
print(v11)
test="I am {0},age {1}"#永远是从0开始的
print(test)
v12=test.format("alex",19) #alex-----0 19------1
print(v12)
(4) .format_map() 的作用是格式化传入的值
test="I am {name},age {a}"
v13=test.format(name='df',a=10)
v14=test.format_map({"name":'alex',"a":19})#{"name":'alex',"a":19}
print(v13)
print(v14)
(5) .isalnum() 判断字符串是否只是包含字母和数字(都是字母或都是字符也是返回True)
test="ajsdoa90)^&*"
v16=test.isalnum()
print(v16) #输出False
test="ajsdoa90"
v16=test.isalnum()
print(v16) #输出True