Python 从入门到精通 第二天
今日目标
字符串基本操作、字符串序列操作、输入输出函数
字符串内置方法、运算符、练习之前学习的内容
一、字符串基本操作
在Python中,字符串的转义是指在字符串中使用特殊的字符序列来表示一些特殊字符。
在Python中,字符串的转义符是反斜杠\,可以用来表示一些特殊的字符,如单引号、双引号、换行符、制表符等。
以下是一些常用的字符串转义符:
'表示单引号
"表示双引号
\表示反斜杠
\n表示换行符
\t表示制表符
\r表示回车符
例如,以下是一些使用字符串转义符的示例:
#使用字符串转义符
print('I\'m a student. ')
print("He said,\"Hello world!\"")
print("C:\\Users\\Username\\Desktop")
print("Hello\nworld!")
# 使用%s 将变量插入到字符串中
name = "小明"
age = 18
height = 1.75
print("大家好,我的名字叫%s,今年‰%d岁,身高%.2f米。"%(name,age,height))
#使用f-string将变量插入到字符串中
name = "小红"
age = 20
height = 1.65
print(f"大家好,我的名字叫{name},今年{age}岁,身高{height:.2f}米。")
二、字符串序列操作
字符串属于序列类型,所谓序列,指的是一块可存放多个值的连续内存空间
这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。
# 定义字符串
string = "hello jiang"
# 索引
print(string[0]) # 输出“h"
print(string[6]) # 输出“j"
# 切片
print(string[2:5]) # 输出“llo"
print(string[:5]) # 输出"hello"
print(string[6:]) # 输出“jiang"
# len
print(len(string)) # 输出11
# in 判断
print("jiang" in string) # 输出 True
print("world" in string) # 输出False
# +、*拼接
string1 = "hello"
string2 = "jiang"
print(string1 + "" + string2) # 输出hello jiang"
print(string1 * 3) # 输出"hellohellohello"
三、输入输出函数
在Python中,输入和输出函数分别是input()和print()。
input()函数用于从标准输入(键盘)读取一个用户输入的字符串,并将其返回。
可以通过可选的提示字符串来提示用户输入。
示例代码:
name = input("请输入您的姓名:")
print("您好," + name + "!")
在这个例子中,input()函数会提示用户输入姓名,并将用户输入的字符串作为返回值赋给变量name。
然后,print()函数会输出一个欢迎消息,其中包含用户输入的姓名。
print()函数用于输出一个或多个对象到标准输出(屏幕)。
可以通过多个参数来指定要输出的对象,它们将按照给定的顺序依次输出。
示例代码:
print("Hello,world!")
print("The answer is", 42)
在这个例子中,print()函数分别输出了一个字符串和一个整数,它们被用逗号分隔开。
输出结果为:
Hello,world!
The answer is 42
四、字符串内置方法
方法:upper
作用:全部大写
示例:“Hello”.upper()
结果:HELLO
方法:lower
作用:全部小写
示例:“Hello”.lower()
结果:hello
方法:startswith(“蒋”)
作用:是否以蒋开头
示例:“蒋一一”.startswith(“蒋”)
结果:True
方法:endswith(“蒋”)
作用:是否以蒋结尾
示例:“蒋一一”.endswith(“蒋”)
结果:False
方法:isdigit()
作用:是否全数字
示例:‘123’.isdigit()
结果:True
方法:strip()
作用:去两边空格
示例:" 蒋一一 ".strip()
结果:蒋一一
方法:join()
作用:将多个字符串连接在一起
示例:“-”.join([“北京”, “上海”, “深圳”])
结果:北京-上海-深圳
方法:split()
作用:按某字符分割字符串,默认按空格分割
示例:“北京-上海-深圳”.split(“-”)
结果:[‘北京’, ‘上海’, ‘深圳’]
方法:find()
作用:搜索指定字符串,没有返回-1
示例:“hello jiang”.find(“jiang”)
结果:6
方法:index()
作用:同find(),但是找不到会报错
示例:“hello jiang”.index(“jiang”)
结果:6
方法:count()
作用:统计指定的字符串出现的次数
示例:“hello jiang”.count(“i”)
结果:1
方法:replace()
作用:替换old为new
示例:“hello jiang”.replace(“hello”,“goodbye”)
结果:goodbye jiang
五、运算符
运算符类别
计算运算符
+、-、*、/、%
比较运算符
>、<、>=、<=、==、!=
赋值运算符
=、+=、-=、*=、/=、%=
逻辑运算符
and:两个条件都必须满足,才会返回True,否则返回False
特点:有一个条件为假结果为假
or:两个条件只要有一个满足,就会返回True,否则返回False
特点:有一个条件为真结果为真
not:对一个条件取反,如果条件为True,返回False
如果条件为False,返回True
成员运算符
in:in运算符用于检查一个值是否包含在某个集合中,
例如字符串、列表、元组、集合或字典的键中。
如果包含,则返回True,否则返回False
奇偶判断
num = 10
if num % 2 == 0:
print(num, "是偶数")
else:
print(num, "是奇数")
输出结果:
10 是偶数
攻击力受损
# 定义初始的生命值和攻击力
health = 100
attack = 20
# 输出初始的生命值
print("初始的生命值为",health)
# 模拟攻击,计算剩余生命值
health -= attack
# 输出剩余生命值
print("剩余的生命值为",health)
输出结果:
初始的生命值为 100
剩余的生命值为 80
逻辑与、或
可以使用以下代码来判断语文成绩和数学成绩是否同时等于100,并根据结果打印相应的输出:
# 定义语文成绩和数学成绩
chinese_score = 100
math_score = 100
# 判断语文成绩和数学成绩是否同时等于100
if chinese_score == 100 and math_score == 100:
print("奖励一个礼物")
else:
print("未达到奖励条件")
输出结果:
奖励一个礼物
在这个代码中,将要判断的语文成绩和数学成绩分别赋值给chinese_score和math_score变量
然后使用if语句判断这两个成绩是否同时为100
如果是则输出“奖励一个礼物”,否则输出"未达到奖励条件”
可以将上面代码中的chinese_score和math_score变量替换为其他要判断的成绩进行测试
如果要将条件改为语文成绩和数学成绩任意一个为100时奖励一个礼物,可以将代码修改为以下形式:
# 定义语文成绩和数学成绩
chinese_score = 100
math_score = 99
# 判断语文成绩和数学成绩任意一个为100则奖励一个礼物
if chinese_score == 100 or math_score == 100:
print("奖励一个礼物")
else:
print("未达到奖励条件")
输出结果:
奖励一个礼物
在这个代码中,使用了逻辑运算符or将语文成绩和数学成绩的判断条件联合起来判断是否有一个成绩等于100
如果有,则输出“奖励一个礼物",否则输出“未达到奖励条件"
可以将上面代码中的chinese_score和math_score变量替换为其他要判断的成绩进行测试
范围判断
可以使用以下代码来判断一个人的年龄是否符合招聘条件:
age = 25
if age >= 20 and age <= 35:
print("符合招聘条件")
else:
print("不符合招聘条件")
输出结果:
符合招聘条件
在这个代码中,将要判断的年龄赋值给age变量,然后使用if语句判断该年龄是否符合招聘条件
如果是则输出"符合招聘条件",否则输出"不符合招聘条件"
可以将上面代码中的age变量替换为其他要判断的年龄进行测试。
登录判断
# 定义正确的用户名和密码
valid_username = 'user123'
valid_password = 'pwd456'
# 获取用户输入的用户名和密码
username = input("请输入用户名:")
password = input("请输入密码:")
# 判断用户名和密码是否正确
if username == valid_username and password == valid_password:
print("登录成功!")
else:
print("用户名或密码错误!")
输出结果:
请输入用户名:user123
请输入密码:pwd456
登录成功!
六、练习之前学习的内容
1.编写一个Python程序,输入一个三位数,将其拆分为百位数、十位数和个位数。
并输出它们的和。
# 编写一个Python程序,输入一个三位数,将其拆分为百位数、十位数和个位数。并输出它们的和。
number = int(input("请输入一个三位数:"))
gewei = int(number % 10)
shiwei = int(number / 10 % 10)
baiwei = int(number / 100)
sum = gewei + shiwei + baiwei
print(sum)
number = input("请输入一个三位数:")
if len(number) != 3:
print("输入不合法!")
else:
digit_1 = int(number[0])
digit_2 = int(number[1])
digit_3 = int(number[2])
total = digit_1 + digit_2 + digit_3
print("百位数:", digit_1)
print("十位数:", digit_2)
print("个位数:", digit_3)
print("它们的和:", total)
2.获取用户输入圆的半径。
使用圆的周长和面积公式计算出圆的周长和面积。
将圆的周长和面积按照以下格式输出到屏幕上:
圆的周长为:XXX
圆的面积为:XXX
radius = float(input("请输入圆的半径:"))
pai = 3.1415926
zhouchang = float(2 * pai * radius)
mianji = float(pai * radius * radius)
print("圆的周长为:", zhouchang)
print("圆的面积为:", mianji)
import math
radius = float(input("请输入圆的半径:"))
circumference = 2 * math.pi * radius
area = math.pi * radius ** 2
print("圆的周长为:{:.2f}".format(circumference))
print("圆的面积为:{:.2f}".format(area))
3.用户输入一个11位手机号,将第5位至第8位替换成*。
phone_number = input("请输入一个11位的手机号: ")
if len(phone_number) != 11:
print("I手机号位数有误!")
else:
new_phone_number = phone_number[:4] + "****" + phone_number[8:]
print("新手机号是:", new_phone_number)
4.问题描述:
将Unix/Linux系统下的路径字符串/Users/jiang/npm/index.js
转换为Windows系统下的路径字符串 \Users\jiang\npm\index.js,其中
Unix/Linux系统下的路径分隔符为/,Windows系统下的路径分隔符为\。
请使用两种方式来实现路径转换,分别是使用字符串的replace()方法和使用字符串的split()方法以及字符串的join()方法。
#定义Unix/Linux系统下的路径字符串,其中包含了路径分隔符/
unix_path = “/Users/jiang/npm/index.js”
unix_path = "/Users/jiang/npm/index.js"
windows_path = unix_path.replace("/", "\\")
print(windows_path)
unix_path = "/Users/jiang/npm/index.js"
windows_path = "\\".join(unix_path.split("/"))
print(windows_path)
5.定义三个变量a、b和c,并分别将它们的值赋为1、2和3。
定义一个变量total并将其初始化为0。
使用+=运算符将a、b和c的值累加到变量total 中。
输出变量total的值。
a = 1
b = 2
c = 3
total = 0
total += a
total += b
total += c
print(total)
6.根据闰年的定义,一个年份能够被4整除但不能被100整除,或者能够被400整除,那么这个年份就是闰年。
因此,在判断闰年的时候,需要满足以下两个条件之一:
年份能够被4整除但不能被100整除;
年份能够被400整除。
如果上述条件之一成立,则这个年份就是闰年。
否则,这个年份就不是闰年。
def is_leap_year(year):
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
return True
else:
return False
# 测试示例年份
year1 = 2000
year2 = 2023
year3 = 1900
year4 = 2024
print(year1, "是闰年吗?", is_leap_year(year1))
print(year2, "是闰年吗?", is_leap_year(year2))
print(year3, "是闰年吗?", is_leap_year(year3))
print(year4, "是闰年吗?", is_leap_year(year4))
7.在Pycharm中实现第一个Python程序开发,功能如下
终端打印helloworld
终端打印当前时间
终端打印1-100的随机数
import random
import datetime
def print_hello_world():
print("Hello World!")
def print_current_time():
current_time = datetime.datetime.now()
print("当前时间是:", current_time)
def print_random_numbers():
random_numbers = random.sample(range(1, 101), 1)
for number in random_numbers:
print(number)
if __name__ == "__main__":
print_hello_world()
print_current_time()
print_random_numbers()