精华内容
下载资源
问答
  • 字符串有关基础与用法: 字符串是不可变值 string.gsub改变字符串中某些部分 还会在第二个返回值中返回发生替换次数 a = “one string” ...使用一对双引号或单引号声明字符串常量 a = "a line" a = 'a line' ...

    字符串有关基础与用法:
    字符串是不可变值
    string.gsub改变字符串中的某些部分
    还会在第二个返回值中返回发生替换的次数
    a = “one string”
    b = string.gsub(a, “one”,another)

    #获取字符串长度

    a = "Hello"
    print(#a) -->5
    

    使用一对双引号或单引号声明字符串常量

    a = "a line"
    a = 'a line'
    

    两者唯一的区别是,双引号声明的字符串中出现单引号时,单引号不用转义
    使用单引号声明的字符串中出现双引号时,双引号不用转义

    lua中的字符串支持C语言风格的转义字符
    如:

    print("Hello\n")
    

    字符串可以进行自动转换
    如:

    print(10 .. 20) -->1020
    

    注意:数值和点之前必须使用空格分开,否则会把第一个点当成小数点
    任何有字符串参与的算术运算都被当作浮点运算处理

    tonumber显示地将字符串转换成数值,不满足条件是返回nil,否则返回对应的整形值或浮点类型值,还可以在添加一个参数指明使用二进制到三十六进制之间的任意进制

    tonumber(" -3") -->-3
    tonumber(" -10e") --> nil
    tonumber("fff",16) --> 4095
    tonumber("987",8) --> nil
    

    tostring将数值转换成字符串

    print(tosting(10) == "10") -->true
    

    注意:比较操作符不会对操作数进行强制类型转换
    比如 2<15为真 “2” < "15"却为假.
    而2比"15"则会抛出异常

    string.len(s):返回字符串s的长度
    string.rep(s,n):返回将字符串s重复n次的结果
    string.reverse(s):将字符串翻转
    string.lower(s)、string.upper(s) :将字符串转换成小写或者大写
    string.sub(s,i,j): 从字符串s中提取到第i个到第j个字符(包括i,j在内,字符串索引从1开始),此外还支持负数索引,-1代表最后一个字符,-2代表倒数第二个字符.注意lua字符串不可变的,sub方法只会返回一个新字符串.

    string.char接受零个或多个整数作为参数,然后将每个整数转换成对应的字符,返回由这些字符连接而成的字符串

    i = 99
    print(string.char(i,i+1,i+2)) -->cde
    

    string.byte(s,i)返回字符串s中第i个字符的内部数值表示,默认返回第一个字符

    print(string.byte("abc")) -->97
    print(string.byte("abc",2)) -->98
    print(string.byte("abc",-1)) -->99
    print(string.byte("abc",1,2)) -->97 98
    

    string.format类似C语言的printf
    用法如下

    string.format("x = %d y = %d", 10 ,20) --> x = 10 y = 20
    string.format("pi = %.4f", math.pi) -->pi = 3.1416
    

    使用冒号操作符调用字符串函数可以更方便
    如 string.sub(s,i,j)可以重写为s:sub(i,j) , string.upper(s)重写为s:upper()

    string.find用于在指定的字符串中进行模式搜索

    string.find("hello world", "wor") --> 7 9
    string.find("hello world", "war") --> nil
    

    练习4.1
    思路1.使用string.sub

    s = "<![CDATA[Hello World]]>"
    s = string.sub(s,10,-4)
    

    思路2.使用string.gsub

    s = "<![CDATA[Hello World]]>"
    s = string.gsub(s,"%p","")
    s = string.gsub(s,"CDATA","")
    

    练习4.2
    使用双引号的方式,这样单引号可以不用转义

    练习4.3
    思路:字符串拼接

    function insert(s1,start,s2)
    	if(start == 1) then
    	temp = s2 .. s1
    	else
    	temp = s1:sub(1,start-1) .. s2 .. s1:sub(start,-1)
    	end
    	return temp
    end
    

    练习4.5
    思路:字符串拼接

    function remove(s1,start,len)
    	return s1:sub(1,start-1) .. s1:sub(start+len,string.len(s1))
    end
    

    练习4.7
    思路:通过reverse反转字符串来判断和之前的是否相等

    function ispali(s)
    	return string.reverse(s) == s
    end
    

    练习4.8

    function ispali(s)
        s = string.gsub(s,"%p","")
    	s = string.gsub(s,"%s","")
    	print(s)
    	return string.reverse(s) == s
    end
    
    展开全文
  • # 在Python中,双引号和单引号是可以互换,二者用法相同 # 但单引号一般用来创建简短字符串,如'a'、'snow' print("\n" * 3) print("*" * 20) print("Mary had a little lamb.") # print the front string and ...

    代码如下

    # 在Python中,双引号和单引号是可以互换的,二者用法相同
    # 但单引号一般用来创建简短的字符串,如'a'、'snow'
    print("\n" * 3)
    print("*" * 20)
    print("Mary had a little lamb.")
    # print the front string and set a couple of {}
    # and then .format('snow') will be seen to the text in the {}
    print("Its fleece was white as {}.".format('snow'))
    print("And everywhere that Mary went.")
    # print ten dot
    print("." * 10) # what'd that do
    
    #set end1 to ten C
    end1 = "C"*10
    end2 = "h"
    end3 = 'e'
    end4 = 'e'
    end5 = "s"
    end6 = "e"
    end7 = "B"
    end8 = "u"
    end9 = "r{}"
    end10 = "g"
    end11 = "e"
    end12 = "r {}"
    
    # watch that comma at the end. try removing it to see what happens
    # connect the six one by one zimu and set the end to a space
    # And print them
    print(end1 + end2 + end3 + end4 + end5 + end6, end=" ")
    #   connect the six one by one zimu and print them
    print(end7 + end8 + end9.format("") + end10 + end11 + end12.format('ssssnow'))
    print("*" * 20)
    print("\n" * 3)
    

    运行如下

    PS E:\pytest> python .\ex4.py
    
    
    
    
    ********************
    Mary had a little lamb.
    Its fleece was white as snow.
    And everywhere that Mary went.
    ..........
    CCCCCCCCCCheese Burger ssssnow
    ********************
    
    
    
    

     

    展开全文
  • intern()的使用 intern是一个native方法,...如果不是用双引号声明的string对象,可以使用string提供的intern方法:intern方法会从字符串常量池中查询当前字符串是否存在,若不存在就会将当 前字符串放入常量池中。 比

    intern()的使用

    intern是一个native方法,调用的是底层C的方法

    字符串池最初是空的,由String类私有地维护。在调用intern方法时,如果池中已经包含了由equals(object)方法确定的与该字符串对象相等的字符串,则返回池中的字符串。否则,该字符串对象将被添加到池中,并返回对该字符串对象的引用。

    如果不是用双引号声明的string对象,可以使用string提供的intern方法:intern方法会从字符串常量池中查询当前字符串是否存在,若不存在就会将当 前字符串放入常量池中。

    比如:

    String myInfo = new string("I love atguigu").intern();
    

    也就是说,如果在任意字符串上调用string.intern方法,那么其返回结果所指向的那个类实例,必须和直接以常量形式出现的字符串实例完全相同。因此,下列表达式的值必定是true

    ("a"+"b"+"c").intern()=="abc"
    

    通俗点讲,Interned string就是确保字符串在内存里只有一份拷贝,这样可以节约内存空间,加快字符串操作任务的执行速度。注意,这个值会被存放在字符串内部池(String Intern Pool)

    public class TestX {
        public static void main(String[] args) {
            String s3 = new String("1") + new String("1");
            s3.intern();
            String s4 = "11";
            System.out.println(s3 == s4);
        }
    }
    

    1.该段代码在JDK6中输出为false,在JDK7/8中输出为true
    2.因为JDK1.6中,将这个字符串对象尝试放入串池。

    • 如果串池中有,则并不会放入。返回已有的串池中的对象的地址
    • 如果没有,会把此对象复制一份,放入串池,并返回串池中的对象地址

    JDK1.7起,将这个字符串对象尝试放入串池。

    把对象变为了对象引用地址

    • 如果串池中有,则并不会放入。返回已有的串池中的对象的地址
    • 如果没有,则会把对象的引用地址复制一份,放入串池,并返回串池中的引用地址

    3.在JDK7/8中,这里使用了intern(),相当于在堆存放了new String(“11”)的引用地址,
    而S4用双引号定义后,就会在常量池中寻找到该引用地址,然后指向该引用地址,然后该引用地址又指向new String(“11”)的地址。而S3则直接指向该new String(“11”),S3和S4的实际地址相同,所以输出为true

    在JDK6中,使用了intern,相当于又在字符串常量池中创建了一个new String(“11”),那么S4就会指向字符串常量池中的new String(“11”),而S3指向的是原本字符串常量池外的new String(“11”),那么此时他们实际地址不同,所以输出为false

    展开全文
  • 1 #方法一:使用三个单引号2 str = '''wqeyiwyyeri,wrqre3 qereqerqr4 rqrqereq5 qerqrqre6 '''7 print(str)89 #方法二:在小括号中使用单引号或者双引号,后面用换行符“\n”10 str1 =(11 'riuqiurieu\n'12 ...

    测试题:

    0. 还记得如何定义一个跨越多行的字符串吗(请至少写出两种实现的方法)?

    1 #方法一:使用三个单引号

    2 str = '''wqeyiwyyeri,wrqre3 qereqerqr4 rqrqereq5 qerqrqre6 '''

    7 print(str)8

    9 #方法二:在小括号中使用单引号或者双引号,后面用换行符“\n”

    10 str1 =(11 'riuqiurieu\n'

    12 'fhdjhfjdshk,\n'

    13 "hfjkhsdjhfjskh\n"

    14 )15 print(str1)

    1. 三引号字符串通常我们用于做什么使用?

    三引号字符串在不赋值的情况下,通常当作跨行注释使用,例如:

    1 '''这个在打印的时候看不到,主要可以用在代码编写过程的注释的作用。2 这样说,应该差不多。3 嗯哼~4 '''

    5 print(1)

    2. file1 = open('C:\windows\temp\readme.txt', 'r') 表示以只读方式打开“C:\windows\temp\readme.txt”这个文本文件,但事实上这个语句会报错,知道为什么吗?你会如何修改?

    会报错是因为在字符串中,约定“\t”和“\r”分别表示“横向制表符(TAB)”和“回车符”(详见:https://www.cnblogs.com/hcxy2007107708/articles/10010196.html),因此并不会按照我们计划的路径去打开文件。

    我们只需要使用原始字符串操作符(R或r)即可:

    1 #‘r’表示按照原始字符串进行查找即可。

    2 file1 = open(r'C:\windows\temp\readme.txt', 'r')

    3. 有字符串:str1 = '鱼C资源打包',请问如何提取出子字符串:'www.fishc.com'

    使用分片的方法:

    1 str1 = ''

    2 #str1[16]=w,str1[28]=m

    3 str2 = str1[16:29]4 print(str2)

    4. 如果使用负数作为索引值进行分片操作,按照第三题的要求你能够正确目测出结果吗?

    ok! try it .

    1 str1 = ''

    2 str2 = str1[16:29]3 lenght =len(str1)4 print(lenght)5 str3 = str1[16-51:29-51]6 print(str2)7 print(str3)

    5. 还是第三题那个字符串,请问下边语句会显示什么内容?

    >>> str1[20:-36]

    复制代码

    会显示:空

    6. 据说只有智商高于150的鱼油才能解开这个字符串(还原为有意义的字符串):

    str1 = 'i2sl54ovvvb4e3bferi32s56h;$c43.sfc67o0cm99'

    我可能是个“傻子”

    猜测肯定是哪个  i love fishc.com

    动动手:0. 请写一个密码安全性检查的代码:check.py

    # 密码安全性检查代码

    #

    # 低级密码要求:

    #   1. 密码由单纯的数字或字母组成

    #   2. 密码长度小于等于8位

    #

    # 中级密码要求:

    #   1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合

    #   2. 密码长度不能低于8位

    #

    # 高级密码要求:

    #   1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合

    #   2. 密码只能由字母开头

    #   3. 密码长度不能低于16位

    程序演示:

    到目前为止,得到的最OK的代码,可能有点繁琐,也不知道应该怎样简化和完善,有看到的朋友可以给出自己的意见和想法哟~

    1 #密码安全性检查 check.py

    2 password = input("请输入需要检查的密码组合:")3 lenght =len(password)4 symbols = r'''~!@#$%^&*_=-/,.?<>;:[]{}|\()'''

    5 alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

    6 numbers = "0123456789"

    7 temp1 = '''高级密码要求:8 1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合9 2. 密码只能由字母开头10 3. 密码长度不能低于16位11 '''

    12 temp2 = '''\t您的密码安全级别评定为:'''

    13 temp3 ="请继续保持"

    14 require = '''\t低级密码要求:由单纯的数字或字母组成,长度小于等于8位;15 中级密码要求:由数字、字母或特殊字符任意两种组合,密码长度不能低于8位16 高级密码要求:由数字、字母及特殊字符三种组合,密码只能由字母开头,密码长度不能低于16位17 '''

    18 i=019 #检查password中组成元素:

    20 while 1:21 for each inpassword:22 if each insymbols:23 i +=1

    24 break

    25 for each inpassword:26 if each inalphabet:27 i +=1

    28 break

    29 for each inpassword:30 if each innumbers:31 i +=1

    32 break

    33

    34 deflow_password( ):35 result = temp2 +"低"

    36 print(result)37 print(temp1)38 defmid_password( ):39 result = temp2 +"中"

    40 print(result)41 print(temp1)42 defhigh_password( ):43 result = temp2 +"高"

    44 print(result)45 print(temp3)46 while (password.isspace() or lenght ==0):47 password =input( "\t密码输入错误,原因:空格或未输入。\n\t重新输入要检查的密码组合:")48 lenght =len(password)49 break

    50

    51 while (i !=1 and lenght <= 8) :52 password =input( "\t密码输入不符合要求。"+"\n\t密码要求:\n"+require+"\n\t重新输入要检查的密码组合:")53 lenght =len(password)54 break

    55 while (i ==1 and lenght >8):56 password =input( "\t密码输入不符合要求。"+"\n密码要求:\n"+require+"\n\t重新输入要检查的密码组合:")57 lenght =len(password)58 break

    59 if lenght <=8 and i ==1:60 low_password()61 break

    62 elif i==3 and lenght > 16 and password[0] inalphabet:63 high_password()64 break

    65 else:66 mid_password()67 break

    1. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!

    遍历输入的代码;

    如何验证密码的类型,以及简化逻辑语句;

    特殊情况的处理,以及陷入循环,和break  and continue的使用;

    一轮检查结束后,进入下一轮的检查  不是直接结束

    应该如何操作········

    1.break

    用break语句可以使流程跳出switch语句体,也可以用break语句在循环结构终止本层循环体,从而提前结束本层循环。

    使用说明:

    (1)只能在循环体内和switch语句体内使用break;

    (2)当break出现在循环体中的switch语句体内时,起作用只是跳出该switch语句体,并不能终止循环体的执行。若想强行终止循环体的执行,可以在循环体中,但并不在switch语句中设置break语句,满足某种条件则跳出本层循环体。

    2.continue

    continue语句的作用是跳过本次循环体中余下尚未执行的语句,立即进行下一次的循环条件判定,可以理e799bee5baa6e997aee7ad94e58685e5aeb931333366303063解为仅结束本次循环。

    注意:continue语句并没有使整个循环终止。

    展开全文
  • 方法学python 习题10

    2021-01-09 15:30:44
    习题10 python:3.9 这就是打出来结果,但是第一遍打的一模一样就是无法运行也不知道是为什么,第一遍是打完保存,而第二...2.使用 ‘’’ (三个单引号)取代三个双引号,看看效果是不是一样? 这里效果一样
  • 习题0-准备工作 1. 在使用终端创建目录这一块遇到了困难 以下为解决方式: 退出python程序才可以进行创建目录操作 创建目录 mkdir 文件夹名(make a ...3.print字符串内容要加双引号 习题1 第一个程...
  • 方法一:三重双引号 str1="""春眠不觉晓, 处处闻啼鸟. 也来风雨声, 花落知多少. """ 方法2:元组 str = ('春眠不觉晓. 处处闻啼鸟. 也来风雨声, 花落知多少.') 方法3:直接定义 str = '春眠不觉晓. 处处闻啼鸟. 也...
  • #将传入数据都当成一个字符串,会对自动传入数据加一个双引号。 KaTeX parse error: Expected 'EOF', got '#' at position 20: …数据直接显示生成在sql中。 #̲方式能够很大程度防止sql注入…方式无法防止Sql...
  • String类对象创建后不能修改,由0或多个字符组成,包含在一对双引号之间。 二、String类对象创建 字符串声明:String stringName; 字符串创建:stringName = new String(字符串常量);或stringName = 字符串常量; ...
  • 虽然标点符号种类和功能繁多,但实际上在考试的过程中不可能面面俱到,而且很多标点符号的使用方法比较简单易懂,所以真题当中考查的标点符号就集中体现在几个标点符号上,这其中包括我们之前学习过的顿号、分号,也...
  • 双引号括起来是字符串,如“Shanghua”。字符型数据类型能向int数据类型自动转换,而字符串不可以。选项A、B、D都含有字符串。因此,本题的正确答案是C。 107. 在switch(expression)语句中,expression数据...
  • ,我在使用 wpa_cli 这个命令写入wifi信息时候感觉每次都要打很长代码 于是写了一个bash脚本想使得写入更加轻松,但是在写入时候遇到了变量调用问题 希望大家能看一看哪里出了问题 代码大概如下: ...
  • String面试

    2020-09-03 19:49:27
    String面试 ...(2)使用双引号直接创建 使用这种方式时,JVM去字符串常量池找有没有值相等字符串,如 果有,则返回找到字符串引用。 否则创建一个新字符串对象并存储在字符串常量池 3.写一个方法来判
  • 算法学习之基础

    2013-09-04 20:51:00
    基础之字符串题目:把手放在键盘上,稍不注意就会往右错一位。Q会变成W,J会变成K。输入一个错位后敲出的字符串,输出打字员...题目:TeX括号在TeX中,左双引号是“,右双引号是”,输入一篇包含双引号的文章,你的...
  • JQuery之笔试

    2020-05-29 15:04:45
    当$( )参数为DOM对象时,则该对象不需要使用双引号进行包裹 B .在JQuery中,$( )等价于JQuery( ) C .当DOM对象转化为JQuery对象后,就可以调用JQuery的方法 D .$( )作用是将DOM对象转化为Window对象 正确答案:D...
  • 阅读《笨方法学python3》,归纳的知识点习题1:安装环境+练习 print函数使用 主要区别双引号和单引号的区别习题2:注释符号#习题3:运算符优先级,跟C/C++, Java类似以下运算符优先级:从下往下以此递增,同行为...
  • Python可以使用双引号( " )来表示字符串 Python可以使用三引号( ''' 或 """ )来表示跨越多行且需要保留格式字符串 3 .Python权限修饰正确是 标识符开头无下划线,该变量或方法为公有权限 标识符开头双...
  • 方法学python3

    2019-09-28 17:40:52
    习题1:安装环境+练习 print函数使用 主要区别双引号和单引号的区别 习题2:注释符号# 习题3:运算符优先级,跟C/C++, Java类似 以下运算符优先级:从下往下以此递增,同行为相同优先级Lambda ...
  • 1、String两种创建方式区别 String str1 = "abc"; String str2 = new String("abc"); sout(str1 == str2);//false 其中,第一种方式是从常量池中获取对象,第二种方式是直接... 直接使用双引号声明出来 St...
  • python面试总结(1)

    千次阅读 2019-03-12 20:53:00
    1、python常用数据类型。 int、float、str、set、list、dict、tuple、frozenset、bool、None。...我们用三个单引号或双引号来声明docstring。 要想获取一个函数docstring,我们使用_doc_...
  • ”(全文阅读耗时约:5min)搜索技巧一 精确搜索这个方法很简单,就是你在搜索时候,给关键词加上双引号双引号有啥作用腻?你可以简单理解成双引号就是一种限制,就是我只要搜索引号里面几个字,除了引号里面...
  • 小白XSS解题过程

    2021-04-12 08:29:27
    (判断value使用的是单引号还是双引号方法:输入 ’ " > 三个字符测试闭合,查看文本框内内容 文本框无内容就是单引号,内容为 ’ 即为双引号) 直接使用基础XSS代码即可 <script>alert(1)</script...
  • 我们用三个单引号或双引号来声明docstring。 >>> def sayhi(): """ 用该函数打印Hi """ print("Hi") >>> sayhi() Hi 要想获取一个函数docstring,我们使用_doc_属性 ...
  • python面试总结_python面试总结(1)

    千次阅读 2020-12-04 11:09:18
    1、python常用数据类型。int、float、str、set、list、dict、tuple、frozenset、bool、None。...我们用三个单引号或双引号来声明docstring。要想获取一个函数docstring,我们使用_doc_属性。3、PYT...
  • 1.分别举例说明数组方法push、pop、shift、unshift、join、splice、sort、reverse、concat作用? 2.JSON格式数据需要遵循什么规则?...3.字符串必须使用双引号。 4.数组或对象最后一个成员后...
  • 阅读《笨方法学python3》,归纳的知识点习题1:安装环境+练习 print函数使用 主要区别双引号和单引号的区别习题2:注释符号#习题3:运算符优先级,跟C/C++, Java类似以下运算符优先级:从下往下以此递增,同行为...
  • 习题 1: 第一个程序第一天主要是介绍了Python中输出函数print的使用方法,但是有一个注意点需要注意的是:Python2中可以不加括号直接(单/)引号输出,Python3中必须要加括号才能输出,否则会报错具体代码练习:print...

空空如也

空空如也

1 2 3 4
收藏数 63
精华内容 25
关键字:

双引号的使用方法的题