一.上节课回顾
1. 编译型:
将源码一次性全部编译成二进制. C
优点:执行效率高.
缺点:开发效率慢,不可跨平台使用.
解释型:
当程序执行时,代码一行一行的去解释成二进制. python
优点:开发效率快,可跨平台使用.
优点:执行效率相对低.
python2 python3 区别:
python2 各种语言的陋习,重复代码.
python3 简单清晰优美.
python的种类:cpython jpython 其他语言的python,pypy.
变量:
1,是由数字字母,下划线任意组合.
2,不能以数字开头.
3,不能是python中的关键字.
4,变量可描述性.
5,不能中文.
6,不能太长.
7,下划线格式.
常量:
理论上不能更改,Python中大写的变量就是常量.
注释:#单行
'''被注释内容''' """被注释内容"""
数据类型:
int
范围,和运算.
str
python中 带引号的都可以视为字符串. '' ""
s1 = '''
内容
'''
str + str 字符串的拼接
str * int
i = int(str) 全部由数字组成的字符串才能转化成数字
bool
True False
用户交互:input 字符串数据类型.
if:
if 条件:
结果
if 条件:
结果
else:
结果
if
elif
elif
if
elif
elif
else:
if
if
if
if
if
while 条件:
结果
while :改变条件
break
break:结束循环.
continue:结束本次循环,继续下一次循环.
二、作业讲解
#1、使用while循环输入 1 2 3 4 5 6 8 9 10
# count = 0
# while count < 10 :
# count += 1
# if count == 7 :
# continue
# print(count)
#2、求1-100的所有数的和
pass
#3、输出 1-100 内的所有奇数
# a = 0
# i = 0
# while i < 50:
# a = 2*i+1
# i += 1
# print(a)
# count = 1
# while count < 100:
# print(count)
# count += 2
# count = 1
# while count < 100:
# if count % 2 == 1:
# print(count)
# count += 1
#4、输出 1-100 内的所有偶数
#5、求1-2+3-4+5 ... 99的所有数的和
# sum = 0
# count = 1
# while count < 100:
# if count % 2 == 0:
# sum = sum - count
# else:
# sum = sum + count
# count += 1
# print(sum)
#6、用户登陆(三次机会重试)
i = 1
while i <= 3:
username = input('请输入你的账户')
password = input('请输入你的密码')
if username == 'lol' and password == '戒了':
print('欢迎登录')
break
else:
print('错误,请重新输入')
i += 1
if i == 4:
answer = input('想不想在试一试?/y')
if answer == 'y':
i = 1
else:
print('要不要脸呀')
三、今日内容大纲
1,上节内容回顾.
2,作业讲解.3,pycharm使用
4,格式化输出,while else
while else:
5.逻辑运算符
6,编码.
四、while格式化输出
'''
i = 1
while i < 4:
print(i)
if i == 2:break
i += 1
else:
print('正常循环完毕')
'''
#格式化:format %s %d
#第一种写法:
# name = input('请输入你的名字:')
# age = int(input('请输入你的年龄:'))
# score = int(input('请输入你的成绩:'))
#
# msg = '我叫%s,今年%d岁,成绩为%d分'%(name,age,score)
# print(msg)
#第二种写法:
# name1 = input('请输入你的名字:')
# age1 = input('请输入你的年龄:')
# score1 = input('请输入你的成绩:')
#
# msg = '我叫%(name)s,今年%(age)s岁,成绩为%(score)s分'
# %{'age':age1,'name':name1,'score':score1}
# print(msg)
#
msg = '我叫%s,今年%d岁,学习进度为2%%' %('太白',21)
print(msg)
五、逻辑运算符
#优先级
# print(2 > 1 and 3 > 4)
# print(2 > 1 or 3 > 4)
# print(not 2 > 1)
#() > not > and > or
# a = 2 > 1 and 2 < 3 or 2 > 4 and 1 < 5 or 7 < 4
# print(a)
#1,前后都是比较的条件
# print(3 > 4 or 4 < 3 and 1==1) # F
# print(1 < 2 and 3 < 4 or 1>2 ) # T
# print(2 > 1 and 3 < 4 or 4 > 5 and 2 < 1) # T
# print(1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8) # F
# print(1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6) # F
# print(not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6) # F
#2,前后都是数字
# print(1 or 2)
# print(2 or 3)
# print(0 or 2)
# print(0 or 3)
# print(1 and 2)
# print(0 and 3)
# x or y if x 为 True,则值是x ;else:值是y.
# and 与or相反
'''
ps: str ---> int int(str) 字符串必须是数字组成
int----> str str(int)
int ---> bool 非0 ----> True
0 -----> False
'''
# print(1 or 3 and 4 or 5)
# print(2 > 1 or 1 and 3 < 2)
六、编码的历史
战争时期:
发电报,发的是高低电频,实际上是01010101
今 0000 0001
晚 0000 0101
嗨 0000 0111
去呀 0000 1001
00000001 00000101 00000111 00001001
计算机:
储存文件,或者是传输文件,实际上是010101010
计算机创建初期,美国,二进制,
密码本:
ascii
00000001
01000001 01000010 01000011 ABC
因为全球语言很多,ascii不足以存储这么多对应关系,创建了一个超级密码本:万国码unicode
8 位 == 1个字节.
hello h一个字符,e一个字符,he就不是一个字符.
中国:中是一个字符,国是一个字符.
unicode :
创建之初,16位,2个字节,表示一个字符.
英文: a b c 六个字节 一个英文2个字节
中文 中国 四个字节 一个中文用2个字节
改成 32位,4个字节,表示一个字符.
a 01000001 01000010 01000011 00000001
b 01000001 01000010 01100011 00000001
中 01001001 01000010 01100011 00000001
浪费资源.
对Unicode进行升级: utf-8
utf-8 用最少用8位数,去表示一个字符.
英文: 8位,1个字节表示.
欧洲文字: 16位,两个字节表示一个字符.
中文,亚洲文字: 24位,三个字节表示.
utf-16 用最少用16位数.
gbk:
国标,只能中国人自己用, 一个中文用16位,两个字节表示.
单位转化:
8位bit 8bit == 1bytes
1024bytes == 1kB
1024KB == 1MB
1024MB == 1GB
1024GB == 1TB
七、 in not in
#in not in
# s = 'fkdjsaalexgfdjlk'
# print('alex' in s)
# not in
comment = input('请输入你的评论')
s1 = '苍老师'
if s1 in comment:
print('有非法字符,从新输入')
else:
print('评论成功')