1、应用程序运行过程

宏观上: python2源码不标准、混乱、重复代码太多

    python3 统一、标准、去除重复代码

 

语言类型:

    编译性:一次性将所有程序编译成二进制文件

      缺点:开放效率低、不能跨平台

      优点:执行速度快

        例如:C语言、C++等等

    解释性:当程序执行时,一行一行的解释

      优点:开发效率高、可可以跨平台

      缺点:运行速度慢

        例如:python、php等等

    python是一门动态解释性的强类型定义语言

 

python2中需要添加声明为utf-8

#_*-_encoding:utf-8 _*_ 

 

变量

  1、就是将一些运算的中间结果暂存到内存中,便于后续代码调用

  2、必须由字母、数字、下划线任意组合,切不能数字开头不能使用python中的关键字

  3、变量名称具有可描述性、建议不能是中文

常量

  1、一直不变的量

数据类型

  数字:int 123 

    print(100,type(100)) #int 整数类型

    print(‘100’,type(‘100’))#str 字符串类型(python中单、双引号中内容都是字符串)

  +(加)、-(减)、*(乘)、/(除)、%(取余)

  字符串srt可以相加进行拼接:print(‘帅哥’+‘美女’)

  字符串可以与数字相乘:print(‘坚持’*8)

  字符串变量涉及换行:

  msg = “”“

  这是一段描述

  这是二段描述

  ”“”  

  print(msg)

 

布尔值(bool):真(True)或者假(False)

  print(True,type(True))

 

用户交互

  1、等待输入

  2、将你输入的内容赋值给前面的变量

  3、引用input变量的值或输出

  4、input输入的内容都是字符串

  name = input(‘请输入你的名字’)

  age = input(‘请输入你的年龄’)

  print(‘我的名字是:’+name,’我的年龄‘+age‘岁’)

 

条件语句:if

if 条件:

  结果

else

  结果

例子:

if 5 >  4 :

  print(6666)

else

  print(7777)

例子2:

num = input(‘请输入您的数字:’)

if num == ‘1’:

  print(‘一起玩’)

elif num == ‘2’:

  print(‘一起喝酒’)

elif num == ‘3’:

  print(‘一起吃饭’)

else:

  print(‘猜错了’)

例子3:

num = int(input(‘请输入您的数字:’))

if num == 1:

  print(‘一起玩’)

elif num == 2:

  print(‘一起喝酒’)

elif num == 3:

  print(‘一起吃饭’)

else:

  print(‘猜错了’)

例子4:

if name == ‘小二’:

  if age == ‘18’:

    print(666)

  else:

    print(333)

else:

  print(‘错了。。。’)

 

while语句

例子:

print('111')

while True:

  print('我们不一样')

  print('在人间')

  print('样')

print('222')

例子2

count = 1

flag = True

while flag:

  print(count)

  count = conut + 1

  if conut > 100:

    flag = False

例子3:

count = 1

while count <= 100:

  print(count)

   count = count + 1

例子4:

count = 1 

sum = 0

while conut <= 100:

  sum = sum + count

  count = count + 1

 例子5:

print('11')

while True:

  print('222')

  print('333')

  break

  print('444')

print('abc')

 

例子6:

print(111)

count = 1

while count < 20 :

  print(count)

  continue

  count = count + 1

例子7:

count = 0

while count <= 100:

  count += 1

  if count > 5 and count < 95:

    continue

  print("loop",count)

print("--------out of while loop -------")

 

 

 

#例子输出1-10,7除外
count = 0
while count < 10:
    count += 1
    if count == 7:
        continue
    print(count)

#例子,输入1-100的奇数
count = 1
while count < 101:
    if count % 2 == 0:
        print(count)
    count += 1

#输出1-100的求和
sum = 0
count = 1
while count <= 100:
    sum += count
    count += 1
print(sum)

#例子计算1-100,1-2+3-4+5...的和
sum = 0
count = 1
while count < 100:
    if count % 2 == 0:
        sum = sum - count
    else:
        sum = sum + count
    count += 1
print(sum)

#用户登录三次机会重试
i = 0
while i < 3:
    username = input('请输入账号:')
    password = int(input('请输入密码:'))
    if username == '咸鱼哥' and password == 123:
        print('登录成功')
        break
    else:
        print('登陆失败,请重试')
    i += 1

ps:while else 当while循环被break打断,就不会执行else的结果

格式化输出

  %s 占位符

  %d 整数类型

  %% 百分号输出

 

#格式化输出
name = input('请输入名字')
age = input('请输入年龄')
height = input('请输入身高')
msg = "我叫%s,今年%s岁,身高%s,%"(name,age,height)
print(msg)

例子
name = input('请输入姓名:')
age = input('请输入年龄:')
job = input('请输入工作:')
hobbie = input('你的爱好:')

msg = ''' --------info of %s   ------------
Name    : %s
Age     : %d
job     : %s
Hobbie  :%s
----------- end ---------'''%(name,name,int(age),job,hobbie)
print(msg)

ps:格式化输出想输出%,需要在之前再添加一个%。

 

编码

  ascii码,只能显示英文,特殊字符,数字

  万国码:unicode,最开始16位,中文(亚洲)不够 32位 4字节,占用资源多

  解决全球化文字问题创建万国码 unicode 为2的32次方;升级UTF-8 

  UTF-8:最少用一个字节,8位表示一个字节

      欧洲16位,两个字节

      亚洲24位,三个字节

  gbk:中国国产,只能用于ascii和中文的文字,用两个字节

  00000001 代表一个 字节  0 代表1位  2种变化8位,28次方

  00000001 8位bit == 1个字节

  1024 bit == 1GB

  1024 KB == 1MB

  1024 MB == 1GB

  1024 GB == 1TB

  中文9万多字

 

 

运算符

#and or not

#优先级()> not >and>or

and == 与

or == 或

not == 非

 

print(3>4 or 4<3 and 1==1)
print(1<2 and 3<4 or 1>2)
print(2>1 and 3<4 or 4>5 and 2<1)
print(1>2 and 3<4 or 4>5 and 2>1 or 9<8)
print(not 2>1 and 3<4 or 4>5 and 2>1 and 9>8 or 7<6)
print(1 or 2)
print(2 or 3)
print(0 or 3)
print(0 or 100)
ps: x or y x为非零则返回x

print(bool(2))
print(bool(-2))
print(bool(0))
ps: int ----> bool 非零转换为bool true,0 转换为bool为False; bool转为数字True为1 False为0


#x or y   x == True,则返回x
print(1 or 2 )
print(3 or 2 )
print(0 or 2 )
print(0 or 100 )


#x and y x == True,则返回y
print(1 and 2)
print(0 and 2)

用户登陆3次机会,错误重试

 

username = "zhangsan"
password = "123456"
i = 3

while i > 0:
    name = input("请输入用户名:")
    i -= 1
    if name == username:
        pw = input("输入密码:")
        if name == username and password == pw:
            print("登录成功,请稍后...")
            print('''
            username: %s
            password: %s
            '''%(name,password))
#            print("你还有%s机会" % (i))
            break
        else:
            if pw != password or name != username:
                print("用户名或密码输入错误,你还有%s机会" % (i))
            if i == -1:
                print ("重试次数已用完")
                break
    else:
        print("用户名输入错误 ,请重新输入")
        print("你还有%s机会"%(i))
        continue

  

#str相关字符处理

数据类型

  int   1,2,3,用于计算

  bool  True,False 用户判断

  str   字符串,存储少量数据,进行操作

      ‘fasgag,二哥,fdisk,李四’

  list   存储大量的数据

      [1,2,3,4'泰格,[1,2,3]']

  元祖  只读 

      (1,2,3'第三方')

  dict  字典{‘name’:'云姐',‘age’:LG}

  集合  {1,2,3,4‘and’}

# 字符串的操作
# 首字母大写
s = 'alexWUsir'
s1 = s.capitalize() #首字母大写
print(s1)

#全大写,全小写
s2 = s.upper() #全大写
s3 = s.lower() #全小写
print(s2,s3)

#不区分大小写
s_str = 'acEQ'
you_input = input("请输入验证码,不区分大小写:")

if s_str.upper() == you_input.upper():
print('输入成功')
else:
    print('请重新输入')

# 反转大小写
 s4 = s.swapcase() #大小写反转
print(s4)

#隔开的单词首字母大写,单词以大写字符开头,其余所有字符都以大写字母开头
s = 'alex*egon-wusir'
s4 = s.title()
print(s4)

#居中,空白填充
s = 'alexWusir'
s5 = s.center(20,'~')
print(s5)

#如果未指定制表符大小,则假定制表符大小为 8 个字符。
s = 'aqwl\tsir'
s6 = s.expandtabs()
print(s6)


#公共方法
#返回容器中的项数
s = 'cjdsigisnisands'
l = len(s)
print(l)

#如果 al 以指定的前缀开头,则返回 True,否则返回 False。
s = 'alexWUsir'
s7 = s.startswith('al') #是否包含al
s8 = s.startswith('e',2,5) #从第三位开始5位结束是否包含e
print(s7,s8)

#find通过元素,找对应字符的索引,找不到返回-1
#index通过元素,找对应字符的索引,找不到报错
s9 = s.find('WU')
print(s9,type(s9))

#strip 默认删除前后空格
s = '   alexWUsir%'
s10 = s.strip('%')
print(s10)

username = input('请输入名字:').strip()
if username == '张三':
    print('张三发财了')

#strip rstrip lstrrip
s = '  *a%1exWUsi* r%'
s11 = s.strip(' %*') #删除前后包含的字符
print(s11)

#返回子字符串子项中非重叠出现的次数
s = 'alexaa wusirl'
s12 = s.count('a')
print(s12)

#split str ----> list,字符串转化列表
s = ':alexaa:wusirl:cdsag'
s13 = s.split(':')
print(s13)

# format 格式化输入
s = '我叫{},今年{},爱好{}'.format('太白', '36', '游戏')
print(s)

s = '我叫{0},今年{1},爱好{2},名字{0}'.format('太白', '36', '游戏')
print(s)

s = '我叫{name},今年{age},爱好{hobby},名字{name}'.format(age=18, name='太白', hobby='游戏')
print(s)

#替换字符串
s = '侧哈斯公司'
s14 = s.replace('公司','市场',1)
print(s14)

#for 有限循环
s = 'jcidsnagi'
for i in s:
    print(i)

s = 'fasg苍井空dsc'
if '苍井空' in s:
    print("您的评论包含敏感词")

 

#数据类型转换

#int 在二进制中表示自身所需的位数。
i = 2
print(i.bit_length())

#int ----> str
i = 1
s = str(i)
print(type(s))

#str ----> int
s = '123'
i = int(s)
print(type(i))

#int ------> bool
#非零为True
i = 3
b = bool(i)
print(type(b))

#bool ---> int
#True 1
#False 0

while 1: #效率高
    pass

#str ----> bool
#s = "0" ---> False
#非空字符串都是True
#s = ”0“ -----> True

s
if s:
    print('你输入的为空,请重新输入')
else:
    pass

 

字符串取值

#字符串的索引与切片,
s = "ABCDEFG"
#索引
s1 = s[0] #取第一个字符从0开始
print(s1)
s1 = s[-1] #取最后一个字符
print(s1)
#切片:顾头不顾尾
s2 = s[0:4] #取0-3个字符
print(s2)
s3 = s[0:] #取所有字符;s[:]效果相同。[0:0]为空。
print(s3)
#按步长取值
s4 = s[0:5:2]
print(s4)
s5 = s[4:0:-1] #反向取值,顾头不固定
print(s5)
s6 = s[4::-1] #反向取值,到0
print(s6)
s7 = s[-1::-1] #反向输出全部,与s[::-1]效果相同
print(s7)

 

 

 

ascii:字母,数字,特殊字符:一个字节,8位
Unicode:16位,两个字节,升级32位,四个字节
utf-8:最少一个字节8位表示,英文字母8位一个字节
欧洲16位,2个字节
中文24位,3个字节
gdk:中文2个字节,英文一个字节


import
sys print(sys.maxunicode)

#使用for与while 输出字符所有元素
s = 'sdagaha'

for i in s:
print(i)

print("----------------")

index = 0
while 1:
print(s[index])
index += 1
if index == len(s):
break

#规范输入进行分割计算:5+9或5+ 9或5 + 9
content = input('>>> ').strip()
con1=content.split('+')
num = 0
for i in con1:
print(i)
num += int(i)
print(num)

content = input('>>> ').strip()
index = content.find("+")
a = int(content[0:index])
print(a)
b = int(content[index+1:])
print(b)
print(a + b)

#输入内容,打印出数字的个数
s = input("请输入:")
count = 0
for i in s:
if i.isdigit():
count += 1
print(count)

 

列表增删改查

列表
li = ['张三','李四','王二','[123]']
l1 = li[0]
print(l1)
l2 = li[0:3]
print(l2)
l3 = li[-1]
print(l3)

列表增加
li = ['张三','李四','王二','[123]']
li.append('日天')
li.append(1)
print(li)

while 1:
    username = input('>>>')
    if username.strip().upper() == 'Q':
        break
    else:
        li.append(username)
print(li)

li.insert(4,'春哥')
print(li)

#li.extend('二哥')
li.extend([1,2,3])
print(li)

删除
li = ['张三','李四','王二','[123]']
name = li.pop() #默认删除最后一个
name = li.pop(0) #指定删除一个元素
print(name,li)

li = ['张三','李四','王二','[123]']
li.remove('张三') #删除指定元素
print(li)

li.clear() #清空
print(li)

del li  #删除列表
del li[2:] #切片删除
print(li)

改
li = ['张三','李四','王二','[123]']
li[0] = '王五' #指定修改
li[0:3] = '云姐abc1' #按元素改掉指定位置
li[0:3] = [1,2,3,'春哥','咸鱼哥','帅哥'] #切片改指定元素
print(li)

查
li = ['张三','李四','王二','[123]']
for i in li:
    print(i)
print(li[0:2])

公共方法
li = ['张三','李四','王二','[123]','张三']
l = len(li)  #输出列表元素个数
print(l)
name = li.count('张三') #输出列表中包含的元素次数
print(name)
print(li.index('李四')) #列表中是否包含相关元素,存在返回1,不存在报错

li = [1,3,4,2,5]
li.sort() #正向排序
li.sort(reverse=True) #反向排序
li.reverse() #反转排序
print(li)

#元祖为只读列表,可循环,可切片
#儿子不能改,孙子可能可以改
tu = (1,2,3,'alex',[2,3,4,'taibai'],'cgon')
print(tu[3])
print(tu[0:4])
for i in tu:
print(i)
tu[4][3]=tu[4][3].upper()
print(tu)
tu[4].append(('sb'))
print(tu)

s = 'alex'
s1 = '_'.join(s) #指定分割字符串
print(s1)

range
for i in range(10):
print(i)

for i in range(0,10):
print(i)

for i in range(1,10,2):
print(i)

for i in range(10,0,-2):
print(i)

 

 

 




 

posted on 2023-07-19 09:45  香蕉你个波娜娜  阅读(29)  评论(0)    收藏  举报