03-string字符串和while循环

目录

  • 03-string字符串和while循环

    • 1. string介绍
    • 2. 字符串的运算
    • 3. 下标及分片
    • 4. 格式化输出
    • 5. f-string格式化输出用法
    • 6. 字符串方法
    • 7. 布尔值,空值
    • 8. while循环

03-string字符串和while循环

1. string介绍

  • python中字符串通常以单引号或者双引号来创建,是计算机语言中最常见的数据类型
  • string不可变,即如果修改,将会重新分配内存地址
    a = "sense"
    print(id(a))
    a += "2"
    print(id(a))
    
    输出:
    3227798249968
    3227799102664

2. 字符串的运算

  • 字符串相加:也就是字符串拼接

    a = "sense"
    b = "wang"
    c = a + b
    print(c)
    
    输出:
    sensewang         #如果是数字呢
  • 字符串乘法: 也就是重复字符串n次,它是和整数相乘的
    a = "hello world\n"           #\n为换行符
    print(a*4)
    
    输出:
    hello world
    hello world
    hello world
    hello world
  • 字符串大小的比较:根据ASCII值比较

3. 下标及分片

  • 下标:也称为索引,通常表示某个字符在整个字符串中的位置,下标从0开始,下标写在[]中

    a = "senSe"
    # 取n
    print(a[2])
    # 取第小s
    print(a[0])
    
    输出:
    n
    s
  • 分片:也称为切片,通常获取字符串的一部分内容,将序列按段分割
    • 实例(使用IPython):
    # 格式:[(index_start):(index_end):(Step_length)],开始索引,结束索引,步长
    
    In [1]: string = 'abcdefgh'
    In [2]: string[0:2]               #取0~2之间的下标,不包括下标2,[0,2),默认步长为1
    Out[2]: 'ab'
    In [3]: string[0:6:2]         #取0~6之间的下标,步长为2,不包含6下标
    Out[3]: 'ace'
    In [4]: string[2:]                #取从2下标以后的所有元素,包括下标2
    Out[4]: 'cdefgh'
    In [5]: string[:2]                #取从下标2以前的所有元素,不包下标2
    Out[5]: 'ab'
    In [6]: string[:]             #取全部元素
    Out[6]: 'abcdefgh'
    In [7]: string[::2]               #取步长为2的全部元素,
    Out[7]: 'aceg'
    In [8]: string[::-1]          #取反转后的全部元素
    Out[8]: 'hgfedcba'
    In [9]: string[::-3]          #取步长为3的全部反转元素
    Out[9]: 'heb'
    In [10]: string[-2]               #取倒数第二个元素
    Out[10]: 'g'
    In [11]: string[-5:-2]            #取从倒数第五个以后到倒数第二个的下标,不包括倒数第五个
    Out[11]: 'def'
    

4. 格式化输出

  • 当想要让数据按照指定的格式输出,需要在字符串中进行格式说明,格式说明由格式字符组成,常见的格式字符如下:

    格式字符 描述
    %s 格式化字符串
    %d 格式化整数
    %f 格式化小数
  • 实例:
    name = "sense"
    age = 18
    height = 175.5
    print("我的名字是%s,年龄%d岁,身高%.2fcm" % (name,age,height))       #.2表示保留两位小数
    
    输出:
    我的名字是sense,年龄18岁,身高175.50cm

5. f-string格式化输出用法

  • python3.6后引入的新型格式化输出工具,功能更加强大,而且容易上手
  • 该工具把字符串当成一个模板,通过传入的参数进行格式化,以f或者F为修饰符,以{}标明被替换的字段
  • 实例
    name = "sense"
    age = 18
    height = 175.5
    d = {"name":"sense","age":18}
    print(f"我的名字是{name},年龄为{age},身高{height}cm.")
    print(f"{d['name']},{d['age']}")        #还可以对自动进行输出
    print(f'{age+2}')                       #还可以进行数学运算
    
    输出:
    我的名字是sense,年龄为18,身高175.5cm.
    sense,18
    20

6. 字符串方法

  • 因为字符串为最常见的数据类型,所以众多方法也应运而生,包含对字符串的更改、转换、代替等
  • 字符串大小写转换方法
    方法名 描述
    lower() 把字符串中的英文转为小写
    upper() 把字符串中的英文转为大写
    swapcase() 把字符串中的大写英文转为小写,小写转为大写
    capitalize() 首字母大写,其余小写
    title() 每个单词首字母大写
  • 字符串位置整理方法
    方法名 描述
    center(x,str) 把字符串居中显示,总长度x,填充符为str
    ljust(x,str) 把字符串左方显示,总长度x,填充符为str
    rjust(x,str) 把字符串右方显示,总长度x,填充符为str
  • 查找字符串方法
    方法名 描述
    find(str,num1,num2) 从左到右查找str的位置,可以指定范围:num1为开始位置,num2为结束位置,找不到返回-1
    rfind(str,num1,num2) 从右到左查找str的位置,可以指定范围:num1为开始位置,num2为结束位置,找不到返回-1
    index(str,num1,num2) 从左到右查找str的位置,可以指定范围:num1为开始位置,num2为结束位置,找不到抛错
    rindex(str,num1,num2) 从右到左查找str的位置,可以指定范围:num1为开始位置,num2为结束位置,找不到抛错
  • 截取、分割字符串方法
    方法名 描述
    lstrip(str) 截掉字符串左侧括号中指定的字符,默认字符是空格
    rstrip() 截掉字符串右侧括号中指定的字符,默认字符是空格
    split(str) 以str为分割符分割字符串,最后返回list
    splitlines(keepends=False) 以行为分割符分割字符串,最后返回list,keepends为True时保留换行符
  • 判断字符串方法
    方法名 描述
    isalpha() 判断字符串中至少有一个字符,且所有的字符都是字母,则会返回True
    isalnum() 判断字符串中至少有一个字符,且所有的字符都是数字或字母,则会返回True
    istitle() 判断字符串是标题化,则返回True,反之返回False,即只有每个单词首字母大写
    isdigit() 判断字符串只能为数字返回True,反之返回False
    isspace() 判断字符串只为空格
    startwith(str,num1,num2) 判断字符串是否以str开头、num1,num2用于指定范围,不指定范围默认为全部
    endwith(str,num1,num2) 判断字符串是否以str结尾、num1,num2用于指定范围,不指定范围默认为全部
  • 字符串其他方法
    方法名 描述
    len(string) 返回字符串的长度(字符个数)
    eval(string) 将字符串当成有效表达式求值并返回结果,结果为int
    count(str,num1,num2) 统计字符串中str出现的次数,num1,num2用于指定范围
    replace(old,new,num1) 替换字符串中的字符,num1用于指定替换次数
    encode(encoding) 为字符串指定字符编码

7. 布尔值,空值

  • 布尔值:True和False,代表真和假,主要用于判断
  • 空值:None,一个特殊值,代表无,并不代表0

8. while循环

  • 根据指定条件来循环执行对应的语句,如果条件一直满足,则一直执行
  • 普通while格式
    while 条件表达式:
        语句
  • while-else语句:当while的条件不满足后,将会执行else对应的语句
    while 条件表达式:
        语句
    else:
        语句2
  • while循环小案例:
#猜数字小游戏----10次机会在0~10之间猜数,最后统计猜对的次数
import random
times = 0
count = 0
while times < 5:            #当times小于5时,就会一直循环
    num = random.randint(0,5)
    input_str = int(input("请猜数:"))
    times += 1              #每次循环到此处,times就+1,这也是能让循环停止的条件
    if input_str == num:
        print("猜对了!")
        count += 1
    else:
        print("猜错了!")
print(f"共猜对{count}次")

原文地址:https://www.cnblogs.com/SenseW/p/12353332.html

时间: 2024-11-05 20:46:07

03-string字符串和while循环的相关文章

集合或数组转成String字符串

1.将集合转成String字符串 String s=""; for (int i = 0; i < numList.size(); i++) { if (s=="") { s=numList.get(i); }else { s=s+","+numList.get(i); } } 定义List集合,如: List<String> numList=new ArrayList<String>(); for(int i=1;

C++学习37 string字符串的访问和拼接

访问字符串中的字符 string 字符串也可以像字符串数组一样按照下标来访问其中的每一个字符.string 字符串的起始下标仍是从 0 开始.请看下面的代码: #include <iostream> #include <string> using namespace std; int main(){ string s1 ; s1 = "1234567890"; for(int i=0, len=s1.length(); i<len; i++) cout&l

黑马程序员----java基础--String字符串

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.String类概述 java中用String类进行描述对字符串进行了对象的封装.这样的好处是可以对字符串这种常见数据进行方便的操作.对象封装后,可以定义N多属性和行为. String类是final的,也就是说它没有子类. 二.String字符串的特点 1.字符串一旦被初始化就不可以被改变.并且存放在方法区中的常量池中. 1 class StringDemo{ 2 public static

JavaScript String 字符串方法

JavaScript String 字符串方法汇总 1.str.indexOf() 方法查找字符串中的字符串  返回   字符串中指定文本首次出现的索引(位置) JavaScript 从零计算位置.0 是字符串中的第一个位置,1 是第二个,2 是第三个 ... 无法设置更强大的搜索值(正则表达式) var str = "The full name of China is the People's Republic of China."; var pos = str.indexOf(&q

JAVA基础——重新认识String字符串

深入剖析Java之String字符串 在程序开发中字符串无处不在,如用户登陆时输入的用户名.密码等使用的就是字符串. 在 Java 中,字符串被作为 String 类型的对象处理. String 类位于 java.lang 包中.默认情况下,该包被自动导入所有的程序. 创建 String 对象有三种方法 String s1="我是字符串1"; String s2=new String();//创建一个空的字符串对象 String s3=new String("我是字符串2&q

Java String字符串/==和equals区别,str。toCharAt(),getBytes,indexOf过滤存在字符,trim()/String与StringBuffer多线程安全/StringBuilder单线程—— 14.0

课程概要 String 字符串 String字符串常用方法 StringBuffer StringBuilder String字符串: 1.实例化String对象 直接赋值  String str="Hello";  推荐这种 使用关键字new  String str1=new String("Hello"); 在内存中开辟2个空间 如图: 源代码 StringDemo01.java 2.String内容的比较 String str="Hello"

不使用java内置函数,将String字符串转换为int类型

package com.test; public class AtoiTest { public static void main(String[] args) throws Exception { String s = "-011134"; System.out.println("转换前的字符串:" + s); System.out.println("atoi1转换后的字符串:" + atoi1(s)); System.out.println(

ZOJ 1151 Word Reversal反转单词 (string字符串处理)

链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=151 For each list of words, output a line with each word reversed without changing the order of the words. This problem contains multiple test cases! The first line of a multiple input is

HDOJ3374 String Problem [KMP最小循环节点]+[最小(大)表示法]

String Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1442    Accepted Submission(s): 645 Problem Description Give you a string with length N, you can generate N strings by left shifts