一,执行python的两种方式

  1,写在脚本里面调用python执行,例如python test.py

  2,  输入python在命令行交互执行,例如 python  >>> print 'Hello World'

二,简述位,字节的关系

  位(bit)来自英文bit,音译为“比特”,表示二进制位。位是计算机内部数据储存的最小单位

  字节(byte)字节来自英文Byte。字节是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特(1Byte=8bit)。八位二进制数最小为00000000,最大为11111111;通常1个字节可以存入一个ASCII码,2个字节可以存放一个汉字国标码。

三,简述ascii,Unicode,utf-8,gbk的关系

  1.ASCII码

这是美国在19世纪60年代的时候为了建立英文字符和二进制的关系时制定的编码规范,它能表示128个字符,其中包括英文字符、阿拉伯数字、西文字符以及32个控制字符。它用一个字节来表示具体的字符,但它只用后7位来表示字符(2^7=128),最前面的一位统一规定为0

  2.Unicode符号集

正如上一节所说,世界上存在着多种编码方式,同一个二进制数字可以被解释成不同的符号。因此,要想打开一个文本文件,就必须知道它的编码方式,否则用错误的编码方式解读,就会出现乱码。为什么电子邮件常常出现乱码?就是因为发信人和收信人使用的编码方式不一样。而Unicode就是这样一种编码:它包含了世界上所有的符号,并且每一个符号都是独一无二的。比如,U+0639表示阿拉伯字母Ain,U+0041表示英语的大写字母A,U+4E25表示汉字“严”。具体的符号对应表,可以查询unicode.org,或者专门的汉字对应表。很多人都说Unicode编码,但其实Unicode是一个符号集(世界上所有符号的符号集),而不是一种新的编码方式。

但是正因为Unicode包含了所有的字符,而有些国家的字符用一个字节便可以表示,而有些国家的字符要用多个字节才能表示出来。即产生了两个问题:第一,如果有两个字节的数据,那计算机怎么知道这两个字节是表示一个汉字呢?还是表示两个英文字母呢?第二,因为不同字符需要的存储长度不一样,那么如果Unicode规定用2个字节存储字符,那么英文字符存储时前面1个字节都是0,这就大大浪费了存储空间。

上面两个问题造成的结果是:1)出现了unicode的多种存储方式,也就是说有许多种不同的二进制格式,可以用来表示unicode。2)unicode在很长一段时间内无法推广,直到互联网的出现。

  3.UTF-8

互联网的普及,强烈要求出现一种统一的编码方式。UTF-8就是在互联网上使用最广的一种unicode的实现方式。其他实现方式还包括UTF-16和UTF-32,不过在互联网上基本不用。重复一遍,这里的关系是,UTF-8是Unicode的实现方式之一。

UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。

UTF-8的编码规则很简单,只有两条:

1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。

2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。

  4.GBK/GB2312/GB18030

GBK和GB2312都是针对简体字的编码,只是GB2312只支持六千多个汉字的编码,而GBK支持1万多个汉字编码。而GB18030是用于繁体字的编码。汉字存储时都使用两个字节来储存。

  总结

ASCII编码:用来表示英文,它使用1个字节表示,其中第一位规定为0,其他7位存储数据,一共可以表示128个字符。

拓展ASCII编码:用于表示更多的欧洲文字,用8个位存储数据,一共可以表示256个字符

GBK/GB2312/GB18030:表示汉字。GBK/GB2312表示简体中文,GB18030表示繁体中文。

Unicode编码:包含世界上所有的字符,是一个字符集。

UTF-8:是Unicode字符的实现方式之一,它使用1-4个字符表示一个符号,根据不同的符号而变化字节长度。

四,请写出‘张三’分别用utf-8和gbk编码所占的位数

  utf-8一般使用三个字节代表一个汉字,占位为24位

  gbk使用两个字节代表一个汉字,占位为16位

五,Python单行注释和多行注释分别用什么

  单行注释使用# 多行注释使用''' '''或者""" """包含

六,声明变量的注意事项有哪些

  1,变量由大小写字母,数字及下划线组成并且开始不能为数字

  2,不能和python关键字重复

  3,不能使用系统函数作为变量名

七,如果有变量n1 = 5,请使用int提供的方法得到该变量最少可以用多少个二进制位表示。

  >>> int(5).bit_length()

  3

  3位

八,布尔值分别有什么

  True和False

九,阅读代码请写出执行结果

  capitalize方法是首字母大写

 a= 'zhangsan'
b = a.capitalize()
print (a)
print (b) zhangsan
Zhangsan

 

十,写代码有以下变量,请按要求实现以下功能

  name = ‘zhangsaN’

  a.移除变量name对应两边的空格并且输出移除后内容

v = name.strip()
print(v) zhangsaN

  b.判定变量name是否以‘zh‘’开头,并且输出结果

name = 'zhangsaN'
v = name.startswith('zh')
print(v) True

  c.判定变量name是否以‘N’结尾,并且输出结果

name = 'zhangsaN'
v = name.endswith('N')
print(v) True

  d.将h替换为p并输出结果

name = 'zhangsaN'
v = name.replace('h','p')
print(v) zpangsaN

  e.将变量以h分割并输出结果

name = 'zhangsaN'
v = name.split('h')
print(v) ['z', 'angsaN']

  f.上一题以h分割后得到的是什么类型

  list 列表

  g.name变量变大写,输出结果

name = 'zhangsaN'
v = name.upper()
print(v) ZHANGSAN

  h.name变量变小写,输出结果

name = 'zhangsaN'
v = name.lower()
print(v) zhangsan

  i.输出变量name的第二个字符

name = 'zhangsaN'

print(name[1])

h

  j.输出变量name前三个字符

name = 'zhangsaN'

print(name[0:3])

zha

  k.输出变量name后两个字符

name = 'zhangsaN'

print(name[-2:])

aN

  l.输出变量name中h所在是索引位置

name = 'zhangsaN'

v = name.find('h')

print(v)

1

  m.输出子序列不包括最后一个字符

name = 'zhangsaN'

v = name[0:-1]

print(v)

zhangsa

十一,字符串是否可迭代对象,请使用循环输出每一个元素

  字符串可以迭代,能被for循环进行循环的就是可迭代对象

name = 'zhangsaN'
for item in name:
print(item)

十二,请用代码实现

  a,利用下划线将每一个元素拼接为字符串li = ‘zhangsan’

  b,利用下划线将每一个元素拼接为字符串li = ['zhangsan','lisi','wangwu']

li = "zhangsan"
v = '_'.join(li)
print(v) z_h_a_n_g_s_a_n

  

li = ['zhansan','lisi','wangwu']
v = '_'.join(li)
print(v) zhansan_lisi_wangwu

  

十三,python2和python3中函数range的区别

  python2中的range返回的是一个列表,xrange和python3里面的range效果是一样的

  python3中的range返回的是一个迭代值

  

十四,实现一个整数加法运算

  如:content=(‘请输入内容例如5+9:’)

content=input('Please input')
v = content.split('+')
n1 = v[0]
n2 = v[1]
print(int(n1)+int(n2))

 

十五,计算用户输入的有多少个数字,多少个字母

content=input('Please input')
letter_count = 0
number_count = 0
for item in content:
if item.isalpha():
letter_count = letter_count + 1
elif item.isdigit():
number_count = number_count + 1 print('字母数为:',letter_count)
print('数字数为:',number_count)

  通过迭代循环判断是否为数字或字母如果为数字或者字母则+1迭代玩输出结果

十六,制作趣味模板程序根据用户输入姓名,地点,爱好输出 亲爱的xxx喜欢在xxx做xxx

name = input('请输入姓名:')
add = input('请输入地点:')
thing = input('请输入你喜欢做的事情:')
print(name,'喜欢在',add,thing)

  

十七,制作随机验证码,不区分大小写


def check_code():
import random
checkcode = ''
for i in range(4):
current = random.randrange(0,4)
if current != i:
temp = chr(random.randint(65,90))
else:
temp = random.randint(0,9)
checkcode += str(temp)
return checkcode while True:
code = check_code()
print(code)
v = input('>>>')
if v.upper() == code:
print('You input is right')
else:
continue
 

十八,开发敏感词过滤如果内容包含敏感字符则替换为***

v = input('>>>')
v = v.replace('','a')
v = v.replace('','b')
print(v)

  

  

  

    

Python全栈day10(基础知识练习题)的更多相关文章

  1. Python全栈day10(基本数据类型及其常用方法)

    一,数字 1,int 将字符串转化成数字 a = '123' b=int(a) b=123 2,以进制方式进行转换 num="a" >>> num = " ...

  2. Python全栈day10(Pycharm的安装和使用)

    Python开发IDE 一,下载Pycharm专业版 二,安装Pycharm 三,新建项目 四,设置字体大小

  3. Python全栈day10(运算符)

    一,运算符 + - * . ** % // 二,in 和not in 一个字符串包含多个字符可以通过in判断字符是否属于改字符串 >>> name = "zhangsan& ...

  4. 老男孩Python全栈第2期+课件笔记【高清完整92天整套视频教程】

    点击了解更多Python课程>>> 老男孩Python全栈第2期+课件笔记[高清完整92天整套视频教程] 课程目录 ├─day01-python 全栈开发-基础篇 │ 01 pyth ...

  5. Python全栈开发【基础一】

    Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与wh ...

  6. Python全栈开发【基础四】

    Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...

  7. Python全栈开发【基础三】

    Python全栈开发[基础三]  本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...

  8. Python全栈开发【基础二】

    Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...

  9. python全栈 字典数据类型相关知识及操作

    python 全栈开发 一.字典 1. 字典的概念: 字典 : dict 用 {} 来表示,   键位值数据. { key , value }    具有唯一性. 键:都必须是可哈希的     不可变 ...

随机推荐

  1. Hadoop知识汇总

    Hadoop的两大功能:海量数据存储和海量数据分析 Hadoop2的三大核心组件是:HDFS.MapperReducer和yarn 1.HDFS:分布式文件系统海量数据存储 2.MapperReduc ...

  2. 02、Unicode 汉字转码小工具

    在做 Windows app 的时候,与服务器端交互使用的是 json 格式的数据,里面的汉字内容被 编码成 unicode 格式,在调试的时候不太方便,就写了个工具,把里面的 unicode 内容转 ...

  3. CSS 命名规范总结

    CSS 命名规范总结 BEM 命名给 CSS 以及 html 提供清晰结构,命名空间提供更多信息,模块化提高代码的重用,以达到 CSS 命名语义化.可重用性高.后期维护容易.加载渲染快的要求. 首先, ...

  4. lo4j 日志级别

    日志记录器(Logger)的行为是分等级的.如下表所示: 分为OFF.FATAL.ERROR.WARN.INFO.DEBUG.TRACE.ALL或者您定义的级别.Log4j建议只使用四个级别,优先级从 ...

  5. PDF文件的加载及展示

    项目需要显示PDF文件,于是遍寻了网络,发现的方法以下几种: 1.使用UIWebView加载,没啥说的,根据文件路径,网络或者本地皆可,创建一个NSURLRequest,然后用webView加载就可以 ...

  6. 连接数据库通过配置文件app.config

    ConfigurationManager类 public static class ConfigurationManager 命名空间: System.Configuration 程序集: Syste ...

  7. Spider Studio 新版本 (码年吉祥版) - 浏览器视图 / 脚本库上线!

    各位哥哥姐姐弟弟妹妹小伙伴们春节好! 2014年对于我们程序员很重要, 因为今年是 "码" 年! SS在此重要之年到来之际热力推出两大重要功能恭贺新春: 1. 浏览器视图 以前SS ...

  8. Linux解决删除文件后空间没有释放问题_端口占用问题

    使用命令 (1) losf | grep deleted 查询所有已经删除但是还未释放空间的进程,找到容量最大的线程,kill -9 pid 然后等待容量释放 (2) netstat -ano | g ...

  9. java定时调度器解决方案分类及特性介绍

    什么是定时调度器? 我们知道程序的运行要么是由事件触发的,而这种事件的触发源头往往是用户通过ui交互操作层层传递过来的:但是我们知道还有另外一种由机器系统时间触发的程序运行场景.大家想想是否遇到或者听 ...

  10. go hmac使用

    https://github.com/danharper/hmac-examples 94 func generateSign(data, key []byte) string { 95 mac := ...