ratingBar barra de progreso

Ideas


Soy demasiado vago para escribir un diagrama de flujo, así que no continuaré 1. Crear una nueva barra de calificación de clase
2. Longitud de los datos de entrada del usuario (longitud total), comenzando (caracteres antes de la barra de progreso), finalizando (caracteres después del progreso barra)
3. Defina dos funciones flush (entrada: longitud (<longitud del valor dado por la clase (ver el artículo 2 para más detalles)), función: ajustar la barra de progreso a la longitud), cuenta (entrada: ninguna, función: la barra de progreso se mueve uno un paso adelante)

Código

Importar biblioteca del sistema

import sys

Crear función "n_" para la clase ratingBar

def complete_string(n,string):
	while(len(string) < n):
		string += ' '
	return string

Crear clase ratingBar

class ratingBar:
	def __init__(self,length,starting = '',ending = ''):
		self.length = length
		self.one = 100 / length
		self.n = len(str(self.length))
		self.starting = starting
		self.ending = ending
		sys.stdout.write('%s%s%s/%s|%s|0%% %s'%(self.starting,'|' * int(bool(self.starting)),n_digit(self.n,'0'),length,' ' * length,self.ending))
		sys.stdout.flush()
		self.len = 0
	def flush(self,length):
		if(length <= self.length):
			str1 = '#' * length + ' ' * (self.length - length)
			sys.stdout.flush()
			sys.stdout.write('\r%s%s%s/%s|%s|%s%% %s'%(self.starting,'|' * int(bool(self.starting)),n_digit(self.n,str(length)),self.length,str1,self.one * length,self.ending))
			if(length == self.length):
				sys.stdout.write('\n')
				sys.stdout.flush()
			self.len = length
		else:
			raise ValueError('index out of range')
	def count(self):
		self.len += 1
		self.flush(self.len)

Código de dirección de github

Explica "\ r"

En el programa, aparece el carácter de escape \ r, lo que significa volver al Explicación de \ r
principio de la línea. Puede ver que la salida de abcdefg \ rabcdefg es

abcdefg

Si es \ n, la salida es

abcdefg
abcdefg

Si no hay un carácter de escape, la salida es

abcdefgabcdefg

Tenga en cuenta que \ r es el carácter después de \ r reemplazado por el anterior, pero debe tenerse en cuenta que la salida de abcdefg \ rbcdefg es:

bcdefgg

Imagen: Como
abcdefg \ rbcdefg
puede ver, bcdefg no cubre completamente abcdefg, porque bcdefg es más corto que abcdefg, por lo que ocurrirán las siguientes situaciones:

Mon 06 Mon 13 Mon 20 abcdefg bcdefg bcdefgg \r diagram/图表

Aviso de copyright

Los derechos de autor pertenecen al autor de la referencia de este artículo y a él mismo, declare la fuente (si es demasiado perezoso para escribirlo, no lo ve, no lo persiga, solo conózcalo usted mismo)

Autor

golpear la carretera

¡Adiós, salir de clase se acabó!

El hit-road se actualiza de vez en cuando, ¡mira o vete!

Supongo que te gusta

Origin blog.csdn.net/weixin_42954615/article/details/106673036
Recomendado
Clasificación