python基础学习2

格式化输出:%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)
#判断以什么开头结尾 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)
'''
View Code
#以什么开头结尾 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

 

转载于:https://www.cnblogs.com/yangyang1989/p/11389677.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值