运算符、整形&字符串pycharm功能讲解

1、运算符:

算术运算:+  -  *  /  **  %  //

赋值运算:=   +=  -=  *=  /=   %=  //=

算术运算符和赋值运算符结果是值

比较运算:==   <   >   <=   >=   !=   <>

成员运算:in    not in(判断某个东西是否在某个东西里面包含)

逻辑运算:and or not

比较运算符、成员运算符、逻辑运算符结果是布尔值

and or执行顺序:

先计算括号内的

从前到后 :结果是True,遇到or,不往下走了,结果为True

结果是True,遇到and,继续往下走

        结果是False,遇到or,继续往下走

结果是False,遇到and,不往下走了,结果为False

对于比较运算(==   <   >   <=   >=   !=   <>  )或in 、not,结果都是布尔值

2、基本数据类型:

整形   int

字符串  str

列表   list

元祖    tuple

字典    dict

布尔值(真True 假False)bool

3.整形&字符串pycharm功能讲解

3.1整形 int

int 整形    long长整形

python3里所有的整形无论大小、长短都是int,python2里有int和long

-int:将字符串转换为数字,其中字符串的字符必须为数字,不能包含字母

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)

-bit_length 当前数字的二进制至少用几位来表示

1 age = 5
2 r = age.bit_length()
3 print(r)

3.2字符串 str

-capitalize 首字母大写

-casefold -lower所有字母变小写,-casefold功能更强大,很多未知的对应关系也可以变小写

-center  设置宽度,并将内容居中

test=‘alext‘v = test.center(20,‘*‘)print(v)20代指总长度,*代表空白位置填充,一个字符,可有可无

-count 去字符串中寻找子序列的出现次数,参数可以设置起始位置和结束位置

-endswith以什么结尾,输出结果是布尔值

-startswith以什么开始,输出结果是布尔值

-find 从前往后找,找到一个后,获取其位置,未找到会输出-1

test = ‘alextlert‘v = test.find(‘rt‘, 5, 8)print(v)5,8表示的是大于等于5小于8

-format 格式化,将一个字符串中的占位符替换为指定的值

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)

-format_map格式化,传入的值格式必须是{‘name‘: ‘alex‘, ‘a‘: 19}

test =  ‘i am {name}, age {a}‘v = test.format_map({‘name‘: ‘alex‘, ‘a‘: 19})print(v)

-index功能类似find,区别是Index未找到会报错

-isalnum判断字符串中是否只是包含字母和数字,输出值是布尔值

test =  ‘qwe123_==‘v = test.isalnum()print(v)

-expandtabs 断句,/t补全

test = ‘username\temail\tpassword\npiaopiao\[email protected]\t12345\npiaopiao\[email protected]\t12345‘v = test.expandtabs(20)print(v)

-isalpha 判断是否是字母&汉字,输出结果为布尔值

-isdecimal  -isdigit  -isnumeric判断一个字符串是否是数字,输出结果是布尔值,-isdecimal只能识别十进制的数, -digit能识别特殊数字,不支持中文‘二’,-isnumeric连中文都支持

test = ‘②‘v1 = test.isdecimal()v2 = test.isdigit()print(v1, v2)

-isidentifier 判断是否是标识符(字母、数字、下划线,数字不能开头),输出值是布尔值

-islower判断是否都是小写

-printable判断字符串是否有不可显示的字符,输出值 是布尔值

\t 制表符  \n换行

test = ‘asd\t‘v1 = test.isprintable()print(v1)

-isspace  判断字符串是否全都是空格,输出值是布尔值

test = ‘asd\t   ‘v1 = test.isspace()print(v1)

-title将字符串转换为标题样式,首字母全都变为大写

-istitle判断是否是标题,看首字母是否全都大写

-join将字符串中的每一个元素按照指定分隔符进行拼接*****非常重要

test = ‘we are family we are family‘v = ‘>‘.join(test)print(v)

-ljust   -rjust  填充一定宽度,字符放在最左边/最右边

test = ‘we are family‘v = test.ljust(30, "*")print(v)

zfill不能指定字符,默认用0填充

-lower  全部转换成小写

-isupper  判断是否全部是大写

-upper  全部准换成大写

-strip -lstrip -rstrip  默认去除左右空白、\t、\n,去除指定内容(优先最多匹配)

test = ‘ asfjk ‘v = test.rstrip()print(v)
test = ‘asfjk‘v = test.rstrip(‘rtk‘)print(v)

-maketrans  创建替换对应关系,  translate 替换

v = "ashkljbvnkio"m = str.maketrans(‘aeiou‘, ‘12345‘)v1 = v.translate(m)print(v1)

正则表达式可以设置是否想要分割元素,相当于partition和split的合体

-partition 只可以分割成三个元素,且包含分隔元素

-split 可以设定分成几个元素,但是没有分隔元素

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)

-splitlines 只能根据换行分割,true代表保留\n,false代表不保留\n

test = ‘asd\nsdfgk\njkleror\n‘v = test.splitlines(True)print(v)

-startswith 以……开头

test = ‘asd\nsdfgk\njkleror\n‘v = test.startswith(‘ab‘)print(v)

-swapcase  大写换小写,小写换大写

test = ‘asd\nsdfgk\njklERor\n‘v = test.swapcase()print(v)

-replace 替换

test = ‘cyxcyxcyxcyx‘v = test.replace(‘yx‘, ‘pp‘, 2)print(v)

test[ ]通过索引/下标的方式获取字符串中的某一个字符

test = ‘asd\nsdfgk\njklERor\n‘v = test[10]print(v)

test[a:*b]通过索引/下标的方式获取切片,表示取>=a  <b这个区间的子序列,若b为-1则表示取除最后一位的整个序列

test = ‘asd\nsdfgk\njklERor\n‘v = test[0:5]print(v)
test = ‘asd\nsdfgk\njklERor\n‘v = test[0:-1]print(v)

python 3:-len获取当前字符串由几个字符组成

test = ‘lalala‘v = len(test)print(v)

注:len  join  for循环  索引  切片在其他数据类型中也能用

for循环可以让字符串中的每一个字符单独呈现

test = ‘获取当前字符串由几个字符组成‘for cyx in test:    print(cyx)

也可以用while循环实现

test = ‘获取当前字符串由几个字符组成‘index = 0while index < len(test):    cyx = test[index]    print(cyx)    index +=1

for 循环也支持break和continue

for cyx in test:    print(cyx)    break
for cyx in test:    continue    print(cyx)

11个必须记住:join  split  find  strip  upper  lower  replace  len  for 循环  索引  切片

字符串在内存中一旦创建就不可修改,如果要修改或拼接,那在内存中会重新创建一个新的字符串(所有语言都是这样的)

-range帮助创建连续数字或通过设置步长来创建不连续的的数字

在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 = 5v = 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 + v2print(v)

15、计算用户输入的内容中有几个十进制小数?几个字母?

如:

content = input(‘请输入内容:‘) # 如:asduiaf878123jkjsfd--‐213928

b = input(‘请输入内容‘)count = 0for item in b:    if item.isalpha() == True or item.isdecimal() == True:        count =count + 1    else:        count = countprint(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 checkcodecount = 0while 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 checkcodewhile 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

时间: 2024-11-06 22:22:44

运算符、整形&字符串pycharm功能讲解的相关文章

C语言标准库函数与功能讲解

1 数学函数 数学库函数声明在 math.h 中,主要有: abs(x) 求整型数x 的绝对值 cos(x) x(弧度)的余弦 fabs(x) 求浮点数x 的绝对值 ceil(x) 求不小于x 的最小整数 floor(x) 求不大于x 的最小整数 log(x) 求x 的自然对数 log10(x) 求x 的对数(底为10) pow(x, y) 求x 的y 次方 sin(x) 求x(弧度)的正弦 sqrt(x) 求x 的平方根 2 字符处理函数 在 ctype.h 中声明,主要有: int isdi

【Shell脚本学习10】Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等

Bash 支持很多运算符,包括算数运算符.关系运算符.布尔运算符.字符串运算符和文件测试运算符. 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用. expr 是一款表达式计算工具,使用它能完成表达式的求值操作. 例如,两个数相加: #!/bin/bash val=`expr 2 + 2` echo "Total value : $val" 运行脚本输出: Total value : 4 两点注意: 表达式和运算符之间要有空格,

C#下利用正则表达式实现字符串搜索功能的方法(转)

关键字:正则表达式.元字符.字符串.匹配: 1.正则表达式简介:正则表达式提供了功能强大.灵活而又高效的方法来处:.NET框架正则表达式并入了其他正则表达式实现的: 2.字符串搜索:正则表达式语言由两种基本字符类型组成:原义(正常:一般表达式语言是一种可以编写搜索表达式的语言: 3..NET框架的正则表达式类:下面通过介绍.NET框架的正则表达式类,熟悉一下: 1.正则表达式简介 正则表达式提供了功能强大.灵活而又高效的方法来处理文本.正则表达式的全面模式匹配表示法可以快速地分析大量的文本以找到

Shell 脚本知识回顾 (三) —— 替换、运算符、字符串、数组

一.Shell替换:Shell变量替换,命令替换,转义字符 如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. 举个例子: #!/bin/bash a=10 echo -e "Value of a is $a \n" 运行结果: Value of a is 10 这里 -e 表示对转义字符进行替换.如果不使用 -e 选项,将会原样输出: Value of a is 10\n 下面的转义字符都可以用在 echo 中: 转义字符

shell运算符之 关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符

shell运算符有很多,关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符 1,算术运算符 原声bash 不支持简单的算术运算,可以使用expr 工具 两点注意: 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样. 完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边. #!/bin/basha=10b=20rst=`expr 2 + 2`echo '2+2 =' ${rst} rst=`exp

Java带有运算符的字符串转换为Long型

由于项目需要在配置文件中配置一个刷新时间,但是配置文件中取出来来的数据肯定是字符串,然后要将该带有运算符的字符串转换为Long型.具体代码如下: 配置文件system.properties中: 1 reflash_time = (2*60*1000) Java代码取出该值: 1 public static final String REFLASHTIME = "reflash_time"; 2 3 public String reflashtime; 4 5 reflashtime =

Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等

Bash 支持很多运算符,包括算数运算符.关系运算符.布尔运算符.字符串运算符和文件测试运算符. 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用. 原生的bash到底支持不支持数学计算我不清楚了,不过也这样做到一样的效果: #!/bin/bash val=$(( 2 + 2)) echo 'Total value :'$val val=$[ 2 + 2 ] echo 'Total value :'$val 我想现在版本的bash原生是支

不受限字符串函数功能的实现

1.字符串长度函数原型: size_t strlen(char const *string); strlen()计算的长度不包括'\0'. strlen返回的值是一个无符号的整型,所以像if(strlen(x)-strlen(y)>=0)的结果是绝对为真的,将达不到你想要的结果. 计算字符串长度的实现: #include<stdio.h> #include<stdlib.h> int my_strlen(char *p) {                  int coun

设置-安全-手机加密功能讲解

        此功能可以用来加密手机上的所有数据,包括 Google 帐户.应用数据.音乐和其他媒体信息.已下载的信息等.如果执行了加密操作,您每次开机时都必须输入数字 PIN 或密码. 请注意,上述 PIN 或密码与您在未加密状态下解锁手机时所用的相同,无法单独设置. 警告:加密操作无法撤消.要将手机恢复为未加密状态,唯一的方法是恢复出厂设置,但这会清除您的所有数据. 如果您的手机遭窃,加密可提供额外保护,某些组织可能要求或建议使用加密.在启用加密前,请先咨询您的系统管理员.很多情况下,您设