算术运算:+ - * / ** % //
赋值运算:= += -= *= /= %= //=
算术运算符和赋值运算符结果是值
比较运算:== < > <= >= != <>
成员运算:in not in(判断某个东西是否在某个东西里面包含)
逻辑运算:and or not
比较运算符、成员运算符、逻辑运算符结果是布尔值
and or执行顺序:
先计算括号内的
从前到后 :结果是True,遇到or,不往下走了,结果为True
结果是True,遇到and,继续往下走
结果是False,遇到or,继续往下走
结果是False,遇到and,不往下走了,结果为False
对于比较运算(== < > <= >= != <> )或in 、not,结果都是布尔值
整形 int
字符串 str
列表 list
元祖 tuple
字典 dict
布尔值(真True 假False)bool
int 整形 long长整形
python3里所有的整形无论大小、长短都是int,python2里有int和long
1 a = ‘123‘ 2 print(type(a),a) 3 b = int(a) 4 print(type(b),b)
1 num = ‘a‘ 2 b = int(num, base=16) 3 print(b)
1 age = 5 2 r = age.bit_length() 3 print(r)
test=‘alext‘
v = test.center(20,‘*‘)
print(v)
20代指总长度,*代表空白位置填充,一个字符,可有可无
test = ‘alextlert‘
v = test.find(‘rt‘, 5, 8)
print(v)
5,8表示的是大于等于5小于8
test = ‘i am {name}, age {a}‘
v = test.format(name = ‘alex‘, a=19)
print(v)
test = ‘i am {0}, age {1}‘
v = test.format(‘alex‘, 19)
print(v)
test = ‘i am {name}, age {a}‘
v = test.format_map({‘name‘: ‘alex‘, ‘a‘: 19})
print(v)
test = ‘qwe123_==‘
v = test.isalnum()
print(v)
test = ‘username\temail\tpassword\npiaopiao\t1101@qq.com\t12345\npiaopiao\t1101@qq.com\t12345‘
v = test.expandtabs(20)
print(v)
-isalpha 判断是否是字母&汉字,输出结果为布尔值
test = ‘②‘
v1 = test.isdecimal()
v2 = test.isdigit()
print(v1, v2)
\t 制表符 \n换行
test = ‘asd\t‘
v1 = test.isprintable()
print(v1)
test = ‘asd\t ‘
v1 = test.isspace()
print(v1)
test = ‘we are family we are family‘
v = ‘>‘.join(test)
print(v)
test = ‘we are family‘
v = test.ljust(30, "*")
print(v)
test = ‘ asfjk ‘
v = test.rstrip()
print(v)
test = ‘asfjk‘
v = test.rstrip(‘rtk‘)
print(v)
v = "ashkljbvnkio"
m = str.maketrans(‘aeiou‘, ‘12345‘)
v1 = v.translate(m)
print(v1)
test = "ashklsjbvnskio"
v1 = test.partition(‘s‘)
v2 = test.rpartition(‘s‘)
v3 = test.split(‘s‘)
v4 = test.split(‘s‘, 2)
v5 = test.rsplit(‘s‘, 2)
print(v1, v2, v3, v4, v5)
test = ‘asd\nsdfgk\njkleror\n‘
v = test.splitlines(True)
print(v)
test = ‘asd\nsdfgk\njkleror\n‘
v = test.startswith(‘ab‘)
print(v)
test = ‘asd\nsdfgk\njklERor\n‘
v = test.swapcase()
print(v)
test = ‘cyxcyxcyxcyx‘
v = test.replace(‘yx‘, ‘pp‘, 2)
print(v)
test = ‘asd\nsdfgk\njklERor\n‘
v = test[10]
print(v)
test = ‘asd\nsdfgk\njklERor\n‘
v = test[0:5]
print(v)
test = ‘asd\nsdfgk\njklERor\n‘
v = test[0:-1]
print(v)
test = ‘lalala‘
v = len(test)
print(v)
注:len join for循环 索引 切片在其他数据类型中也能用
test = ‘获取当前字符串由几个字符组成‘
for cyx in test:
print(cyx)
也可以用while循环实现
test = ‘获取当前字符串由几个字符组成‘
index = 0
while index < len(test):
cyx = test[index]
print(cyx)
index +=1
for cyx in test:
print(cyx)
break
for cyx in test:
continue
print(cyx)
11个必须记住:join split find strip upper lower replace len for 循环 索引 切片
字符串在内存中一旦创建就不可修改,如果要修改或拼接,那在内存中会重新创建一个新的字符串(所有语言都是这样的)
在python2中立即创建100个数,但在python3中不会立即创建,只有在对其进行for循环时才会创建,属于一个优化机制
v = range(100)
print(v)
v = range(100)
for item in v:
print(item)
v = range(0, 100, 5)
for item in v:
print(item)
5是步长
e.g.将文字对应的索引打印出来
test = input(‘>>>‘)
for item in range(0, len(test)):
print(item, test[item])
1、执行 Python 脚本的两种方式
python 解释器+文件名
pyhton 解释器直接运行
./1.py(linux系统,赋予可执行权限)
2、简述位、字节的关系
1字节=8位
计算机处理时以一个字节为单位,存储时以位为单位
3、简述 ascii、unicode、utf--‐8、gbk 的关系
ascii 8位
Unicode 至少16位
utf8 能用多少位就用多少位
gbk 适用于中文
4、请写出 “李杰” 分别用 utf--‐8 和 gbk 编码所占的位数
6字节
4字节
python 3计算字符 len(‘理解’)=2 for 循环时输出的时两个字符
python2计算字节 len(‘理解’)= 6 for循环时输出的是六个字节
5、Pyhton 单行注释和多行注释分别用什么?
#
""" """(推荐用
‘‘‘ ‘‘‘
6、声明变量注意事项有那些?
数字、字母、下划线
不能数字开头
一定不能跟关键字重复
推荐不能用python内置的东西,因为一用会把原来的内置东西覆盖掉
7、如有变量 n1 = 5,请使用 int 的提供的方法,得到该变量最少可以用多少个二进制位表示?
n1 = 5
v = n1.bit_length()
print(v)
8、布尔值分别有什么?
True False(python里首字母要大写)
true false(javascript里首字母小写)
‘‘空字符串是假
‘ ‘只要字符串里有东西即为真
0假
其他真
-int 字符串转换为数字
-str 可以实现数字转换成字符串
-bool 数字或 字符串转换为布尔值
总结:新值=int/str/bool(...)
9、阅读代码,请写出执行结果
a = "alex"
b = a.capitalize()
print(a)
print(b)
请写出输出结果:
alex Alex
10、写代码,有如下变量,请按照要求实现每个功能
name = " aleX"
a. 移除 name 变量对应的值两边的空格,并输入移除后的内容
name = " aleX"
v = name.strip()
print(v)
b. 判断 name 变量对应的值是否以 "al" 开头,并输出结果
name = " aleX"
v = name.startswith(‘al‘)
print(v)
c. 判断 name 变量对应的值是否以 "X" 结尾,并输出结果
name = " aleX"
v = name.endswith(‘X‘)
print(v)
d. 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
name = " aleX"
v = name.replace(‘l‘, ‘p‘)
print(v)
e. 将 name 变量对应的值根据 “l” 分割,并输出结果。
name = " aleX"
v = name.partition(‘l‘)
print(v)
name = " aleX"
v = name.split(‘l‘)
print(v)
f. 请问,上一题 e 分割之后得到值是什么类型(可选)?
带[]是列表
g. 将 name 变量对应的值变大写,并输出结果
name = " aleX"
v = name.upper()
print(v)
h. 将 name 变量对应的值变小写,并输出结果
name = " aleX"
v = name.lower()
print(v)
name = " aleX"
v = name.casefold()
print(v)
i. 请输出 name 变量对应的值的第 2 个字符?
name = " aleX"
v = name[1]
print(v)
j. 请输出 name 变量对应的值的前 3 个字符?
name = " aleX"
v = name.rstrip(‘eX‘)
print(v)
k. 请输出 name 变量对应的值的后 2 个字符?
name = " aleX"
v = name.lstrip(‘ al‘)
print(v)
l. 请输出 name 变量对应的值中 “e” 所在索引位置?
name = " aleX"
for item in range(0, len(name)):
if name[item] == ‘e‘:
print(item)
else:
pass
m. 获取子序列,仅不包含最后一个字符。如: oldboy 则获取 oldbo; root 则获取 roo
test = input(‘>>>‘)
v = test[0: -1]
print(v)
11、字符串是否可迭代对象?如可以请使用 for 循环每一个元素?
是
name = " aleX"
for item in name:
print(item)
可迭代对象=可以被for进行循环获取
类、类型:str int bool
对象:根据str类型创建一个对象,对象赋值给s1变量
s1 = ‘alex‘
12、请用代码实现:
a. 利用下划线将列表的每一个元素拼接成字符串,li = "alexericrain"
b. 利用下划线将列表的每一个元素拼接成字符串,li = [‘alex‘, ‘eric‘, ‘rain‘](可选)
li = ‘alexericrain‘
v = ‘_‘.join(li)
print(v)
li = [‘alex‘, ‘eric‘, ‘rain‘]
v = ‘_‘.join(li)
print(v)
13、Python2 中的 range 和 Python3 中的 range 的区别?
在python2中range直接创建数放在内存里,xrange可以for循环一个创建时一个
但在python3中不会立即创建,只有在对其进行for循环时才会创建
for i in range(100, 0, -1) 从大到小创建
14、实现一个整数加法计算器:
如:
content = input(‘请输入内容:‘) # 如: 5+9 或5+ 9或 5 + 9
content = input(‘请输入内容:‘)
v1, v2 = content.split(‘+‘)
v1 = int(v1)
v2 = int(v2)
v = v1 + v2
print(v)
15、计算用户输入的内容中有几个十进制小数?几个字母?
如:
content = input(‘请输入内容:‘) # 如:asduiaf878123jkjsfd--‐213928
b = input(‘请输入内容‘)
count = 0
for item in b:
if item.isalpha() == True or item.isdecimal() == True:
count =count + 1
else:
count = count
print(count)
pycharm里code 栏里有一个reformat code可以纠正格式
16、简述 int 和 9 等数字 以及 str 和 "xxoo" 等字符串的关系?
int str属于类
9 "xxoo" 属于对象
17、制作趣味模板程序
需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意现实
如:敬爱可亲的 xxx,最喜欢在 xxx 地方干 xxx
name = input(‘用户名‘)
place = input(‘地点‘)
hobby = input(‘爱好‘)
test = ‘敬爱可亲的{0},最喜欢在{1}干{2}‘
v = test.format(name, place, hobby)
print(v)
18.制作随机验证码,不区分大小写
流程:
--‐ 用户执行程序
--‐ 给用户显示需要输入的验证码
--‐ 用户输入的值
用户输入的值和显示的值相同时显示正确信息;否则继续生成随机验证码继续等待用户输入生成随机验证码代码示例:
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
count = 0
while count == count:
code = check_code()
print(code)
user = input(‘请输入验证码:‘)
v = user.upper()
if v == code:
print(‘欢迎进入‘)
break
else:
count = count + 1
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)
user = input(‘请输入验证码:‘)
v = user.upper()
if v == code:
print(‘欢迎进入‘)
break
19、开发敏感词语过滤程序,提示用户输入内容,如果用户输入的内容中包含特殊的字符:
如 "苍老师" "东京热",则将内容替换为 ***
content = input(‘>>>‘)
v = content.replace(‘苍老师‘, ‘***‘)
v2 = v.replace(‘东京热‘, ‘***‘)
print(v2)
20、制作表格
循环提示用户输入:用户名、密码、邮箱 (要求用户输入的长度不超过 20 个字符,如果超过则只有前 20 个字符有效)如果用户输入 q 或 Q 表示不再继续输入,将用户输入的内容以表格形式打印
s = ‘‘
while True:
v1 = input(‘用户名:‘)
v2 = input(‘密码:‘)
v3 = input(‘邮箱:‘)
if len(v1) > 20:
v1 = v1[0:20]
if len(v2) > 20:
v1 = v1[0:20]
if len(v3) > 20:
v1 = v1[0:20]
template = ‘{0}\t{1}\t{2}\n‘
v = template.format(v1, v2, v3)
s =s + v
if v1 == ‘q‘ or v1 == ‘Q‘:
break
if v2 == ‘q‘ or v2 ==‘Q‘:
break
if v3 == ‘q‘ or v3 == ‘Q‘:
break
print(s.expandtabs(20))
原文:https://www.cnblogs.com/yongpiaopiao/p/8798796.html