python_fullstack基础(二)
来源:互联网 发布:养猫还是养狗 知乎 编辑:程序博客网 时间:2024/06/07 12:24
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 = 56NumberOfStudents = 80#下划线age_of_oldboy = 56number_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 = 0while count <= 100 : #只要count<=100就不断执行下面的代码 print("loop ", count) if count == 5: break count +=1 #每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0print("-----out of while loop ------")
输出
loop 0loop 1loop 2loop 3loop 4loop 5-----out of while loop ------
②continue举例
count = 0while 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 1loop 2loop 3loop 4loop 5loop 95loop 96loop 97loop 98loop 99loop 100loop 101-----out of while loop ------
③while…else…举例
count = 0while count <= 5 : count += 1 print("Loop",count)else: print("循环正常执行完啦")print("-----out of while loop ------")
输出
Loop 1Loop 2Loop 3Loop 4Loop 5Loop 6循环正常执行完啦-----out of while loop ------
如果执行过程中被break啦,就不会执行else的语句啦
count = 0while count <= 5 : count += 1 if count == 3:break print("Loop",count)else: print("循环正常执行完啦")print("-----out of while loop ------")
输出
Loop 1Loop 2-----out of while loop ------
八、格式化输出
语法:
- % ——占位符
- s ——表示占位的是str数据类型的变量
- d ——表示占位的是digital数据类型的变量
name = input('请输入姓名:')age = input('请输入年龄:')job = input('请输入工作:')hobbie = input('你的爱好:')msg = '''------------ info of %s -----------Name : %sAge : %djob : %sHobbie: %s------------- end -----------------''' %(name,name,int(age),job,hobbie)print(msg)
输出
请输入姓名:yang请输入年龄:18请输入工作:engineer你的爱好:coding------------ info of yang -----------Name : yangAge : 18job : engineerHobbie: 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 = 10b = 30print(a + b) # 两变量相加print(a - b) # 得到负数或者是一个数减去另一个数print(a * b) # 两个数相乘或者是返回一个被重复若干次的字符串print(a / b) # 两个数相除print(a % b) # 取余-返回除法的余数print(a ** b) # 返回x的y次幂print(a // b) # 返回商的整数部分
输出
40-203000.33333333333333331010000000000000000000000000000000
3、比较运算
# 比较运算a = 10b = 30# 所有运算符返回1表示真,返回0表示假,这分别于特殊的变量True和False等于,注意这些变量名单大写print(a == b) # 等于-比较对象是否相等print(a != b) # 不等于-比较对象是否不相等# print(a <> b) # 不等于-比较对象是否不相等,python3.5之后的版本已经不支持,统一用!=代替print(a > b) # 大于-返回x是否大于yprint(a < b) # 小于-返回x是否小于yprint(a >= b) # 大于等于-返回x是否大于等于yprint(a <= b) # 小于等于-返回x是否小于等于y
输出
FalseTrueFalseTrueFalseTrue
4、赋值运算
# 赋值运算a = 0b = 30a = 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)
输出
# 提示:务必单独运算每个运算符,不然结果会受到之前结果的影响3030-3000.0000
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)# 2print(3 > 1 or 2 and 2)# 2
十一、作业重点回顾
1、写代码:计算 1 - 2 + 3 … + 99 中除了88以外所有数的总和?
count = 1sum = 0while count < 100: if count % 2 != 0: sum += count elif count % 2 == 0: if count == 88: # pass #此处可以用pass替代下面两行 count += 1 continue else: sum -= count count += 1print(sum)
★ 注意:两个if与if…elif…的区别,如果是两个if,则在判断完第一个if之后后面的if也会进行判断,而if…elif…是进行多选一判断
# 此题中,当count为88时,首先执行第一个if,之后依然会判断第二个ifcount = 1sum = 0while count < 100: if count == 88: pass if count % 2 == 0: sum -= count elif count % 2 != 0: sum += count count += 1print(sum)
2、写代码:计算 1 - 2 + 3 … - 99 中除了88以外所有数的总和?
# 这道题与第1题的却别在于99这个元素的符号,上题中比较简单,即偶数88的符号应该为负号,在除去88的同时将其的负号也一同除去了;而此题中则只是将偶数88除去,负号依然保留count = 0symbol = -1sum = 0while count < 99: count += 1 if count == 88: continue else: symbol = -symbol sum = sum + count * symbolprint(sum)
3、⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格式化)
count = 3while 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 = 3while 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 0000110001111111---------00001100所以答案为:00001100 => 12'''a= 12 & 127print(12)>>> 12
6、Unicode、utf-8、GBK,每个编码英文、中文分别用几个字节表示?
- python_fullstack基础(二)
- python_fullstack基础(一)
- python_fullstack基础(三)-基本数据类型
- python_fullstack基础(四)-文件操作
- python_fullstack-小知识点
- python_fullstack-面试题&经典题汇总
- 基础二
- js基础 事件基础二
- Servlet基础(二)
- JDBC基础(二)
- 二、VB6语言基础
- SQL基础二
- 半导体基础(二)
- JDBC基础(二)
- Ajax基础(二)
- JDBC 基础 (二)
- Java基础之二
- CodeSmith基础(二)
- Sudoku Killer HDU
- 单例模式再看
- SpringMVC中的@RequestMapping
- Nginx提高并发量的简单思路
- 系统rhel7本地yum源的配置
- python_fullstack基础(二)
- Hybris入门详解一BY.Shaun-sheng
- poj 多项式加法 map
- yii2 遇到的小方法
- spring中读取property的几种方式及解析
- python︱apple开源机器学习框架turicreate中的SFrame——新形态pd.DataFrame
- Android:动态修改TextView文字内容
- 基于Unity3D的声音管理系统的实现
- UDP单播、广播和多播