我是不是要从基基基基础写到基础啊XD
通用技术
1. hello world
print("hello world")
2. 注释
对程序代码进行解释说明的文字。(一款我的自言自语)
# 我是单行注释
"""
我是
多行注释
"""
3. 快捷键
ctrl + D 复制当前行代码
shift + alt + ↑/↓ 将当前行代码上下移
ctrl + shift + F10 运行当前代码文件
shift + F6 重命名文件
ctrl + F 搜索
ctrl + C/V/X/A
基础语法
一。字面量
代码中被写下来的固定的值
1. 数字 Number:
(1)整数 int(与数学中的整数概念一致,没有取值范围限制!)
(2)浮点数 float
(3)复数 complex(以 j 结尾表示复数,比如 1+2j)
(4)布尔 bool
2. 字符串 String(要用 ' x ' 或 " x " 或 '''x''' 或 " " " x " " " 包起来)Python里面没有char的概念。
3. 列表 List:有序的可变序列
4. 元组 Tuple:有序的不可变序列
5. 集合 Set:无序的不重复集合
6. 字典 Dictionary:无序Key-Value集合
二。注释
对程序代码进行解释说明的文字。(一款我的自言自语)
1. 单行注释 # 注释
# 我是单行注释。我比较规范。用我用我!
#我也是单行注释。可以使用,但没那么规范。
2. 多行注释 """注释"""
"""
我是
多行注释
"""
"""这样也可以哦"""
三。变量
C++是强类型的语言,你在定义时必须要指出数据类型。而python不是,它是你赋值之后隐性确定的。
name = "Ruru"
print("My name is:", name, "!")
# 输出 My name is: Ruru !
# 中间会自带一个空格欸
赋值:
# 多重赋值:
a = b = c = 10 # 同时为多个变量赋值,三个变量指向同一个地址
# 多元赋值:
a,b,c = 10,10,10 # 三个变量,每个变量的地址都不一样
# 甚至可以:
x,y = y,x # 交换两个变量的值
# 不需要temp啦!
四。数据类型查看 type()
查看的是变量存储的数据的类型。变量没有类型,但它存储的数据有类型。
# 验证数据类型 type()
print(type("Ruru"))
# 输出 <class 'str'> # 即string
ty = type(999)
print(type(ty))
# 输出 <class 'type'>
type的类型是type www
五。数据类型转换
转字符串:str()
PS:万物皆可转字符串
转数字:int() float()
PS:只有"数字"能转数字
如果int(小数):保留整数部分,砍掉小数部分
# 数据类型转换
# 转字符串
num_str = str(999)
print("num_str:", type(num_str))
# 输出 num_str: <class 'str'>
type_str = str(type(ty))
print("type_str:", type_str)
# 输出 type_str: <class 'type'>
关于int()函数
int(字符串或者数字,进制数)
PS:进制数默认为十进制。如果进制数不是10,就需要给第一个参数加""。比如不能写int(10,16),要写成int("10",16)。
PPS:如果int()中没有参数,返回值为0。(即 int() return 0 )
参考:python 的 int() 函数_python中int函数_小应的每天进步史的博客-CSDN博客
转复数:complex(real,imag)
其中real可以是数字或字符串,imag只能是数字。
六。标识符
用户在编程的时候所使用的一系列用于给变量、类、方法等命名的名字。
注意命名规则 & 命名规范。
可:英文(区分大小写)、数字、下划线、中文(竟然!)
不可:以数字开头
七。运算符
【/】正常除(有小数!)
【%】求余数
【//】整数除 返回商的整数部分(【/】是有小数的!)
【**】指数 10**2 = 100(可以计算9999**9999,很强大。)
PS:python里面没有自增自减运算符哦!【++】【--】
八。字符串拓展知识
字符串,用 ' x ' 或 " x " 或 '''x''' 或 " " " x " " " 包起来。单引号里面可以包双引号,反之也可。
字符串序号(索引)
正向:0 1 2 3 ...
反向:-1 -2 -3 -4 ...
字符串切片
语法:变量名称 [ 起始 : 终止 : 步长 ](左闭右开。起始闭终止开)
s = '0123456789'
print(s[0:4]) # 0123
print(s[::2]) # 02468
如果省略起始/终止,就代表从开头取/取得末尾。(←步长为正数时。步长为负数时默认起始为字符串末尾)
可以用反向索引,也可以正反混合使用。
需要注意!起始、终止 要和 步长 一致!
步长为正数时,起始字符要在终止字符左边。(不然就会返回空。
步长为负数时,起始字符要在终止字符右边。
打个比方,如果你想倒着取的话,一:要把步长设为负数,二:起始和终止要从右边字符到左边字符。
可以看看程序感受一下:
s = '0123456789'
print(s[-1:-5:-2]) # 97
# 因为左闭右开,所以不是975
print(s[-5:-1:-2]) # 空
print(s[-5:-1:2]) # 57
print(s[-1:-5:2]) # 空
字符串拼接
str = str1 + str2
求字符串长度 len(<string>)
字符串迭代 for in
for i in str:
print(i)
字符串拆分 split()
这个很常用!
str = '012,34,5,6789'
print(str.split(','))
# ['012', '34', '5', '6789']
看,拆完之后是一个数组。
猜你可能会用到:去掉分割后的空字符串''
正常情况:
str = "Hi,,Ruru!"
result = str.split(",")
print(result) # ['Hi', '', 'Ruru!']
去除空串: 使用推导式 for in if
str = "Hi,,Ruru!"
result = [x for x in str.split(",") if x != ""]
print(result) # ['Hi', 'Ruru!']
参考:【51CTO博客 传送门】
字符串格式化
(好像prinft() hhh)
name = "ruru"
age = 9
money = 1.00
message = "姓名:%s,年龄:%d,家当:%f" % (name, age, money)
print(message) # 输出 姓名:ruru,年龄:9,家当:1.000000
字符串的内容非常多..!!
看博客,请。【Python丨第1讲测试题 | XORu Blog】(对不起其实博客里也没写多少内容
常用的字符串函数
可以看这里!【【python基础】python中常用字符串函数详解_python 字符串函数-CSDN博客】
反正我们有个作业:
# 输入自定义的字符串,利用函数计算传入字符串中的数字、字母、空格和其他的个数
str = input("输入自定义的字符串:")
num_count, alpha_count, space_count, other_count = 0, 0, 0, 0
# 遍历:
for i in str:
if i.isdecimal(): # 判断是否为数字
num_count += 1
elif i.isalpha(): # 判断是否为字母
# 大写:isupper()
# 小写:islower()
alpha_count += 1
elif i.isspace(): # 判断是否为空格
space_count += 1
else: # 其它
other_count += 1
print("字符串中数字{}个,字母{}个,空格{}个,其他{}个。"
.format(num_count, alpha_count, space_count, other_count))
九。数据输入
使用input()语句可以从键盘获取输入
数据输出:print() 可以完成将内容(字面量、变量等)输出到屏幕上。
print(1, 2, 3, sep=',') # 设置间隔为','
数据输入:input() 可以用来获取键盘输入
输入时经常用:
a = input("输入一个数字:") # 默认接收到了字符串
a = eval(a) # 把a转换为数字
a = input('输入一个坐标:')
print(a) # str
# 转换为 list
a = list(a.replace('(', '').replace(')', '').split(',')) # 删掉(),由,分割
学习魔法时学到的小Tips(?):
a = input(':') # 可以停住,然后随便输入点东西之后它就会继续!
# 好有道理..!!!!!
判断语句
Python语言不像C++、Java等有这样的三目运算:
判断的条件 ? 条件为True时的结果 : 条件为False时的结果
但是Python也有更适合自己体质的三目运算符:
条件为True时的结果 if 判断的条件 else 条件为False时的结果
逻辑运算符
直接用 and、or、not。
优先级:not > and > or
Btw,you can do these:(上下两种等价哦!是pycharm帮我改的555
if a >= 3 and a <= 5:
if 3 <= a <= 5:
if-else语句
if 判断的条件:
条件为True时执行
else:
条件为False时执行
# else需与if严格地对齐
if-elif-else 格式
if 判断的条件:
条件为True时执行
elif 判断的条件:
条件为True时执行
elif 判断的条件:
条件为True时执行
else:
上述条件都为False时执行
# elif语法与if类似
# if/else之间可以包含多个elif
# else语句可以不写
循环语句
while循环
while 条件:
条件为True时重复执行
for循环
Python:
for 临时变量 in 待处理数据集(可迭代对象):
循环满足条件时执行的代码
# 从待处理数据集中:逐个取出数据赋值给临时变量
有点像C#里面的foreach:
int[] arr = {1,2,3,4};
// for循环遍历
// foreach 遍历数组用(只能正序)
foreach(int temp in arr) // temp相当于一个临时变量
{
Console.Write(temp+" ");
}
range语句
Python:
用于获得一个简单的数字序列(可迭代类型的一种)。
语法一:
range(num)
# 获取一个从0开始,到num结束的数字序列(不含num本身)
# 如range(5)取得的数据是:[0, 1, 2, 3, 4]
for x in range(5):
print(x)
# 输出
# 0
# 1
# 2
# 3
# 4
语法二
range(num1,num2)
# 获得一个从num1开始,到num2结束的数字序列(不含num2本身)
// 看!still左闭右开
# 如,range(5, 10)取得的数据是:[5, 6, 7, 8, 9]
for x in range(5, 10):
print(x)
# 输出
# 5
# 6
# 7
# 8
# 9
语法三
range(num1, num2, step)
起始 : 终止 : 步长(左闭右开。)切片的时候也是如此哦
# 获得一个从num1开始,到num2结束的数字序列(不含num2本身)
# 数字之间的步长,以step为准(step默认为1)
# 如,range(5, 10, 2)取得的数据是:[5, 7, 9]
for x in range(5, 10, 2):
print(x)
# 输出
# 5
# 7
# 9
C#里的随机数数列:
// 随机数生成:Random
Random rd = new Random(); // 这很js!!
int rdd = rd.Next(1, 10); // 值域(?)范围!
// 左闭右开,所以实际上是[1,10)哦!!
Console.WriteLine(rdd);
continue关键字
临时跳过:暂时跳过本次循环,直接进行下一次。
break关键字
直接结束:提前退出循环,不再继续。
pass关键字
= do nothing
有些地方不给空着,就可以写个pass上去!