格式化输出:%s是格式化输出符
name = input("请输入名字") age = input("请输入年龄") height = input("请输入身高") msg="我叫%s,今年%s,身高%s" %(name,age,height) print(msg)
%s替换字符串,%d替换数字,注意匹配数量
如果出现%,则改成
msg="我叫%s,今年%s,身高%s,学习进度是%%7是的" %(name,age,height)
想要在格式化输出时单纯的表示%,则加一个%即可
while else:
正常被break打断就不走else,没有被break打断就走else
count = 0 while count <= 5 : count += 1 if count == 3:break print("Loop",count) else: print("循环正常执行完啦") print("-----out of while loop ------")
python历史
宏观上:python2 与 python3 区别:
python2 源码不标准,混乱,重复代码太多,
python3 统一 标准,去除重复代码。
3,python的环境。
编译型:一次性将所有程序编译成二进制文件。 缺点:开发效率低,不能跨平台。 优点:运行速度快。
:C,C++等等。
解释型:当程序执行时,一行一行的解释。
优点:开发效率高,可以跨平台。
缺点:运行速度慢。
:python ,php,等等。
python2 python3 区别:python2默认编码方式是ascii码
解决方式:在文件的首行:#-*- encoding:utf-8 -*-
python3 默认编码方式utf-8
变量:就是将一些运算的中间结果暂存到内存中,以便后续代码调用。
1,必须由数字,字母,下划线任意组合,且不能数字开头。
2,不能是python中的关键字。
['and', 'as', 'assert', 'break', 'class', 'continue',
'def', 'del', 'elif', 'else', 'except', 'exec',
'finally', 'for', 'from', 'global', 'if', 'import',
'in', 'is', 'lambda', 'not', 'or', 'pass', 'print',
'raise', 'return', 'try', 'while', 'with', 'yield']
3,变量具有可描述性。
4,不能是中文。
常量:
一直不变的量。 π
BIR_OF_CHINA = 1949 一般用大写
用户交互:input
1,等待输入, 2,将你输入的内容赋值给了前面变量。
3,input出来的数据类型全部是str
ps:type()
字符串转化成数字:int(str) 条件:str必须是数字组成的。
数字转化成字符串:str(int)
字符串:str,python当中凡是用引号引起来的都是字符串。
可相加:字符串的拼接。
可相乘:str * int
ASCII码与UTF-8:
最早的'密码本' ascii 涵盖了英文字母大小写,特殊字符,数字。最左边一位全部是0,ascii 只能表示256种可能,太少,如01010101
1bit 8bit = 1bytes
1byte 1024byte = 1KB
1KB 1024kb = 1MB
1MB 1024MB = 1GB
1GB 1024GB = 1TB
为了解决全球文字问题,创建万国码unicode
16表示一个字符不行,32位表示一个字符。
A 01000001010000010100000101000001
B 01000010010000100100001001000010
我 01000010010000100100001001000010
Unicode 升级 utf-8 utf-16 utf-32
utf-8就是一个字符用三个字节表示
8位 = 1字节bytes
utf-8 一个字符最少用8位去表示,英文用8位 一个字节
欧洲文字用16位去表示 两个字节
中文用24 位去表示 三个字节
utf-16 一个字符最少用16位去表示
gbk 中国人自己发明的,一个中文用两个字节 16位去表示。
优先级:()>not >and>or
int转换成布尔值,非零转换为bool true,0转换成bool 的false
x or y :x为真则返回x,x为假返回y
x and y :x为真则返回y,x为假返回x
print(1>2 and 3 or 4 and 3<2) #False
print(2 or 1<3) #2
登录例子:
username = "yang" password = "123456" i = 3 while i > 0: zh = input("请输入你的账号:") i -= 1 if zh == username: mm = input("请输入你的密码:") if mm == password: print("验证成功.正在登陆......") print('''恭喜你登陆成功! 欢迎用户进入 用户名 :%s 密码 :%s '''%(zh,mm)) break else: if i == 0: print("你的机会已经没了!game over 下次见!") answer = input('再试试?Y or N') if answer == 'Y': i = 3 print("密码错误,请重新输入") print("你还有"+str(i)+"次机会") else: print("请输入正确的用户名!") if i == 0: print("你的机会已经没了!") answer = input('再试试?Y or N') if answer == 'Y': i = 3 print("你还有" + str(i) + "次机会”) else: print('你TM要不要脸')
元组也叫只读列表
int数据类型:
i = 100
print(i.bit_length()) ##转换成二进制所需要最小位数
'''
bit_length
1 0000 0001 1
2 0000 0010 2
3 0000 0011 2
'''
'''
ps:
while True:
pass
while 1: 效率高
pass
'''上面的true还要转换为1
#str --->bool
#s = "" -----> False ##空字符串转换成bool值就是false
#非空字符串都是True
#s = "0" -----> True
# s
# if s:
# print('你输入的为空,请重新输入')
# else:
# pass
字符串的操作:
s = 'alexWUsir' s1 = s.capitalize() # 首字母大写 print(s1)
# 全大写,全小写 s2 = s.upper() s21 = s.lower() print(s2,s21)
'''
s_str= 'acEQ1'
you_input =input('请输入验证码,不区分大小写')
if s_str.upper() == you_input.upper():
print('输入成功')
else:
print('请重新输入')
'''
#大小写翻转 s3 = s.swapcase() print(s3)
# 每个隔开(特殊字符或者数字)的单词首字母大写 s = 'alex*egon-wusir' s4 = s.title() print(s4)
#居中,空白填充 s = 'alexWUsir' s5 = s.center(20,'~') print(s5)
s = 'alex\tsir' s6 = s.expandtabs() print(s6) ##补位专用
s = 'alex二哥' #公共方法 l = len(s) print(l)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
#判断以什么开头结尾 endswith s = 'alexWUsir' s7 =s.startswith('alex') ##true s71 = s.startswith('e',2,5) ##判断第2位到第4位是不是以e开头 ,true print(s71) ''' if s7: pass elif s.startswith('bl'): pass print(s7) '''
#以什么开头结尾 endswith # s = 'alexWUsir' # s7 =s.startswith('alex') # s71 = s.startswith('e',2,5) # print(s71)
'''
if s7:
pass
elif s.startswith('bl'):
pass
print(s7)
'''
# find 通过元素找索引,找不到返回-1 # # index通过元素找索引,找不到报错 s = 'alexWUsir' s8 = s.find('A') ##找不到返回-1 s81 = s.index('A') ##找不到报错 print(s81,type(s8)) ##找到索引值是int型
#strip rstrip lstrip s = 'alexWUsir%' s9 = s.strip('%') ##去符号,只能前后删 print(s9) s = ' *a%lexWUsi* r%' s91 = s.strip(' %*') print(s91) # strip 默认删除前后空格 username = input('请输入名字:').strip() if username =='春哥': print('恭喜春哥发财')
s = 'alexaa wusirl' s10 = s.count('al') ##计算数数有多少个al print(s10)
# split str ---->list s = ';alex;wusir;taibai' l = s.split('a') print(l)
#format的三种玩法 格式化输出 s = '我叫{},今年{},爱好{},再说一下我叫{}'.format('太白',36,'girl','太白') print(s) name = input('请输入名字:') s = '我叫{0},今年{1},爱好{2},再说一下我叫{0}'.format(name,36,'girl') print(s) name = input('请输入名字:') s = '我叫{name},今年{age},爱好{hobby},再说一下我叫{name}'.format(age=18,name=name,hobby='girl') print(s)
s = '来看待街坊邻居复合大师街坊法好的撒见客户' s11 = s.replace('街坊','老王',1) print(s11)
##is系列 name='jinxin123' print(name.isalnum()) ##字符串由数字或字母组成 true print(name.isalpha()) ##字符串只由字母组成 false print(name.isdigit()) ##字符串只由数字组成 false