python_fullstack基础(二)
python_fullstack基础(二)一、变量1、什么是变量变量:把程序运行的中间结果临时存放在内存中,以便后续程序进行调用2、变量声明#!/usr/bin/env python# _*_ coding: utf-8 _*_name = "yang"上述代码声明了一个变量,变量名为: name,变量name的值为:”taibai”3、变量的作用作用:昵称,其代指内存里某个地址中保存的内容4、变
python_fullstack基础(二)
一、变量
1、什么是变量
变量:把程序运行的中间结果临时存放在内存中,以便后续程序进行调用
2、变量声明
#!/usr/bin/env python
# _*_ coding: utf-8 _*_
name = "yang"
上述代码声明了一个变量,变量名为: name,变量name的值为:”taibai”
3、变量的作用
作用:昵称,其代指内存里某个地址中保存的内容
4、变量定义规则
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
[‘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’] - 变量的定义要具有可描述性。
定义变量不好的方式举例
- 变量名为中文、拼音
- 变量名过长
- 变量名词不达意
5、推荐定义方式
#驼峰体
AgeOfOldboy = 56
NumberOfStudents = 80
#下划线
age_of_oldboy = 56
number_of_students = 80
二、常量
常量即指不变的量,如 pi≈3.1415926 , 或在程序运行过程中不会改变的量
举例,假如老男孩老师的年龄会变,那这就是个变量,但在一些情况下,他的年龄不会变了,那就是常量。在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量
AGE_OF_OLDBOY = 56
三、注释
1、作用:方便自己方便他人理解代码。
2、种类
# 单行注释:
#
#多行注释:
'''被注释内容'''
"""被注释内容"""
四、用户交互
#!/usr/bin/env python
# _*_ encoding: utf-8 _*_
# 将用户输入的内容赋值给 name 变量
name = input("请输入用户名:")
# 打印输入的内容
print(name)
需要说明的几点:
1. input后系统会等待用户输入
2. 将你输入的内容赋值给了前面变量。
3. input出来的数据类型全部是str
五、基础数据类型初识
1、数字:int 12,3,45
+ - * / **
% 取余数
字符串转化成数字:int(str) 条件:str必须是数字组成的。
数字转化成字符串:str(int)
PS· type():用来查看变量的数据类型
2、字符串:str,python当中凡是用引号引起来的都是字符串。
可相加:字符串的拼接。
可相乘:str * int
3、bool:布尔值
True
False
六、流程控制之if
1、作用:用于进行条件判断,根据不同条件进行分支操作
2、种类:
①单分支
if 条件:
满足条件后要执行的代码
②双分支
if 条件:
满足条件执行代码
else:
if条件不满足就走这段
③多分支
if 条件:
满足条件执行代码
elif 条件:
上面的条件不满足就走这个
elif 条件:
上面的条件不满足就走这个
elif 条件:
上面的条件不满足就走这个
else:
上面所有的条件不满足就走这段
七、流程控制之while循环
1、基本循环
while 条件:
# 循环体
# 如果条件为真,那么循环体则执行
# 如果条件为假,那么循环体不执行
2、循环中止语句
- break用于完全结束一个循环,跳出循环体执行循环后面的语句
- continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环
- 与其它语言else 一般只与if 搭配不同,在Python 中还有个while …else 语句,while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句
①break举例
count = 0
while count <= 100 : #只要count<=100就不断执行下面的代码
print("loop ", count)
if count == 5:
break
count +=1 #每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0
print("-----out of while loop ------")
输出
loop 0
loop 1
loop 2
loop 3
loop 4
loop 5
-----out of while loop ------
②continue举例
count = 0
while count <= 100 :
count += 1
if count > 5 and count < 95: #只要count在6-94之间,就不走下面的print语句,直接进入下一次loop
continue
print("loop ", count)
print("-----out of while loop ------")
输出
loop 1
loop 2
loop 3
loop 4
loop 5
loop 95
loop 96
loop 97
loop 98
loop 99
loop 100
loop 101
-----out of while loop ------
③while…else…举例
count = 0
while count <= 5 :
count += 1
print("Loop",count)
else:
print("循环正常执行完啦")
print("-----out of while loop ------")
输出
Loop 1
Loop 2
Loop 3
Loop 4
Loop 5
Loop 6
循环正常执行完啦
-----out of while loop ------
如果执行过程中被break啦,就不会执行else的语句啦
count = 0
while count <= 5 :
count += 1
if count == 3:break
print("Loop",count)
else:
print("循环正常执行完啦")
print("-----out of while loop ------")
输出
Loop 1
Loop 2
-----out of while loop ------
八、格式化输出
语法:
- % ——占位符
- s ——表示占位的是str数据类型的变量
- d ——表示占位的是digital数据类型的变量
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)
输出
请输入姓名:yang
请输入年龄:18
请输入工作:engineer
你的爱好:coding
------------ info of yang -----------
Name : yang
Age : 18
job : engineer
Hobbie: coding
------------- end -----------------
九、初识编码
python2解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),而python3对内容进行编码的默认为utf-8。
① ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)
是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
② Unicode(统一码、万国码、单一码)
是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多
③ UTF-8
是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存
总结
ASCII码:8位二进制数表示特殊符号、英文字母大小写
发展
Unicode:最少由16位二进制数表示字符和符号
升级
utf-8:不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存
十、基本运算符
1、运算符
计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算
2、算数运算
# 算数运算
a = 10
b = 30
print(a + b) # 两变量相加
print(a - b) # 得到负数或者是一个数减去另一个数
print(a * b) # 两个数相乘或者是返回一个被重复若干次的字符串
print(a / b) # 两个数相除
print(a % b) # 取余-返回除法的余数
print(a ** b) # 返回x的y次幂
print(a // b) # 返回商的整数部分
输出
40
-20
300
0.3333333333333333
10
1000000000000000000000000000000
0
3、比较运算
# 比较运算
a = 10
b = 30
# 所有运算符返回1表示真,返回0表示假,这分别于特殊的变量True和False等于,注意这些变量名单大写
print(a == b) # 等于-比较对象是否相等
print(a != b) # 不等于-比较对象是否不相等
# print(a <> b) # 不等于-比较对象是否不相等,python3.5之后的版本已经不支持,统一用!=代替
print(a > b) # 大于-返回x是否大于y
print(a < b) # 小于-返回x是否小于y
print(a >= b) # 大于等于-返回x是否大于等于y
print(a <= b) # 小于等于-返回x是否小于等于y
输出
False
True
False
True
False
True
4、赋值运算
# 赋值运算
a = 0
b = 30
a = b # 简单的赋值运算
print(a)
a += b # 加法赋值运算
print(a)
a -= b # 减法赋值运算
print(a)
a *= b # 乘法赋值运算
print(a)
a /= b # 除法赋值运算
print()
a %= b # 取余赋值运算
print(a)
a **= b # 乘方赋值运算
print(a)
a //= b # 取整赋值运算
print(a)
输出
# 提示:务必单独运算每个运算符,不然结果会受到之前结果的影响
30
30
-30
0
0.0
0
0
0
5、逻辑运算
优先级:() > not > and > or
- not:布尔‘非’,如果x为True,返回False,反之亦然
- and:布尔‘与’,如果x为False,x and y返回True,否则返回y的计算值
- or:布尔‘或’,如果x为True,x or y返回True,否则返回y的计算值
6、逻辑运算(高级)
- 其中x,y是数值
- x or y , x为真,值就是x,x为假,值是y
- x and y, x为真,值是y,x为假,值是x
# 思考例题
print(2 or 1 < 3)
# 2
print(3 > 1 or 2 and 2)
# 2
十一、作业重点回顾
1、写代码:计算 1 - 2 + 3 … + 99 中除了88以外所有数的总和?
count = 1
sum = 0
while count < 100:
if count % 2 != 0:
sum += count
elif count % 2 == 0:
if count == 88:
# pass #此处可以用pass替代下面两行
count += 1
continue
else:
sum -= count
count += 1
print(sum)
★ 注意:两个if与if…elif…的区别,如果是两个if,则在判断完第一个if之后后面的if也会进行判断,而if…elif…是进行多选一判断
# 此题中,当count为88时,首先执行第一个if,之后依然会判断第二个if
count = 1
sum = 0
while count < 100:
if count == 88:
pass
if count % 2 == 0:
sum -= count
elif count % 2 != 0:
sum += count
count += 1
print(sum)
2、写代码:计算 1 - 2 + 3 … - 99 中除了88以外所有数的总和?
# 这道题与第1题的却别在于99这个元素的符号,上题中比较简单,即偶数88的符号应该为负号,在除去88的同时将其的负号也一同除去了;而此题中则只是将偶数88除去,负号依然保留
count = 0
symbol = -1
sum = 0
while count < 99:
count += 1
if count == 88:
continue
else:
symbol = -symbol
sum = sum + count * symbol
print(sum)
3、⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格式化)
count = 3
while count > 0:
username = input('请输入用户名:\n>>>').strip()
password = input('请输入密码:\n>>>').strip()
if username == 'admin' and password == '123':
success_msg = '''
--------------------------------------------------------
欢迎您 %s
--------------------------------------------------------
''' % (username)
print(success_msg)
break
else:
count -= 1
failed_msg = '''
--------------------------------------------------------
对不起,您输入的用户名:%s 或 密码:%s 有误,请重新输入!
您还有剩余错误次数:%s 次!
--------------------------------------------------------
''' % (username, password, count)
print(failed_msg)
4、⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数,同时用户输入超过3次错误时询问是否继续尝试,是则让用户继续尝试登陆,并在最终提示用户输入太多次(提示:使⽤字符串格式化)
count = 3
while count > 0:
username = input('please input username:\n>>>').strip()
password = input('please input password:\n>>>').strip()
if username == 'admin' and password == '123':
print('''
用户 %s 登陆成功!欢迎您!
''' % (username))
break
else:
count -= 1
if count == 0:
is_continue = input('对不起,您输入错误的次数超过3次,是否继续尝试(Y/N)?\n>>>').strip()
if is_continue.lower() == 'y':
count = 3
else:
print('''
对不起,您输入的用户名或密码错误!
您还有 %d 次机会尝试!
''' % (count))
else:
print('您尝试的次数过多,请考虑是否更换用户名或密码,谢谢!')
5、看代码书写结果: a= 12 & 127 ,求a的输出值
'''
此题考查位运算相关知识:
运算规则
参加运算的两个数相&,即按二进位进行“与”运算,如果两个相应的二进位都为1,则该位的结# 果值为1,否则为0,即:0&0=0,0&1=0,1&0=0,1&1=1。
所以,此题中:bin(12) = 00001100,bin(127) = 01111111
00001100
01111111
---------
00001100
所以答案为:00001100 => 12
'''
a= 12 & 127
print(12)
>>> 12
6、Unicode、utf-8、GBK,每个编码英文、中文分别用几个字节表示?
编码方式 | 英文 | 中文 |
---|---|---|
ASCII | 8位(1字节) | 无 |
UNICODE | 16位(2字节) | 16位(2字节)->生僻字用32位(4字节) |
UTF-8 | 8位(1字节) | 24位(3字节) |
GBK | 8位(1字节) | 16位(2字节) |
更多推荐
所有评论(0)